hh_cond_exp_destexhe
hh_cond_exp_destexhe - Hodgin Huxley based model, Traub, Destexhe and Mainen modified
Description
hh_cond_exp_destexhe is an implementation of a modified Hodkin-Huxley model, which is based on the hh_cond_exp_traub model.
Differences to hh_cond_exp_traub:
Additional background noise: A background current whose conductances were modeled as an Ornstein-Uhlenbeck process is injected into the neuron.
Additional non-inactivating K+ current: A non-inactivating K+ current was included, which is responsible for spike frequency adaptation.
References
- 1
Traub, R.D. and Miles, R. (1991) Neuronal Networks of the Hippocampus. Cambridge University Press, Cambridge UK.
- 2
Destexhe, A. and Pare, D. (1999) Impact of Network Activity on the Integrative Properties of Neocortical Pyramidal Neurons In Vivo. Journal of Neurophysiology
- 3
Destexhe, M. Rudolph, J.-M. Fellous and T. J. Sejnowski (2001) Fluctuating synaptic conductances recreate in vivo-like activity in neocortical neurons. Neuroscience
- 4
Mainen, J. Joerges, J. R. Huguenard and T. J. Sejnowski (1995) A Model of Spike Initiation in Neocortical Pyramidal Neurons. Neuron
See also
hh_cond_exp_traub
Parameters
Name |
Physical unit |
Default value |
Description |
---|---|---|---|
g_Na |
nS |
17318.0nS |
Na Conductance |
g_K |
nS |
3463.6nS |
K Conductance |
g_L |
nS |
15.5862nS |
Leak Conductance |
C_m |
pF |
346.36pF |
Membrane Capacitance |
E_Na |
mV |
60mV |
Reversal potentials |
E_K |
mV |
-90.0mV |
Potassium reversal potential |
E_L |
mV |
-80.0mV |
Leak reversal Potential (aka resting potential) |
V_T |
mV |
-58.0mV |
Voltage offset that controls dynamics. For default |
tau_syn_exc |
ms |
2.7ms |
parameters, V_T = -63mV results in a threshold around -50mV.Synaptic Time Constant Excitatory Synapse |
tau_syn_inh |
ms |
10.5ms |
Synaptic Time Constant for Inhibitory Synapse |
E_exc |
mV |
0.0mV |
Excitatory synaptic reversal potential |
E_inh |
mV |
-75.0mV |
Inhibitory synaptic reversal potential |
g_M |
nS |
173.18nS |
Conductance of non-inactivating K+ channel |
g_noise_exc0 |
uS |
0.012uS |
Conductance OU noiseMean of the excitatory noise conductance |
g_noise_inh0 |
uS |
0.057uS |
Mean of the inhibitory noise conductance |
sigma_noise_exc |
uS |
0.003uS |
Standard deviation of the excitatory noise conductance |
sigma_noise_inh |
uS |
0.0066uS |
Standard deviation of the inhibitory noise conductance |
alpha_n_init |
1 / ms |
0.032 / (ms * mV) * (15.0mV - V_m) / (exp((15.0mV - V_m) / 5.0mV) - 1.0) |
|
beta_n_init |
1 / ms |
0.5 / ms * exp((10.0mV - V_m) / 40.0mV) |
|
alpha_m_init |
1 / ms |
0.32 / (ms * mV) * (13.0mV - V_m) / (exp((13.0mV - V_m) / 4.0mV) - 1.0) |
|
beta_m_init |
1 / ms |
0.28 / (ms * mV) * (V_m - 40.0mV) / (exp((V_m - 40.0mV) / 5.0mV) - 1.0) |
|
alpha_h_init |
1 / ms |
0.128 / ms * exp((17.0mV - V_m) / 18.0mV) |
|
beta_h_init |
1 / ms |
(4.0 / (1.0 + exp((40.0mV - V_m) / 5.0mV))) / ms |
|
alpha_p_init |
1 / ms |
0.0001 / (ms * mV) * (V_m + 30.0mV) / (1.0 - exp(-(V_m + 30.0mV) / 9.0mV)) |
|
beta_p_init |
1 / ms |
-0.0001 / (ms * mV) * (V_m + 30.0mV) / (1.0 - exp((V_m + 30.0mV) / 9.0mV)) |
|
I_e |
pA |
0pA |
constant external input current |
State variables
Name |
Physical unit |
Default value |
Description |
---|---|---|---|
r |
integer |
0 |
counts number of tick during the refractory period |
g_noise_exc |
uS |
g_noise_exc0 |
|
g_noise_inh |
uS |
g_noise_inh0 |
|
V_m |
mV |
E_L |
Membrane potential |
Act_m |
real |
alpha_m_init / (alpha_m_init + beta_m_init) |
|
Act_h |
real |
alpha_h_init / (alpha_h_init + beta_h_init) |
|
Inact_n |
real |
alpha_n_init / (alpha_n_init + beta_n_init) |
|
Noninact_p |
real |
alpha_p_init / (alpha_p_init + beta_p_init) |
Equations
Source code
neuron hh_cond_exp_destexhe:
state:
r integer = 0 # counts number of tick during the refractory period
g_noise_exc uS = g_noise_exc0
g_noise_inh uS = g_noise_inh0
V_m mV = E_L # Membrane potential
Act_m real = alpha_m_init / (alpha_m_init + beta_m_init)
Act_h real = alpha_h_init / (alpha_h_init + beta_h_init)
Inact_n real = alpha_n_init / (alpha_n_init + beta_n_init)
Noninact_p real = alpha_p_init / (alpha_p_init + beta_p_init)
end
equations:
# synapses: exponential conductance
kernel g_inh = exp(-t / tau_syn_inh)
kernel g_exc = exp(-t / tau_syn_exc)
# Add aliases to simplify the equation definition of V_m
inline I_Na pA = g_Na * Act_m * Act_m * Act_m * Act_h * (V_m - E_Na)
inline I_K pA = g_K * Inact_n * Inact_n * Inact_n * Inact_n * (V_m - E_K)
inline I_L pA = g_L * (V_m - E_L)
inline I_M pA = g_M * Noninact_p * (V_m - E_K)
inline I_noise pA = (g_noise_exc * (V_m - E_exc) + g_noise_inh * (V_m - E_inh))
inline I_syn_exc pA = convolve(g_exc,exc_spikes) * (V_m - E_exc)
inline I_syn_inh pA = convolve(g_inh,inh_spikes) * (V_m - E_inh)
V_m'=(-I_Na - I_K - I_M - I_L - I_syn_exc - I_syn_inh + I_e + I_stim - I_noise) / C_m
# channel dynamics
inline V_rel mV = V_m - V_T
inline alpha_n 1/ms = 0.032 / (ms * mV) * (15.0mV - V_rel) / (exp((15.0mV - V_rel) / 5.0mV) - 1.0)
inline beta_n 1/ms = 0.5 / ms * exp((10.0mV - V_rel) / 40.0mV)
inline alpha_m 1/ms = 0.32 / (ms * mV) * (13.0mV - V_rel) / (exp((13.0mV - V_rel) / 4.0mV) - 1.0)
inline beta_m 1/ms = 0.28 / (ms * mV) * (V_rel - 40.0mV) / (exp((V_rel - 40.0mV) / 5.0mV) - 1.0)
inline alpha_h 1/ms = 0.128 / ms * exp((17.0mV - V_rel) / 18.0mV)
inline beta_h 1/ms = (4.0 / (1.0 + exp((40.0mV - V_rel) / 5.0mV))) / ms
inline alpha_p 1/ms = 0.0001 / (ms * mV) * (V_m + 30.0mV) / (1.0 - exp(-(V_m + 30.0mV) / 9.0mV))
inline beta_p 1/ms = -0.0001 / (ms * mV) * (V_m + 30.0mV) / (1.0 - exp((V_m + 30.0mV) / 9.0mV))
Act_m'=(alpha_m - (alpha_m + beta_m) * Act_m)
Act_h'=(alpha_h - (alpha_h + beta_h) * Act_h)
Inact_n'=(alpha_n - (alpha_n + beta_n) * Inact_n)
Noninact_p'=(alpha_p - (alpha_p + beta_p) * Noninact_p)
end
parameters:
g_Na nS = 17318.0nS # Na Conductance
g_K nS = 3463.6nS # K Conductance
g_L nS = 15.5862nS # Leak Conductance
C_m pF = 346.36pF # Membrane Capacitance
E_Na mV = 60mV # Reversal potentials
E_K mV = -90.0mV # Potassium reversal potential
E_L mV = -80.0mV # Leak reversal Potential (aka resting potential)
V_T mV = -58.0mV # Voltage offset that controls dynamics. For default
# parameters, V_T = -63mV results in a threshold around -50mV.
# parameters, V_T = -63mV results in a threshold around -50mV.
tau_syn_exc ms = 2.7ms # Synaptic Time Constant Excitatory Synapse
tau_syn_inh ms = 10.5ms # Synaptic Time Constant for Inhibitory Synapse
E_exc mV = 0.0mV # Excitatory synaptic reversal potential
E_inh mV = -75.0mV # Inhibitory synaptic reversal potential
g_M nS = 173.18nS # Conductance of non-inactivating K+ channel
# Conductance OU noise
# Conductance OU noise
g_noise_exc0 uS = 0.012uS # Mean of the excitatory noise conductance
g_noise_inh0 uS = 0.057uS # Mean of the inhibitory noise conductance
sigma_noise_exc uS = 0.003uS # Standard deviation of the excitatory noise conductance
sigma_noise_inh uS = 0.0066uS # Standard deviation of the inhibitory noise conductance
alpha_n_init 1/ms = 0.032 / (ms * mV) * (15.0mV - V_m) / (exp((15.0mV - V_m) / 5.0mV) - 1.0)
beta_n_init 1/ms = 0.5 / ms * exp((10.0mV - V_m) / 40.0mV)
alpha_m_init 1/ms = 0.32 / (ms * mV) * (13.0mV - V_m) / (exp((13.0mV - V_m) / 4.0mV) - 1.0)
beta_m_init 1/ms = 0.28 / (ms * mV) * (V_m - 40.0mV) / (exp((V_m - 40.0mV) / 5.0mV) - 1.0)
alpha_h_init 1/ms = 0.128 / ms * exp((17.0mV - V_m) / 18.0mV)
beta_h_init 1/ms = (4.0 / (1.0 + exp((40.0mV - V_m) / 5.0mV))) / ms
alpha_p_init 1/ms = 0.0001 / (ms * mV) * (V_m + 30.0mV) / (1.0 - exp(-(V_m + 30.0mV) / 9.0mV))
beta_p_init 1/ms = -0.0001 / (ms * mV) * (V_m + 30.0mV) / (1.0 - exp((V_m + 30.0mV) / 9.0mV))
# constant external input current
I_e pA = 0pA
end
internals:
RefractoryCounts integer = 20
D_exc uS**2/ms = 2 * sigma_noise_exc ** 2 / tau_syn_exc
D_inh uS**2/ms = 2 * sigma_noise_inh ** 2 / tau_syn_inh
A_exc uS = ((D_exc * tau_syn_exc / 2) * (1 - exp(-2 * resolution() / tau_syn_exc))) ** 0.5
A_inh uS = ((D_inh * tau_syn_inh / 2) * (1 - exp(-2 * resolution() / tau_syn_inh))) ** 0.5
end
input:
inh_spikes nS <-inhibitory spike
exc_spikes nS <-excitatory spike
I_stim pA <-current
end
output: spike
update:
U_old mV = V_m
integrate_odes()
g_noise_exc = g_noise_exc0 + (g_noise_exc - g_noise_exc0) * exp(-resolution() / tau_syn_exc) + A_exc * random_normal(0,1)
g_noise_inh = g_noise_inh0 + (g_noise_inh - g_noise_inh0) * exp(-resolution() / tau_syn_inh) + A_inh * random_normal(0,1)
# sending spikes: crossing 0 mV, pseudo-refractoriness and local maximum...
if r > 0:
r -= 1
elif V_m > V_T + 30mV and U_old > V_m:
r = RefractoryCounts
emit_spike()
end
end
end