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))
}