Skip to content
Permalink
master
Switch branches/tags
Go to file
 
 
Cannot retrieve contributors at this time
"""
iaf_psc_alpha - Leaky integrate-and-fire neuron model
#####################################################
Description
+++++++++++
iaf_psc_alpha is an implementation of a leaky integrate-and-fire model
with alpha-function kernel synaptic currents. Thus, synaptic currents
and the resulting post-synaptic potentials have a finite rise time.
The threshold crossing is followed by an absolute refractory period
during which the membrane potential is clamped to the resting potential.
The general framework for the consistent formulation of systems with
neuron like dynamics interacting by point events is described in
[1]_. A flow chart can be found in [2]_.
Critical tests for the formulation of the neuron model are the
comparisons of simulation results for different computation step
sizes.
The iaf_psc_alpha is the standard model used to check the consistency
of the nest simulation kernel because it is at the same time complex
enough to exhibit non-trivial dynamics and simple enough compute
relevant measures analytically.
.. 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``).
Parameters
++++++++++
The following parameters can be set in the status dictionary.
=========== ====== ==========================================================
V_m mV Membrane potential
E_L mV Resting membrane potential
C_m pF Capacity of the membrane
tau_m ms Membrane time constant
t_ref ms Duration of refractory period
V_th mV Spike threshold
V_reset mV Reset potential of the membrane
tau_syn_ex ms Rise time of the excitatory synaptic alpha function
tau_syn_in ms Rise time of the inhibitory synaptic alpha function
I_e pA Constant input current
V_min mV Absolute lower value for the membrane potenial
=========== ====== ==========================================================
References
++++++++++
.. [1] Rotter S, 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] Morrison A, Straube S, Plesser H E, Diesmann M (2006). Exact
subthreshold integration with continuous spike times in discrete time
neural network simulations. Neural Computation, in press
DOI: https://doi.org/10.1162/neco.2007.19.1.47
See also
++++++++
iaf_psc_delta, iaf_psc_exp, iaf_cond_alpha
Authors
+++++++
Diesmann, Gewaltig
"""
neuron iaf_psc_alpha:
state:
r integer = 0 # counts number of tick during the refractory period
V_abs mV = 0 mV
end
equations:
kernel I_kernel_in = (e / tau_syn_in) * t * exp(-t / tau_syn_in)
kernel I_kernel_ex = (e / tau_syn_ex) * t * exp(-t / tau_syn_ex)
recordable inline V_m mV = V_abs + E_L # Membrane potential.
inline I pA = convolve(I_kernel_in, in_spikes) + convolve(I_kernel_ex, ex_spikes) + I_e + I_stim
V_abs' = -V_abs/tau_m + I/C_m
end
parameters:
C_m pF = 250 pF # Capacitance of the membrane
tau_m ms = 10 ms # Membrane time constant
tau_syn_in ms = 2 ms # Time constant of synaptic current
tau_syn_ex ms = 2 ms # Time constant of synaptic current
t_ref ms = 2 ms # Duration of refractory period
E_L mV = -70 mV # Resting potential
V_reset mV = -70 mV - E_L # Reset potential of the membrane
V_th mV = -55 mV - E_L # Spike threshold
# constant external input current
I_e pA = 0 pA
end
internals:
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:
if r == 0: # neuron not refractory
integrate_odes()
else: # neuron is absolute refractory
r = r - 1
end
if V_abs >= V_th: # threshold crossing
# A supra-threshold membrane potential should never be observable.
# The reset at the time of threshold crossing enables accurate
# integration independent of the computation step size, see [2,3] for
# details.
r = RefractoryCounts
V_abs = V_reset
emit_spike()
end
end
end