COMMENT
This file, hva.mod, implements the high voltage activated calcium current gCa(HVA)
Quadroni and Knopfel 1994 table 1
ENDCOMMENT
NEURON {
SUFFIX hva
: NONSPECIFIC_CURRENT i
USEION ca WRITE ica
RANGE i, Erev, gbar
}
UNITS {
(S) = (siemens)
(mV) = (millivolt)
(mA) = (milliamp)
}
PARAMETER {
gbar = 1110e-6 (S/cm2) < 0, 1e9 >
Erev = 80 (mV)
}
ASSIGNED {
ica (mA/cm2)
i (mA/cm2)
v (mV)
g (S/cm2)
sinf
rinf
tau_s (ms)
tau_r (ms)
}
STATE { s r }
BREAKPOINT {
SOLVE states METHOD cnexp
g = gbar * s*s * r
ica = g * (v - Erev)
i = ica : supplied for diagnostic graphing
}
INITIAL {
: assume that v has been constant for a long time
s = alphas(v)/(alphas(v) + betas(v))
r = alphar(v)/(alphar(v) + betar(v))
}
DERIVATIVE states {
rates(v)
s' = (sinf - s)/tau_s
r' = (rinf - r)/tau_r
}
LOCAL alpha_r, alpha_s : stores value to save a couple of function calls
FUNCTION alphas(Vm (mV)) (/ms) {
UNITSOFF
alphas = 2.0 /(1 + exp(-(Vm + 2.0)* 0.054))
UNITSON
}
FUNCTION betas(Vm (mV)) (/ms) {
UNITSOFF
betas = -0.08 * (Vm + 15.9) / (1 - exp( (Vm + 15.9)*0.2 ))
UNITSON
}
FUNCTION taus(Vm (mV)) (/ms) {
UNITSOFF
taus = 1.0 / (alpha_s + betas(Vm)) : taus only called from rates
UNITSON
}
FUNCTION alphar(Vm (mV)) (/ms) {
UNITSOFF
alphar = 0.01 * exp( -(Vm + 60)/20 )
if (alphar > 0.01) {
alphar = 0.01
}
UNITSON
}
FUNCTION betar(Vm (mV)) (/ms) {
UNITSOFF
betar = 0.01 - alphar(Vm)
UNITSON
}
FUNCTION taur(Vm (mV)) (/ms) {
UNITSOFF
taur = 1.0 / (alpha_r + betar(Vm)) : taur only called from rates
UNITSON
}
::::: special warning - if any of the above rate functions are desired to be
::::: called from hoc, the rates function below needs to be called first each
::::: time to set the alpha_r, and alpha_s variables.
PROCEDURE rates(Vm (mV)) {
alpha_s = alphas(Vm)
tau_s = taus(Vm)
sinf = alphas(Vm) * tau_s
alpha_r = alphar(Vm)
tau_r = taur(Vm)
rinf = alpha_r * tau_r
}