TITLE Ih channel for LGMD
: this channel is identical to that implemented in Matlab code
: based on Richard's current and voltage clamp data (Sept 13)
: this is a second version were the state variables are ninf and tau
: instead of nalpha and nbeta to allow for inspection of these variables
: during simulations
: Modified on 04/08/14 to correct the apparent mix-up between tau and tau_max
: tau_max was RANGE and tau GLOBAL when it should be the opposite.
UNITS {
(mV) = (millivolt)
(mA) = (milliamp)
(S) = (siemens)
}
: 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 h
NONSPECIFIC_CURRENT i
: 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 {
gmax= 0.001 (S/cm2)
e = -35 (mV)
: note the following is only in the case we define these parameters as accessible to
: NEURON. Otherwise it is sufficient to initialize them in the procedure settables
vhalf = -78 (mV)
s1 = -13 (mV)
s2 = 14 (mV)
taumax = 1350 (ms)
taumin = 10 (ms)
}
ASSIGNED {
v (mV)
i (mA/cm2)
ninf
tau (ms)
g (S/cm2)
}
STATE {
n
}
BREAKPOINT {
SOLVE states METHOD cnexp
g = gmax*n
i = gmax*n*(v-e)
}
: calls the function settables below, then
: set the steady state value of Ih activation
INITIAL {
settables(v)
n = ninf
}
DERIVATIVE states {
settables(v)
n' = (ninf - n)/tau
}
PROCEDURE settables(v (mV)) {
:LOCAL vhalf, s1, s2, taumax
:local variables take units of right hand side, see below
TABLE ninf, 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
}