TITLE Ih channel for LGMD with cyclic nucleotide enhancement
UNITS {
(mV) = (millivolt)
(mA) = (milliamp)
(S) = (siemens)
(molar) = (1/liter)
(mM) = (millimolar)
}
: gmax and g are range variables (i.e., can change in different compartments
: while e is global
NEURON {
THREADSAFE
: note - every variable accessible in NEURON will be having the suffix _h
SUFFIX hcn
NONSPECIFIC_CURRENT i
USEION cn READ cni VALENCE 1
: these variables will be accessed as compartment.rangevar_h
: note: to make the channel constant available add the following
: to the next line: vhalf, s1, s2, tau_max
RANGE gmax, tau, g, taumax, i
: this will be accessed as e_h, taumax_h, vhalf_h, s1_h, s2_h
GLOBAL e, taumin, vhalf, s1, s2
}
PARAMETER {
: all parameterss adjustable in hoc files
gmax= 0.001 (S/cm2)
e = -37 (mV)
vhalf = -78.2 (mV)
s1 = -12.5 (mV)
s2 = 13 (mV)
taumax = 1350 (ms)
taumin = 10 (ms)
cnvm=15 (mV)
lcp=2 (1)
kD=6e-4 (mM)
taucn=10 (ms)
}
ASSIGNED {
v (mV)
cni (mM)
i (mA/cm2)
vs (mV)
ninf
tau (ms)
g (S/cm2)
}
STATE {
n
ov (mV)
ovs (mV)
}
BREAKPOINT {
SOLVE states METHOD cnexp
n = 1/(1+(exp((vhalf-ov+ovs)/s1)))
g = gmax*n
i = gmax*n*(v-e)
}
INITIAL {
settables(v)
lci(cni)
n = 1/(1+(exp((vhalf-v+vs)/s1)))
ov = v
ovs = vs
}
DERIVATIVE states {
settables(v)
lci(cni)
ov' = (v-ov)/tau
ovs' = (vs-ovs)/taucn
:n' = (ninf - n)/tau
}
PROCEDURE settables(v (mV)) {
:LOCAL vhalf, s1, s2, taumax
:local variables take units of right hand side, see below
TABLE tau DEPEND vhalf, s1, s2, taumax
FROM -150 TO 50 WITH 750
: steady-state activation of Ih in mV
:vhalf = -77.8 (mV)
:s1 = 13.8 (mV)
ninf = 1/(1+(exp((vhalf-v)/s1)))
: steady-state Ih time constant
: slope in mV and time constant in ms
:s2 = 19.7 (mV)
:taumax = 1071.1 (ms)
:tau = 2*taumax/( exp((v-vhalf)/s2) + exp((vhalf-v)/s2) )
tau = 4*taumax/(1+exp((vhalf-v)/s2))*ninf+taumin
}
PROCEDURE lci(cni (mM)) { :callable from hoc
TABLE vs DEPEND lcp, kD, cnvm
FROM 0 TO 0.01 WITH 500
vs = cnvm-cnvm/(1+(cni/kD)^lcp)
}