TITLE kml.mod
COMMENT
Created by Christian Roessert
Implementation of a simple high-threshold potassium current (Prescott et al., 2008) using the
Morris-Lecar formalism (Morris and Lecar, 1981)
ENDCOMMENT
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
(nA) = (nanoamp)
}
NEURON {
SUFFIX kml
USEION k READ ek WRITE ik
RANGE gbar, g, bn, gn, tn, ik
GLOBAL ninf, ntau
}
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
PARAMETER {
v (mV)
ek = -90 (mV)
gbar = 0 (S/cm2) <0,1e9>
bn = -20 (mV)
gn = 10 (mV)
tn = 3 (ms)
}
STATE {
n
}
ASSIGNED {
ik (mA/cm2)
g (S/cm2)
ninf
ntau (ms)
}
BREAKPOINT {
SOLVE states METHOD cnexp
g = gbar*n
ik = g*(v - ek)
}
INITIAL {
rates(v)
n = ninf
}
DERIVATIVE states {
rates(v)
n' = (ninf-n)/ntau
}
UNITSOFF
PROCEDURE rates(v) { :Computes rate and other constants at current v.
:Call once from HOC to initialize inf at resting v.
: ninf = (1/2) * (1 + tanh( (v-bn) / gn ) )
ninf = (1 / (1 + exp((bn - v) / (gn/2))))
: ntau = tn / cosh( (v-bn) / (2*gn) )
ntau = (2*tn) / ( exp((v-bn)/(2*gn)) + exp((-v+bn)/(2*gn)) )
}
UNITSON
: v=[-80:1:0]; bn=-20; gn=10; tn=2;
: ninf = (1/2) * (1 + tanh( (v-bn) ./ gn ) )
: ninf2 = (1 ./ (1 + exp((bn - v) ./ (gn/2))))
: ntau = tn ./ cosh( (v-bn) ./ (2*gn) )
: ntau2 = (2*tn) ./ ( exp((v-bn)./(2*gn)) + exp((-v+bn)./(2*gn)) )
: plot(v, ninf, v, ninf2, 'r--')
: plot(v, ntau, v, ntau2, 'r--')