izhikevich_psc_alpha¶
izhikevich_psc_alpha - Detailed Izhikevich neuron model with alpha-kernel post-synaptic current
Description¶
Implementation of the simple spiking neuron model introduced by Izhikevich 1, with membrane potential in (milli)volt and current-based synapses.
The dynamics are given by:
On each spike arrival, the membrane potential is subject to an alpha-kernel current of the form:
See also¶
izhikevich, iaf_psc_alpha
References¶
- 1
Izhikevich, Simple Model of Spiking Neurons, IEEE Transactions on Neural Networks (2003) 14:1569-1572
Authors¶
Hanuschkin, Morrison, Kunkel
Parameters¶
Name |
Physical unit |
Default value |
Description |
|---|---|---|---|
C_m |
pF |
200.0pF |
Membrane capacitance |
k |
pF / (ms mV) |
8.0pF / mV / ms |
Spiking slope |
V_r |
mV |
-65.0mV |
resting potential |
V_t |
mV |
-45.0mV |
threshold potential |
a |
1 / ms |
0.01 / ms |
describes time scale of recovery variable |
b |
nS |
9.0nS |
sensitivity of recovery variable |
c |
mV |
-65mV |
after-spike reset value of V_m |
d |
pA |
60.0pA |
after-spike reset value of U_m |
V_peak |
mV |
0.0mV |
Spike detection threashold (reset condition) |
tau_syn_ex |
ms |
0.2ms |
Synaptic Time Constant Excitatory Synapse |
tau_syn_in |
ms |
2.0ms |
Synaptic Time Constant for Inhibitory Synapse |
t_ref |
ms |
2.0ms |
Refractory period |
I_e |
pA |
0pA |
constant external input current |
State variables¶
Name |
Physical unit |
Default value |
Description |
|---|---|---|---|
V_m |
mV |
-65mV |
Membrane potential |
U_m |
pA |
0pA |
Membrane potential recovery variable |
Equations¶
Source code¶
neuron izhikevich_psc_alpha:
state:
r integer = 0 # number of steps in the current refractory phase
V_m mV = -65 mV # Membrane potential
U_m pA = 0 pA # Membrane potential recovery variable
end
equations:
# synapses: alpha functions
kernel I_syn_in = (e/tau_syn_in) * t * exp(-t/tau_syn_in)
kernel I_syn_ex = (e/tau_syn_ex) * t * exp(-t/tau_syn_ex)
inline I_syn_exc pA = convolve(I_syn_ex, spikesExc)
inline I_syn_inh pA = convolve(I_syn_in, spikesInh)
V_m' = ( k * (V_m - V_r) * (V_m - V_t) - U_m + I_e + I_stim + I_syn_inh + I_syn_exc ) / C_m
U_m' = a * ( b*(V_m - V_r) - U_m )
end
parameters:
C_m pF = 200. pF # Membrane capacitance
k pF/mV/ms = 8. pF/mV/ms # Spiking slope
V_r mV = -65. mV # resting potential
V_t mV = -45. mV # threshold potential
a 1/ms = 0.01 /ms # describes time scale of recovery variable
b nS = 9. nS # sensitivity of recovery variable
c mV = -65 mV # after-spike reset value of V_m
d pA = 60. pA # after-spike reset value of U_m
V_peak mV = 0. mV # Spike detection threashold (reset condition)
tau_syn_ex ms = 0.2 ms # Synaptic Time Constant Excitatory Synapse
tau_syn_in ms = 2.0 ms # Synaptic Time Constant for Inhibitory Synapse
t_ref ms = 2.0 ms # Refractory period
# constant external input current
I_e pA = 0 pA
end
internals:
RefractoryCounts integer = steps(t_ref) # refractory time in steps
end
input:
spikesInh pA <- inhibitory spike
spikesExc pA <- excitatory spike
I_stim pA <- continuous
end
output: spike
update:
integrate_odes()
# refractoriness and threshold crossing
if r > 0: # is refractory?
r -= 1
elif V_m >= V_peak:
V_m = c
U_m += d
emit_spike()
r = RefractoryCounts
end
end
end