izhikevich_psc_alpha

Parameters

Name

Physical unit

Default value

Description

C_m

pF

200pF

Membrane capacitance

k

pF / (ms mV)

8pF / mV / ms

Spiking slope

V_r

mV

-65mV

Resting potential

V_t

mV

-45mV

Threshold potential

a

1 / ms

0.01 / ms

Time scale of recovery variable

b

nS

9nS

Sensitivity of recovery variable

c

mV

-65mV

After-spike reset value of V_m

d

pA

60pA

After-spike reset value of U_m

V_peak

mV

0mV

Spike detection threshold (reset condition)

tau_syn_exc

ms

0.2ms

Synaptic time constant of excitatory synapse

tau_syn_inh

ms

2ms

Synaptic time constant of inhibitory synapse

t_ref

ms

2ms

Refractory period

I_e

pA

0pA

constant external input current

State variables

Name

Physical unit

Default value

Description

r

integer

0

Number of steps in the current refractory phase

V_m

mV

-65mV

Membrane potential

U_m

pA

0pA

Membrane potential recovery variable

Equations

\[\frac{ dV_{m} } { dt }= \frac 1 { C_{m} } \left( { (k \cdot (V_{m} - V_{r}) \cdot (V_{m} - V_{t}) - U_{m} + I_{e} + I_{stim} + I_{syn,exc} - I_{syn,inh}) } \right)\]
\[\frac{ dU_{m} } { dt }= a \cdot (b \cdot (V_{m} - V_{r}) - U_{m})\]

Source code

neuron izhikevich_psc_alpha:
  state:
    r integer = 0 # Number of steps in the current refractory phase
    V_m mV = -65mV # Membrane potential
    U_m pA = 0pA # Membrane potential recovery variable
  end
  equations:
    # synapses: alpha functions
    kernel K_syn_inh = (e / tau_syn_inh) * t * exp(-t / tau_syn_inh)
    kernel K_syn_exc = (e / tau_syn_exc) * t * exp(-t / tau_syn_exc)
    inline I_syn_exc pA = convolve(K_syn_exc,exc_spikes)
    inline I_syn_inh pA = convolve(K_syn_inh,inh_spikes)
    V_m'=(k * (V_m - V_r) * (V_m - V_t) - U_m + I_e + I_stim + I_syn_exc - I_syn_inh) / C_m
    U_m'=a * (b * (V_m - V_r) - U_m)
  end

  parameters:
    C_m pF = 200pF # Membrane capacitance
    k pF/mV/ms = 8pF / mV / ms # Spiking slope
    V_r mV = -65mV # Resting potential
    V_t mV = -45mV # Threshold potential
    a 1/ms = 0.01 / ms # Time scale of recovery variable
    b nS = 9nS # Sensitivity of recovery variable
    c mV = -65mV # After-spike reset value of V_m
    d pA = 60pA # After-spike reset value of U_m
    V_peak mV = 0mV # Spike detection threshold (reset condition)
    tau_syn_exc ms = 0.2ms # Synaptic time constant of excitatory synapse
    tau_syn_inh ms = 2ms # Synaptic time constant of inhibitory synapse
    t_ref ms = 2ms # Refractory period
    # constant external input current

    # constant external input current
    I_e pA = 0pA
  end
  internals:
    RefractoryCounts integer = steps(t_ref) # refractory time in steps
  end
  input:
    inh_spikes pA <-inhibitory spike
    exc_spikes pA <-excitatory spike
    I_stim pA <-current
  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

Characterisation