COMMENT
na.mod
Sodium channel, Hodgkin-Huxley style kinetics.
use with kd.mod
ENDCOMMENT
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
NEURON {
SUFFIX na
USEION na READ ena WRITE ina
RANGE m, h, gna, gbar, vshift
GLOBAL mslp, mcen, ma, mc, mq1, mq2
GLOBAL hslp, hcen, ha, hc, hq1, hq2
GLOBAL minf, hinf, mtau, htau, ina
GLOBAL q10, temp, tadj, vmin, vmax
}
PARAMETER {
gbar = 258.272 (pS/um2) : 0.12 mho/cm2
vshift = 0 (mV) : voltage shift (affects all)
mslp = 6.7513 (mV)
mcen = -31.235 (mV)
ma = 0.23118 (ms)
mc = 19.098 (mV)
mq1 = 1 (mV)
mq2 = 54.927 (mV)
hslp = 2.631 (mV) : v 1/2 for inact
hcen = -47.953 (mV) : v 1/2 for inact
ha = 14.042 (ms) : inact (v)
hc = -73.517 (mV) : inact inf slope
hq1 = 24.053 (mV) : inact inf slope
hq2 = 19.627 (mV) : inact tau slope
temp = 23 (degC) : original temp
q10 = 2.3 : temperature sensitivity
v (mV)
dt (ms)
celsius (degC)
vmin = -120 (mV)
vmax = 100 (mV)
}
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
(pS) = (picosiemens)
(um) = (micron)
}
ASSIGNED {
ina (mA/cm2)
gna (pS/um2)
ena (mV)
minf hinf
mtau (ms) htau (ms)
tadj
}
STATE { m h }
INITIAL {
trates(v+vshift)
m = minf
h = hinf
}
BREAKPOINT {
SOLVE states METHOD cnexp
gna = gbar*m*m*m*h
ina = (1e-4) * gna * (v - ena)
}
DERIVATIVE states { :Computes state variables m, h, and n
trates(v+vshift) : at the current v and dt.
m' = (minf - m)/mtau
h' = (hinf - h)/htau
}
PROCEDURE trates(v (mV)) {
TABLE minf, mtau , hinf, htau
DEPEND dt, mcen, mslp, ma, mc, mq1, mq2, hcen, hslp, ha, hc, hq1, hq2
FROM vmin TO vmax WITH 199
UNITSOFF
rates(v): not consistently executed from here if usetable == 1
UNITSON
}
UNITSOFF
PROCEDURE rates(vm) {
LOCAL a, b
mtau = xtau(vm, ma, mc, mq1, mq2)
minf = xinf(vm, mcen, mslp)
:"h" inactivation
htau = xtau(vm, ha, hc, hq1, hq2)
hinf = xinf(-vm, -hcen, hslp)
}
FUNCTION xinf(v, xcen, xslp) {
xinf = 1/( 1 + exp(-(v-xcen)/xslp) )
}
FUNCTION xtau(v, xa, xc, xq1, xq2) {
xtau = xa / (exp(-(v-xc)/xq2) + exp((v-xc)/xq1))
}
UNITSON