TITLE napsi :modified to have slow inactivation described in Fleidervish and to make slope a global parameter :further modified to have intermediate time course inactivation NEURON { SUFFIX napsi USEION na READ ena WRITE ina RANGE gbar, thegna, sh, ar,ari,minf,sinf,hinf,taui,taus GLOBAL mtau,vslope } PARAMETER { gbar = .0052085 (mho/cm2) sh = 0 (mV) vslope=6.8 (mV) :activation slope mtau = 1 (ms) ena (mV) :must be explicitly defined in hoc a0s=0.001 (/ms) b0s=0.0034 (/ms) asvh=-85 (mV) bsvh=-17 (mV) avs=30 (mV) bvs=10 (mV) ar=1 (1) : 1=no inact., 0=max inact. a0i=0.01 (/ms) b0i=0.034 (/ms) aivh=-85 (mV) bivh=-17 (mV) avi=30 (mV) bvi=10 (mV) ari=1 (1) : 1=no inact., 0=max inact. celsius (degC) v (mV) } UNITS { (mA) = (milliamp) (mV) = (millivolt) (pS) = (picosiemens) (um) = (micron) } ASSIGNED { ina (mA/cm2) thegna (mho/cm2) minf sinf hinf taus (ms) taui (ms) } STATE { m s h} UNITSOFF BREAKPOINT { SOLVE states METHOD cnexp thegna =gbar*m*s*h ina = thegna * (v - ena) } INITIAL { trates(v,ar,ari,sh) m=minf s=sinf h=hinf } DERIVATIVE states { trates(v,ar,ari,sh) s' = (sinf - s)/taus m' = (minf-m)/mtau h' = (hinf-h)/taui } PROCEDURE trates(vm,a1,a2,sh2) { LOCAL c,ci minf = (1/(1+exp(-(vm+52.3-sh2)/vslope))) taus = 1/(alps(vm)+bets(vm)) taui = 1/(alpi(vm)+beti(vm)) c=alps(vm)*taus sinf = c+a1*(1-c) ci=alpi(vm)*taui hinf = ci+a2*(1-ci) } FUNCTION alps(v(mV)) { alps = a0s*exp((asvh-v)/avs) } FUNCTION bets(v(mV)) { bets = b0s/(exp((bsvh-v)/bvs)+1) } FUNCTION alpi(v(mV)) { alpi = a0i*exp((aivh-v)/avi) } FUNCTION beti(v(mV)) { beti = b0i/(exp((bivh-v)/bvi)+1) } UNITSON