COMMENT
Described by Gruber et al. 2003, which they based on Bargas et al. 1994
Gruber, A.J., Solla, S.A., Surmeier, D.J., and Houk, J.C.
Modulation of striatal single units by expected reward:
a spiny neuron model displaying dopamine-induced bistability.
J. Neurophysiol. 90:1095-1114, 2003.
Bargas, J., Howe, A., Eberwine, J., and Surmeier, D.J.
Cellular and molecular characterization of Ca2+ currents in acutely isolated,
adult rat neostriatal neurons.
J. Neurosci. 14:6667-6686, 1994.
Unlike the formulation used by Gruber et al.,
which assumed instantaneous activation,
this implementation assumes a constant activation time constant
that is relatively fast compared to the time scale of the model
(100-1000 ms).
ENDCOMMENT
NEURON {
SUFFIX caL
USEION ca READ cai, cao WRITE ica
RANGE Pbar, P, i
GLOBAL minf, mtau
POINTER mu : hoc level DAsyn[i].msg--see dasyn.mod
}
UNITS {
(mA) = (milliamp)
(uA) = (microamp)
(nA) = (nanoamp)
(mV) = (millivolt)
(mS) = (millimho)
(molar) = (1/liter)
(mM) = (millimolar)
FARADAY = (faraday) (kilocoulombs)
R = (k-mole) (joule/degC)
}
PARAMETER {
vh = -35 (mV) : half activation
ve = 6.1 (mV) : slope
mtauconst = 0.1 (ms) : m activates much faster than 100-1000 ms
: Pbar value in Table 1 of Gruber et al.
: produces a current that is 10 times too small
: Pbar = 4.2 (nanometer/s) <0,1e9>
Pbar = 42 (nanometer/s) <0,1e9>
cao = 2 (mM)
cai = 10e-6 (mM)
}
ASSIGNED {
celsius (degC)
v (mV)
i (uA/cm2) : for consistency with their usage of uA/cm2
ica (mA/cm2)
minf (1)
mtau (ms)
P (nanometer/s)
zFRT (1/volt)
zVFRT (1)
ghk (coulomb/liter)
mu (1)
}
STATE {
m
}
INITIAL {
zFRT = (1000)*2*FARADAY/(R*(273+celsius))
rates(v)
m = minf
}
BREAKPOINT {
SOLVE states METHOD cnexp
P = mu*Pbar*m
zVFRT = (0.001)*zFRT*v
ghk = 2*FARADAY*(cai - cao*exp(-zVFRT))*gtrap(zVFRT)
i = (1e-4)*P*ghk
ica = (1e-3)*i
}
DERIVATIVE states {
rates(v)
m' = (minf-m)/mtau
}
: rates() computes rate and other constants at present v
: call once from hoc to initialize inf at resting v
PROCEDURE rates(v(mV)) {
UNITSOFF
: "m" gca activation
mtau = mtauconst
minf = 1/(1 + exp(-(v - vh)/ve))
}
UNITSON
: traps for 0 in denominator of ghk
FUNCTION gtrap(x) {
if (fabs(x) < 1e-6) {
gtrap = 1 + x/2
} else {
gtrap = x/(1 - exp(-x))
}
}