IF_curr_alpha
models.Neurons.IF_curr_alpha(self,
=-65.0,
v_rest=1.0,
cm=20.0,
tau_m=0.0,
tau_refrac=5.0,
tau_syn_E=5.0,
tau_syn_I=-50.0,
v_thresh=-65.0,
v_reset=0.0,
i_offset )
Leaky integrate-and-fire model with fixed threshold and alpha post-synaptic currents.
Separate synaptic currents for excitatory and inhibitory synapses.
The alpha currents are calculated through a system of two linears ODEs. After a spike is received at t_spike, it peaks at t_spike + tau_syn_X, with a maximum equal to the synaptic efficiency.
Parameters:
- v_rest = -65.0 : Resting membrane potential (mV)
- cm = 1.0 : Capacity of the membrane (nF)
- tau_m = 20.0 : Membrane time constant (ms)
- tau_refrac = 0.0 : Duration of refractory period (ms)
- tau_syn_E = 5.0 : Rise time of excitatory synaptic current (ms)
- tau_syn_I = 5.0 : Rise time of inhibitory synaptic current (ms)
- i_offset = 0.0 : Offset current (nA)
- v_reset = -65.0 : Reset potential after a spike (mV)
- v_thresh = -50.0 : Spike threshold (mV)
Variables:
v : membrane potential in mV (init=-65.0):
cm * dv/dt = cm/tau_m*(v_rest -v) + alpha_exc - alpha_inh + i_offset
g_exc : excitatory current (init = 0.0):
tau_syn_E * dg_exc/dt = - g_exc
alpha_exc : alpha function of excitatory current (init = 0.0):
tau_syn_E * dalpha_exc/dt = exp((tau_syn_E - dt/2.0)/tau_syn_E) * g_exc - alpha_exc
g_inh : inhibitory current (init = 0.0):
tau_syn_I * dg_inh/dt = - g_inh
alpha_inh : alpha function of inhibitory current (init = 0.0):
tau_syn_I * dalpha_inh/dt = exp((tau_syn_I - dt/2.0)/tau_syn_I) * g_inh - alpha_inh
Spike emission:
v > v_thresh
Reset:
v = v_reset
The ODEs are solved using the exponential Euler method.
Equivalent code:
= Neuron(
IF_curr_alpha = """
parameters v_rest = -65.0
cm = 1.0
tau_m = 20.0
tau_syn_E = 5.0
tau_syn_I = 5.0
v_thresh = -50.0
v_reset = -65.0
i_offset = 0.0
""",
= """
equations gmax_exc = exp((tau_syn_E - dt/2.0)/tau_syn_E)
gmax_inh = exp((tau_syn_I - dt/2.0)/tau_syn_I)
cm * dv/dt = cm/tau_m*(v_rest -v) + alpha_exc - alpha_inh + i_offset : exponential, init=-65.0
tau_syn_E * dg_exc/dt = - g_exc : exponential
tau_syn_I * dg_inh/dt = - g_inh : exponential
tau_syn_E * dalpha_exc/dt = gmax_exc * g_exc - alpha_exc : exponential
tau_syn_I * dalpha_inh/dt = gmax_inh * g_inh - alpha_inh : exponential
""",
= "v > v_thresh",
spike = "v = v_reset",
reset = 0.0
refractory )