COMMENT
This file, na.mod, implements the gna current from
Quadroni and Knopfel 1994 table 1
ENDCOMMENT
NEURON {
SUFFIX na
NONSPECIFIC_CURRENT i
RANGE i, Erev, gbar
GLOBAL taum_min, tauh_min
}
UNITS {
(S) = (siemens)
(mV) = (millivolt)
(mA) = (milliamp)
}
PARAMETER {
gbar = 20172e-6 (S/cm2) < 0, 1e9 >
Erev = 50 (mV)
taum_min = 0.05 (ms)
tauh_min = 0.3 (ms)
}
ASSIGNED {
i (mA/cm2)
v (mV)
g (S/cm2)
minf
hinf
tau_h (ms)
tau_m (ms)
}
STATE { m h }
BREAKPOINT {
SOLVE states METHOD cnexp
g = gbar * m^3 * h^2
i = g * (v - Erev)
}
INITIAL {
: assume that v has been constant for a long time
m = alpham(v)/(alpham(v) + betam(v))
h = alphah(v)/(alphah(v) + betah(v))
}
DERIVATIVE states {
rates(v)
m' = (minf - m)/tau_m
h' = (hinf - h)/tau_h
}
FUNCTION alpham(Vm (mV)) (/ms) {
UNITSOFF
alpham = 5.0 * exp( 0.1 * (Vm + 39.5))
UNITSON
}
FUNCTION betam(Vm (mV)) (/ms) {
UNITSOFF
betam = 5.9 * exp( -0.044 * (Vm + 39.5))
UNITSON
}
FUNCTION alphah(Vm (mV)) (/ms) {
UNITSOFF
alphah = 0.567 * exp( -0.024 * (Vm + 35.0))
UNITSON
}
FUNCTION betah(Vm (mV)) (/ms) {
UNITSOFF
betah = 0.567 * exp(0.275 * (Vm + 35.0))
UNITSON
}
FUNCTION taum(Vm (mV)) (/ms) {
UNITSOFF
taum = 1.0 / (alpham(Vm) + betam(Vm))
if (taum < taum_min) {
taum = taum_min
}
UNITSON
}
FUNCTION tauh(Vm (mV)) (/ms) {
UNITSOFF
tauh = 1.0 / (alphah(Vm) + betah(Vm))
if (tauh < tauh_min) {
tauh = tauh_min
}
UNITSON
}
PROCEDURE rates(Vm(mV)) {
tau_h = tauh(Vm)
tau_m = taum(Vm)
minf = alpham(Vm)/(alpham(Vm) + betam(Vm))
hinf = alphah(Vm)/(alphah(Vm) + betah(Vm))
}