model of DCN pyramidal neuron
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
2.9 KiB

TITLE kif.mod DCN pyramidal cell model fast transient current
COMMENT
This model implements a fast transient potassium current from
Dorsal Cochlear Nucleus Pyramidal cells
based on kinetic data from Kanold and Manis (1999) and Kanold's dissertation (1999)
-- 15 Jan 1999 P. Manis
2/10/02. P. Manis.
Pulled from pyr.mod 7/24/2014
ENDCOMMENT
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
}
NEURON {
SUFFIX kif
USEION k READ ek WRITE ik
RANGE gkif, kif_a_inf, kif_i_inf : fast inactivating potassium current
RANGE akif, gbar
RANGE kif_a_tau, kif_i_tau
RANGE kif_a_start, kif_i_start
RANGE kif_ivh, kif_avh, kif_hivh
}
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
PARAMETER {
v (mV)
celsius (degC)
dt (ms)
ek (mV) : = -81.5 (mV)
ena (mV) : = 50.0 (mV)
gbar = 0.0125 (mho/cm2) <0,1e9>
kif_ivh = -89.6 (mV)
kif_avh = -57.0 (mV)
kif_hivh = -87.0 (mV)
kif_a_start = -1 (1)
kif_i_start = -1 (1)
}
STATE {
kifa kifi
}
ASSIGNED {
gkif (mho/cm2)
ik (mA/cm2)
kif_a_inf (1)
kif_i_inf (1)
kif_a_tau (ms)
kif_i_tau (ms)
akif ()
q10 ()
}
BREAKPOINT {
SOLVE states METHOD cnexp
akif = kifa*kifa*kifa*kifa*kifi
gkif = gbar*akif
ik = gkif*(v - ek)
}
INITIAL {
q10 = 3^((celsius - 22)/10 (degC))
rates(v)
if(kif_a_start < 0) { : if xx_(i/a)_start is > 0, then perturbation is done at onset of computations.
kifa = kif_a_inf
} else {
kifa = kif_a_start
}
if(kif_i_start < 0) {
kifi = kif_i_inf
} else {
kifi = kif_i_start
}
}
DERIVATIVE states {
rates(v)
kifa' = (kif_a_inf - kifa) / kif_a_tau
kifi' = (kif_i_inf - kifi) / kif_i_tau
}
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 kif_a_inf, kif_a_tau, kif_i_inf, kif_i_tau DEPEND celsius, kif_avh, kif_ivh FROM -200 TO 100 WITH 400
: "kif" fast inactivation potassium channel - activation and inactivation
kif_a_inf = kif_m(v)
kif_i_inf = kif_h(v)
kif_a_tau = kif_mt(v)
kif_i_tau = kif_ht(v)
}
: Make these as functions so we can view them from hoc, although this
: may slow things down a bit
FUNCTION kif_m(v ) { : ikif activation
kif_m = 1.0/(1+exp(-(v-kif_avh)/25.8 (mV)))
}
FUNCTION kif_h(v (mV)) { : ikif inactivation
kif_h = 1.0/(1+exp((v-kif_ivh)/6.7 (mV)))
}
FUNCTION kif_mt(v (mV)) (ms) { : ikif activation tau
LOCAL x
x = 0.15 * exp((v-kif_avh)/10 (mV)) + 0.3 *exp(-(v-kif_avh)/10 (mV))
x = 0.5 + (1.0 /x)
kif_mt = (x * 1.0 (ms))/q10
}
FUNCTION kif_ht(v (mV)) (ms) { : ikif inactivation tau
LOCAL x
x = 0.015 * exp((v-kif_hivh)/20 (mV))+0.03*exp(-(v-kif_hivh)/20 (mV))
x = 10 + (1./x)
kif_ht = (x * 1.0 (ms)) /q10
}