: Persistent Na+ channel NEURON { SUFFIX nap :SUFFIX Nap USEION na READ ena WRITE ina RANGE gnabar, ina, gna :RANGE gnapbar, ina, gna RANGE DA_alphamshift,DA_betamshift RANGE DA_alphahfactor, DA_betahfactor } UNITS { (mA) = (milliamp) (mV) = (millivolt) } INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)} PARAMETER { v (mV) dt (ms) gnabar= 0.0022 (mho/cm2) <0,1e9> :gnapbar= 0.0022 (mho/cm2) <0,1e9> ena = 55 (mV) DA_alphamshift=0 : 2 for 100% DA, 0 otherwise DA_betamshift=0 : 5 for 100% DA,0 otherwise DA_alphahfactor=0: -.8e-5 for DA, 0 otherwise DA_betahfactor=0 : 0.014286-0.02 for DA, 0 otherwise } STATE { m h } ASSIGNED { ina (mA/cm2) minf hinf mtau (ms) htau (ms) gna (mho/cm2) } INITIAL { rate(v) m = minf h = hinf } BREAKPOINT { SOLVE states METHOD cnexp gna = gnabar*m*h :gna = gnapbar*m*h ina = gna*(v-55) } DERIVATIVE states { rate(v) m' = (minf-m)/mtau h' = (hinf-h)/htau } UNITSOFF FUNCTION malf( v){ LOCAL va va=v+12+DA_alphamshift if (fabs(va)<1e-04){ va = va + 0.00001 } malf = (-0.2816*va)/(-1+exp(-va/9.3)) } FUNCTION mbet(v(mV))(/ms) { LOCAL vb vb=v-15+DA_betamshift if (fabs(vb)<1e-04){ vb = vb + 0.00001 } mbet = (0.2464*vb)/(-1+exp(vb/6)) } FUNCTION half(v(mV))(/ms) { LOCAL vc vc=v+42.8477 if (fabs(vc)<1e-04){ vc=vc+0.00001 } half= (2.8e-5+DA_alphahfactor)*(exp(-vc/4.0248)) } FUNCTION hbet(v(mV))(/ms) { LOCAL vd vd=v-413.9284 if (fabs(vd)<1e-04){ vd=vd+0.00001 } hbet= (0.02+DA_betahfactor)/(1+exp(-vd/148.2589)) } PROCEDURE rate(v (mV)) {LOCAL msum, hsum, ma, mb, ha, hb ma=malf(v) mb=mbet(v) ha=half(v) hb=hbet(v) msum = ma+mb minf = ma/msum mtau = 1/msum hsum = ha+hb hinf = ha/hsum htau = 1/hsum } UNITSON