-
Notifications
You must be signed in to change notification settings - Fork 371
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refractoriness handled incorrectly in corner cases in many neuron models #3309
Comments
Actually, it turns out that the documentation of refractoriness in Morrison A, Straube S, Plesser HE and Diesmann M (2007) we described (defined) the refractory mechanism as follows in Sec 3:
So there we defined the refactory period as an interval closed on both ends. |
We will work out a plan to improve the documentation. |
The correctness of the implementation of refractoriness is tested in CI by a sequence of tests. These tests originally referred to a single reference model iaf_neuron. However, this neuron model was removed from recent releases of NEST because it was identical to iaf_psc_alpha. It might be that in this process also the respective tests were removed without replacement. Candidates are:
We need to check whether these crucial tests are still active, and if not bring them back. |
testsuite/pytests/sli2py_neurons/test_iaf_psc_alpha.py seems to do what |
Issue automatically marked stale! |
The PR addressing this issue should also update glossary items pertaining to refractoriness. |
The refractory time after a spike at time$t^*$ is defined for
iaf_psc_delta
and many other neurons viaNote that the membrane potentials is clamped during a left-closed, right-open interval. This means that a neuron with$t_{\text{refract}} = 1$ ms after a spike at $t=2$ ms, shall be able to fire again at $t=3$ ms.
Incorrect behavior for
iaf_psc_delta
In the case above, if the$t=3$ ms, this spike arrives after the end of the refractory time, which ends at $t=3-$ ms, i.e., infinitesimally before the spike arrival. If the weight of the spike is sufficient to carry the membrane potential across threshold, the neuron should therefore spike. This is not the case at present:
iaf_psc_delta
neuron receives an input spike atCounterintuitive (but mathematically correct) behavior for strong input
Consider now a neuron (applies to many NEST models) driven by a very strong$I_e\to\infty$ one would expect the ISI to approach $t_{\text{refract}}$ , i.e., in the case above to fire once per second. But membrane potential is clamped to $V_{\text{reset}}$ until time $3-$ , i.e., until infinitesimally before the end of the refractory period. As long as $I_e$ is finite (not a delta-pulse as in the case above), we therefore have $V_m = V_{\text{reset}}$ at time 3, and then neuron will not spike. It can at the earliest spike at the end of the next time step. With time step $h$ , the shortest possible ISI is thus $t_{\text{refract}}+h$ as demonstrated below. This is an effect of time discretization. If I have calculated correctly, the current required to bring an
I_e
current. In the limitiaf_psc_delta
neuron with default parameters from reset to threshold in a single 0.1 ms time step would be around 38 nA (nano, not pico), corresponding to a membrane potential rise of 150 mV/ms, i.e., this problem would surface only for currents at the limit of biologically plausible values.It might still be useful to document this behavior somewhere.
The text was updated successfully, but these errors were encountered: