TITLE na3
: Na current
: modified from Jeff Magee. M.Migliore may97
: added sh to account for higher threshold M.Migliore, Apr.2002
NEURON {
SUFFIX na12mut
USEION na READ ena WRITE ina
RANGE gbar, ar2, thegna, ina_ina
:GLOBAL vhalfs,sh,tha,qa,Ra,Rb,thi1,thi2,qd,qg,mmin,hmin,q10,Rg,qq,Rd,tq,thinf,qinf,vhalfs,a0s,zetas,gms,smax,vvh,vvs
RANGE vhalfs,sh,tha,qa,Ra,Rb,thi1,thi2,qd,qg,mmin,hmin,q10,Rg,qq,Rd,tq,thinf,qinf,vhalfs,a0s,zetas,gms,smax,vvh,vvs
}
PARAMETER {
sh = 8.886047186457889 (mV)
gbar = 0.01 (mho/cm2)
tha = -24.155451306086988 (mV) : v 1/2 for act
qa = 5.41 (mV) : act slope (4.5)
Ra = 0.3380714915775742 (/ms) : open (v)
Rb = 0.09013136340161398 (/ms) : close (v)
thi1 = -60.488477521934875 (mV) : v 1/2 for inact
thi2 = -77.41692349310195 (mV) : v 1/2 for inact
qd = 0.8058343822410788 (mV) : inact tau slope
qg = 0.6693522946835427 (mV)
mmin = 0.013671131800210966
hmin = 0.008420778920829085
q10 = 2.289601426305275
Rg = 0.01854277725353276 (/ms) : inact recov (v)
Rd = 0.025712394696815438 (/ms) : inact (v)
qq = 10 (mV)
tq = -55 (mV)
thinf = -40.114984963535186 (mV) : inact inf slope
qinf = 5.760329120353593 (mV) : inact inf slope
vhalfs = -33.73363659219147 (mV) : slow inact.
a0s = 0.00036615946706607756 (ms) : a0s=b0s
zetas = 13.419130866269455 (1)
gms = 0.14082624570054866 (1)
smax = 5.941545585888373 (ms)
vvh = -53.184249317587984 (mV)
vvs = 0.7672523706054653 (mV)
ar2=1 (1) : 1=no inact., 0=max inact.
ena (mV)
Ena = 55 (mV) : must be explicitly def. in hoc
celsius
v (mV)
}
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
(pS) = (picosiemens)
(um) = (micron)
}
ASSIGNED {
ina (mA/cm2)
ina_ina (milliamp/cm2) :to monitor
thegna (mho/cm2)
minf
hinf
mtau (ms)
htau (ms)
sinf (ms)
taus (ms)
}
STATE { m h s}
BREAKPOINT {
SOLVE states METHOD cnexp
thegna = gbar*m*m*m*h*s
ina = thegna * (v - Ena)
ina_ina = thegna*(v - Ena) : define gbar as pS/um2 instead of mllimho/cm2 :to monitor
}
INITIAL {
trates(v,ar2,sh)
m=minf
h=hinf
s=sinf
}
FUNCTION alpv(v) {
alpv = 1/(1+exp((v-vvh-sh)/vvs))
}
FUNCTION alps(v) {
alps = exp(1.e-3*zetas*(v-vhalfs-sh)*9.648e4/(8.315*(273.16+celsius)))
}
FUNCTION bets(v) {
bets = exp(1.e-3*zetas*gms*(v-vhalfs-sh)*9.648e4/(8.315*(273.16+celsius)))
}
LOCAL mexp, hexp, sexp
DERIVATIVE states {
trates(v,ar2,sh)
m' = (minf-m)/mtau
h' = (hinf-h)/htau
s' = (sinf - s)/taus
}
PROCEDURE trates(vm,a2,sh2) {
LOCAL a, b, c, qt
qt=q10^((celsius-24)/10)
a = trap0(vm,tha+sh2,Ra,qa)
b = trap0(-vm,-tha-sh2,Rb,qa)
mtau = 1/(a+b)/qt
if (mtau<mmin) {
mtau=mmin
}
minf = a/(a+b)
a = trap0(vm,thi1,Rd,qd) : +sh2 raus
b = trap0(-vm,-thi2,Rg,qg) : - sh2 raus
htau = 1/(a+b)/qt
if (htau<hmin) {
htau=hmin
}
hinf = 1/(1+exp((vm-thinf)/qinf)): -sh2 raus
c=alpv(vm)
sinf = c+a2*(1-c)
taus = bets(vm)/(a0s*(1+alps(vm)))
if (taus<smax) {
taus=smax
}
}
FUNCTION trap0(v,th,a,q) {
if (fabs(v-th) > 1e-6) {
trap0 = a * (v - th) / (1 - exp(-(v - th)/q))
} else {
trap0 = a * q
}
}