TITLE klva.mod Low Voltage Activation (~ Kv1.1) potassium channels COMMENT written by Jonathan Z Simon, jzsimon@isr.umd.edu but core code taken from Hines & Carnivale, "Expanding NEURON with NMODL" except adding more variables Parameters & Functions taken from Rathouz & Trussel, J. Neurophysiol. 80: 2824-2835, 1998. (NM, Chick, Slice) klva.mod & khva.mod are identical except for suffix & defaults in PARAMETER ENDCOMMENT UNITS { (S) = (siemens) (mV) = (millivolt) (mA) = (milliamp) } NEURON { SUFFIX klva USEION k READ ek WRITE ik RANGE gkbar, gk, ik, alphaVHalf, alphaK, alpha0, betaVHalf, betaK, beta0, q10, T0 } COMMENT Should be RANGE, not GLOBAL, or they cannot vary from cell to cell: alphaVHalf, alphaK, alpha0, betaVHalf, betaK, beta0, q10, T0 ENDCOMMENT PARAMETER { gkbar = 0.02 (mho/cm2) <0,1e9> alpha0 = 0.2 (/ms) <0,1e9> alphaVHalf = -60 (mV) alphaK = 21.8 (mV) <0,1e9> beta0 = 0.17 (/ms) <0,1e9> betaVHalf = -60 (mV) betaK = 14 (mV) <0,1e9> q10 = 2.0 <0,1e9> T0 = 23 (degC) <0,1e9> } ASSIGNED { gk (mho/cm2) ik (mA/cm2) ratefac alphaKInv (/mV) betaKInv (/mV) v (mV) celsius (degC) ek (mV) } STATE { n } BREAKPOINT { SOLVE states METHOD cnexp gk = gkbar*n : linear in n ik = gk*(v - ek) } INITIAL { n = alpha(v)/(alpha(v) + beta(v)) : from states with n' vanishing ratefac = q10^((celsius - T0)/10(degC)) : can't vary with time alphaKInv = 1/alphaK : multiply by inverse is faster than divide betaKInv = 1/betaK } DERIVATIVE states { n' = ((1-n)*alpha(v) - n*beta(v))*ratefac } FUNCTION alpha(Vm (mV)) (/ms) { alpha = alpha0*exp((Vm-alphaVHalf)*alphaKInv) } FUNCTION beta(Vm (mV)) (/ms) { beta = beta0*exp((-Vm+betaVHalf)*betaKInv) }