/
iaf_psc_alpha_neuron.nestml
111 lines (88 loc) · 3.93 KB
/
iaf_psc_alpha_neuron.nestml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
"""
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_exc or tau_syn_inh, 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, 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
"""
model iaf_psc_alpha_neuron:
state:
V_m mV = E_L
refr_t ms = 0 ms # Refractory period timer
is_refractory boolean = false
equations:
kernel I_kernel_inh = (e / tau_syn_inh) * t * exp(-t / tau_syn_inh)
kernel I_kernel_exc = (e / tau_syn_exc) * t * exp(-t / tau_syn_exc)
inline I pA = convolve(I_kernel_exc, exc_spikes) * pA - convolve(I_kernel_inh, inh_spikes) * pA + I_e + I_stim
V_m' = -(V_m - E_L) / tau_m + I / C_m
parameters:
C_m pF = 250 pF # Capacitance of the membrane
tau_m ms = 10 ms # Membrane time constant
tau_syn_inh ms = 2 ms # Time constant of synaptic current
tau_syn_exc ms = 2 ms # Time constant of synaptic current
refr_T ms = 2 ms # Duration of refractory period
E_L mV = -70 mV # Resting potential
V_reset mV = -70 mV # Reset potential of the membrane
V_th mV = -55 mV # Spike threshold potential
# constant external input current
I_e pA = 0 pA
input:
exc_spikes <- excitatory spike
inh_spikes <- inhibitory spike
I_stim pA <- continuous
output:
spike
update:
if is_refractory:
# neuron is absolute refractory, do not evolve V_m
refr_t -= resolution()
else:
# neuron not refractory, so evolve all ODEs (including V_m)
integrate_odes()
onCondition(V_m >= V_th):
# threshold crossing
refr_t = refr_T # start of the refractory period
is_refractory = true
V_m = V_reset
emit_spike()
onCondition(is_refractory and refr_t <= resolution() / 2):
# end of refractory period
refr_t = 0 ms
is_refractory = false