TITLE kdr.mod COMMENT ENDCOMMENT UNITS { (mA) = (milliamp) (mV) = (millivolt) (S) = (siemens) } NEURON { SUFFIX kdr USEION k READ ek WRITE ik RANGE gskbar, gsk GLOBAL ninf, ntau } PARAMETER { gskbar = .003 (S/cm2) <0,1e9> } STATE { n } ASSIGNED { v (mV) :celsius (degC) ek (mV) gsk (S/cm2) ik (mA/cm2) ninf ntau (ms) } LOCAL nexp BREAKPOINT { SOLVE states METHOD cnexp gsk = gskbar*n*n*n*n ik = gsk*(v - ek) } INITIAL { rates(v) n = ninf } DERIVATIVE states { rates(v) n' = (ninf-n)/ntau } LOCAL q10 PROCEDURE rates(v(mV)) { :Computes rate and other constants at current v. :Call once from HOC to initialize inf at resting v. LOCAL alpha, beta, sum : TABLE ninf, ntau DEPEND celsius FROM -100 TO 100 WITH 200 UNITSOFF q10=1 :q10 = 3^((celsius - 6.3)/10) :"n" potassium activation system alpha = -.028*vtrap((v+70-35),-6) beta = .1056*exp((v+70-10)/40) sum = alpha + beta ntau = 1/(q10*sum) ninf = alpha/sum } FUNCTION vtrap(x,y) { :Traps for 0 in denominator of rate eqns. if (fabs(x/y) < 1e-6) { vtrap = y*(1 - x/y/2) }else{ vtrap = x/(exp(x/y) - 1) } } UNITSON