TITLE nax : Na current for axon. No slow inact. : M.Migliore Jul. 1997 : added sh to account for higher threshold M.Migliore, Apr.2002 : MM: in parallel to updated na.mod from Mainen & Sejnowski,1996 : trap0 was replaced with efun, which is a better approximation : in the vicinity of a singularity : MM, mtaufac added to explore the effect of faster activation : MM, htaufac added to model faster inactivation of axonal Na-channels NEURON { SUFFIX nax USEION na READ ena WRITE ina RANGE gbar, sh, shx, mtaufac, htaufac, qa, inax, thegna, m, h, m3h, qinf, thinf GLOBAL minf, hinf, mtau, htau } PARAMETER { sh = -7 (mV) : leftward shift of minf and mtau shx = -7 (mV) : shift of hinf and htau gbar = 0.010 (mho/cm2) mtaufac = 1 (1) : factor that is multiplied with the expression for mtau htaufac = 1 (1) : factor that is multiplied with the expression for htau tha = -30 (mV) : v 1/2 for act qa = 7.2 (mV) : act slope (4.5) Ra = 0.4 (/ms) : open (v) Rb = 0.124 (/ms) : close (v) thi1 = -45 (mV) : v 1/2 for inact thi2 = -45 (mV) : v 1/2 for inact qd = 1.5 (mV) : inact tau slope qg = 1.5 (mV) mmin=0.02 hmin=0.5 q10=2 Rg = 0.01 (/ms) : inact recov (v) Rd = .03 (/ms) : inact (v) thinf = -50 (mV) : inact inf V_1/2 - originally -50 (changed to -62) qinf = 4 (mV) : inact inf slope - originally 4 (changed to 6.9) ena (mV) : must be explicitly def. in hoc celsius v (mV) } UNITS { (mA) = (milliamp) (mV) = (millivolt) (pS) = (picosiemens) (um) = (micron) } ASSIGNED { ina (mA/cm2) inax (mA/cm2) thegna (mho/cm2) minf hinf m3h mtau (ms) htau (ms) } STATE { m h} BREAKPOINT { SOLVE states METHOD cnexp thegna = gbar*m*m*m*h m3h = m*m*m*h ina = thegna * (v - ena) inax = thegna * (v - ena) ina = inax } INITIAL { trates(v,sh, shx, mtaufac, htaufac, qa, qinf) m=minf h=hinf } DERIVATIVE states { trates(v,sh,shx, mtaufac, htaufac, qa, qinf) m' = (minf-m)/mtau h' = (hinf-h)/htau } : efun() is a better approx than trap0 in vicinity of singularity-- PROCEDURE trates(vm,sh2, sh3, taufac, taufac2, qa, qinf) { LOCAL a, b, qt qt=q10^((celsius-24)/10) : a = trap0(vm,tha+sh2,Ra,qa) a = Ra * qa * efun((tha+sh2 - vm)/qa) : b = trap0(-vm,-tha-sh2,Rb,qa) b = Rb * qa * efun((vm - tha-sh2)/qa) : mtau = taufac*0.001 : mtau = 1/(a+b)/qt : if (mtau 1e-6) { trap0 = a * (v - th) / (1 - exp(-(v - th)/q)) } else { trap0 = a * q } } ENDCOMMENT FUNCTION efun(z) { if (fabs(z) < 1e-6) { efun = 1 - z/2 }else{ efun = z/(exp(z) - 1) } }