mat2_psc_exp¶
mat2_psc_exp - Non-resetting leaky integrate-and-fire neuron model with exponential PSCs and adaptive threshold
Description¶
mat2_psc_exp is an implementation of a leaky integrate-and-fire model with exponential-kernel postsynaptic currents (PSCs). Thus, postsynaptic currents have an infinitely short rise time.
The threshold is lifted when the neuron is fired and then decreases in a fixed time scale toward a fixed level 3.
The threshold crossing is followed by a total refractory period during which the neuron is not allowed to fire, even if the membrane potential exceeds the threshold. The membrane potential is NOT reset, but continuously integrated.
Note
If tau_m is very close to tau_syn_ex or tau_syn_in, numerical problems may arise due to singularities in the propagator matrics. If this is the case, replace equal-valued parameters by a single parameter.
For details, please see IAF_neurons_singularity.ipynb in
the NEST source code (docs/model_details).
References¶
- 1
Rotter S and Diesmann M (1999). Exact simulation of time-invariant linear systems with applications to neuronal modeling. Biologial Cybernetics 81:381-402. DOI: https://doi.org/10.1007/s004220050570
- 2
Diesmann M, Gewaltig M-O, Rotter S, Aertsen A (2001). State space analysis of synchronous spiking in cortical neural networks. Neurocomputing 38-40:565-571. DOI:https://doi.org/10.1016/S0925-2312(01)00409-X
- 3
Kobayashi R, Tsubo Y and Shinomoto S (2009). Made-to-order spiking neuron model equipped with a multi-timescale adaptive threshold. Frontiers in Computuational Neuroscience 3:9. DOI: https://doi.org/10.3389/neuro.10.009.2009
Author¶
Thomas Pfeil (modified iaf_psc_exp model of Moritz Helias)
Parameters¶
Name |
Physical unit |
Default value |
Description |
|---|---|---|---|
tau_m |
ms |
5ms |
Membrane time constant |
C_m |
pF |
100pF |
Capacity of the membrane |
t_ref |
ms |
2ms |
Duration of absolute refractory period (no spiking) |
E_L |
mV |
-70.0mV |
Resting potential |
tau_syn_ex |
ms |
1ms |
Time constant of postsynaptic excitatory currents |
tau_syn_in |
ms |
3ms |
Time constant of postsynaptic inhibitory currents |
tau_1 |
ms |
10ms |
Short time constant of adaptive threshold |
tau_2 |
ms |
200ms |
Long time constant of adaptive threshold |
alpha_1 |
mV |
37.0mV |
Amplitude of short time threshold adaption [3] |
alpha_2 |
mV |
2.0mV |
Amplitude of long time threshold adaption [3] |
omega |
mV |
19.0mV |
Resting spike threshold (absolute value, not relative to E_L) |
I_e |
pA |
0pA |
constant external input current |
State variables¶
Name |
Physical unit |
Default value |
Description |
|---|---|---|---|
V_abs |
mV |
0mV |
Membrane potential |
V_m |
mV |
V_abs + E_L |
Relative membrane potential. |
Equations¶
Source code¶
neuron mat2_psc_exp:
state:
V_th_alpha_1 mV = 0 mV # Two-timescale adaptive threshold
V_th_alpha_2 mV = 0 mV # Two-timescale adaptive threshold
r integer = 0 # counts number of tick during the refractory period
V_abs mV = 0 mV # Membrane potential
V_m mV = V_abs + E_L # Relative membrane potential.
# I.e. the real threshold is (V_m-E_L).
end
equations:
kernel I_kernel_in = exp(-1/tau_syn_in*t)
kernel I_kernel_ex = exp(-1/tau_syn_ex*t)
inline I_syn pA = convolve(I_kernel_in, in_spikes) + convolve(I_kernel_ex, ex_spikes)
V_abs' = -V_abs / tau_m + (I_syn + I_e + I_stim) / C_m
end
parameters:
tau_m ms = 5 ms # Membrane time constant
C_m pF = 100 pF # Capacity of the membrane
t_ref ms = 2 ms # Duration of absolute refractory period (no spiking)
E_L mV = -70.0 mV # Resting potential
tau_syn_ex ms = 1 ms # Time constant of postsynaptic excitatory currents
tau_syn_in ms = 3 ms # Time constant of postsynaptic inhibitory currents
tau_1 ms = 10 ms # Short time constant of adaptive threshold
tau_2 ms = 200 ms # Long time constant of adaptive threshold
alpha_1 mV = 37.0 mV # Amplitude of short time threshold adaption [3]
alpha_2 mV = 2.0 mV # Amplitude of long time threshold adaption [3]
omega mV = 19.0 mV # Resting spike threshold (absolute value, not relative to E_L)
# constant external input current
I_e pA = 0 pA
end
internals:
h ms = resolution()
P11th real = exp( -h / tau_1 )
P22th real = exp( -h / tau_2 )
RefractoryCounts integer = steps(t_ref) # refractory time in steps
end
input:
ex_spikes pA <- excitatory spike
in_spikes pA <- inhibitory spike
I_stim pA <- continuous
end
output: spike
update:
# evolve membrane potential
integrate_odes()
# evolve adaptive threshold
V_th_alpha_1 = V_th_alpha_1 * P11th
V_th_alpha_2 = V_th_alpha_2 * P22th
if r == 0: # not refractory
if V_abs >= omega + V_th_alpha_1 + V_th_alpha_2: # threshold crossing
r = RefractoryCounts
# procedure for adaptive potential
V_th_alpha_1 += alpha_1 # short time
V_th_alpha_2 += alpha_2 # long time
emit_spike()
end
else:
r = r - 1
end
end
end