Spike count based refractory period

Description of problem

I am trying to design neurons with refractory periods based on the number of spikes they have fired. How should my refractory attribute’s equations look like?



Hi Jeffry. How exactly do you want to model the dependence of the refractory period on the number of spikes? Brian’s refractory mechanism is very general, you should be able to implement almost anything.
E.g. you could do something like this:

neurons = NeuronGroup(..., '''...
                              drate/dt = -rate/(100*ms) : Hz''',
                      ..., reset='''...
                               rate += 1/(100*ms)''')

which gives you a continuous measure of the firing rate in the rate variable. You can then use this rate variable in the refractory argument.

If you are interested in a discrete count of spikes instead of a continuous rate, you can use a similar approach to define a spike_count variable:

neurons = NeuronGroup(..., '''...
                              spike_count : integer''',
                      ..., reset='''...
                               spike_count += 1''')

You can then refer to spike_count in your refractory argument.