TITLE Na channel : with recovery from inactivation and ir. M.Migliore BJ 1996 : modified to be used with cvode M.Migliore June 2001 NEURON { SUFFIX namr USEION na READ ena WRITE ina NONSPECIFIC_CURRENT Ir RANGE gnabar,b,vhalf,vhalfn,vhalfl,vvh GLOBAL ninf,linf,taul,taun,rinf,taur,inf } UNITS { (mA) = (milliamp) (mV) = (millivolt) } PARAMETER { dt (ms) v (mV) ena (mV) celsius (degC) gnabar=.01 (mho/cm2) vhalf=-50 (mV) zeta=20 (1) vhalfn=-30 (mV) vhalfr=-60 (mV) vhalfl=-57 (mV) a0l=0.1 (/ms) a0n=2 (/ms) a0r=0.0003 (ms) zetan=-4 (1) zetar=12 (1) zetal=4 (1) gmn=0.9 (1) gmr=0.2 (1) gml=0.65 (1) lmax=1 (1) nmax=0.01 (1) rmin=3 (1) vvh=-58 (mv) vvs=2 (1) b=0 } STATE { n l r fr } ASSIGNED { Ir (mA/cm2) ina (mA/cm2) inf ninf linf rinf taul taun taur } INITIAL { rates(v) n=ninf l=linf r=rinf fr=inf } BREAKPOINT { SOLVE states METHOD cnexp ina = gnabar*n*l*r*(v-ena) Ir = -ina*fr } FUNCTION alp(v(mV)) { alp = exp( 1.e-3*zeta*(v-vhalf)*9.648e4/(8.315*(273.16+celsius))) } FUNCTION alpn(v(mV)) { alpn = exp(1.e-3*zetan*(v-vhalfn)*9.648e4/(8.315*(273.16+celsius))) } FUNCTION betn(v(mV)) { betn = exp(1.e-3*zetan*gmn*(v-vhalfn)*9.648e4/(8.315*(273.16+celsius))) } FUNCTION alpv(v(mV)) { alpv = (1+b*exp((v-vvh)/vvs))/(1+exp((v-vvh)/vvs)) } FUNCTION alpr(v(mV)) { alpr = exp(1.e-3*zetar*(v-vhalfr)*9.648e4/(8.315*(273.16+celsius))) } FUNCTION betr(v(mV)) { betr = exp(1.e-3*zetar*gmr*(v-vhalfr)*9.648e4/(8.315*(273.16+celsius))) } FUNCTION alpl(v(mV)) { alpl = exp(1.e-3*zetal*(v-vhalfl)*9.648e4/(8.315*(273.16+celsius))) } FUNCTION betl(v(mV)) { betl = exp(1.e-3*zetal*gml*(v-vhalfl)*9.648e4/(8.315*(273.16+celsius))) } DERIVATIVE states { rates(v) n' = (ninf-n)/taun l' = (linf - l)/taul r' = (rinf - r)/taur fr = inf } PROCEDURE rates(v (mV)) { :callable from hoc LOCAL a,q10 q10=1.5^((celsius-22)/10) inf = 1/(1 + alp(v)) a = alpn(v) ninf = 1/(1 + a) taun = betn(v)/(q10*a0n*(1+a)) if (taun