COMMENT kd21.mod (k slow) in the paper Voltage gated k+ channels in layer5 neocortical pyramidal neurons from young rats: subtypes and gradients Alon Korngreen and Bert Sakmann ENDCOMMENT INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)} NEURON { SUFFIX kdf USEION k READ ek WRITE ik RANGE n,h, gk, gkbar RANGE ninf, ntau,hinf,htau,vshift RANGE ikd GLOBAL q10, temp, vmin, vmax,tadj,N GLOBAL ntau_slow1,ntau_slow2 } UNITS { (mA) = (milliamp) (mV) = (millivolt) (pS) = (picosiemens) (um) = (micron) } PARAMETER { gkbar = 2.5 (pS/um2) : 0.03 mho/cm2 v (mV) dt (ms) celsius (degC) temp = 23 (degC) : original temp q10 = 2.3 : temperature sensitivity vmin = -150 (mV) vmax = 100 (mV) ntau_C1=1.25 (ms) ntau_C2=171 :1.15 (ms) ntau_C3=-0.026 (1/mV) ntau_C4=13 (ms) ninf_a=-24 :-14 (mV) ninf_b=14 (mV) htau_C1=360 (ms) htau_C2=810 :1010(ms) htau_C3=-75 (mV) htau_C4=48 (mV) htau_C5=22 :24(ms/mV) htau_C6=-55 (mV) hinf_a=-54 (mV) hinf_b=-11 (mV) vshift=0 (mV) ntau_slow1=1 ntau_slow2=0 N=3 ek (mV) } ASSIGNED { ik (mA/cm2) gk (pS/um2) ninf ntau (ms) htau (ms) hinf tadj ikd (mA/cm2) } STATE { n h} INITIAL { trates(v-vshift) n = ninf h = hinf tadj=q10^((celsius - temp)/10) } BREAKPOINT { SOLVE states METHOD cnexp gk = gkbar*h*( tadj)*n^N ik = (1e-4) * gk * (v - ek) ikd=ik } DERIVATIVE states { :Computes state variable n trates(v-vshift) : at the current v and dt. ntau=ntau*ntau_slow1+ntau_slow2 n'= (1- exp((-dt*tadj)/(ntau)))*(ninf-n)/dt h' = (1- exp((-dt*tadj)/(htau)))*(hinf-h)/dt } PROCEDURE trates(v) { :Computes rate and other constants at current v. :Call once from HOC to initialize inf at resting v. TABLE ninf, ntau,hinf,htau DEPEND dt, celsius, temp, ntau_C1, ntau_C2, ntau_C3,ntau_C4,ninf_a,ninf_b,htau_C1, htau_C2 ,htau_C3,htau_C4,htau_C5,htau_C6 , hinf_a , hinf_b FROM vmin TO vmax WITH 199 rates(v): not consistently executed from here if usetable_hh == 1 } PROCEDURE rates(v) { :Computes rate and other constants at current v. :Call once from HOC to initialize inf at resting v. LOCAL ntau_C2_50,ntau_C3_50 ntau_C2_50=ntau_C2 ntau_C3_50=ntau_C3 if (v>-50){ ntau_C2_50=ntau_C4 ntau_C3_50=-ntau_C3 } ntau=ntau_C1+ntau_C2_50*exp(-v*ntau_C3_50) ntau=ntau :/2 htau=htau_C1+(htau_C2+htau_C5*(v-htau_C6))*exp(-((v-htau_C3)/htau_C4)^2) ninf=1/(1+exp((ninf_a-v)/ninf_b)) hinf=1/(1+exp((hinf_a-v)/hinf_b)) }