COMMENT
This file, a.mod, implements the transient potassium current gA from
Quadroni and Knopfel 1994 table 1
ENDCOMMENT
NEURON {
SUFFIX a
NONSPECIFIC_CURRENT i
RANGE i, Erev, gbar, a, b
GLOBAL taua_min, taub_min
}
UNITS {
(S) = (siemens)
(mV) = (millivolt)
(mA) = (milliamp)
}
PARAMETER {
gbar = 1829e-6 (S/cm2) < 0, 1e9 >
Erev = -82 (mV)
taua_min = 1.0 (ms)
taub_min = 24.0 (ms)
}
ASSIGNED {
i (mA/cm2)
v (mV)
g (S/cm2)
ainf
binf
tau_a (ms)
tau_b (ms)
}
STATE { a b }
BREAKPOINT {
SOLVE states METHOD cnexp
g = gbar * a^3 * b
i = g * (v - Erev)
}
INITIAL {
: assume that v has been constant for a long time
a = alphaa(v)/(alphaa(v) + betaa(v))
b = alphab(v)/(alphab(v) + betab(v))
}
DERIVATIVE states {
rates(v)
a' = (ainf - a)/tau_a
b' = (binf - b)/tau_b
}
FUNCTION alphaa(Vm (mV)) (/ms) {
UNITSOFF
alphaa = 0.2 * exp( 0.14 * (Vm + 65.0))
UNITSON
}
FUNCTION betaa(Vm (mV)) (/ms) {
UNITSOFF
betaa = 0.2 * exp( -0.035 * (Vm + 65.0))
UNITSON
}
FUNCTION taua(Vm (mV)) (/ms) {
UNITSOFF
taua = 1.0 / (alphaa(Vm) + betaa(Vm))
if (taua < taua_min) {
taua = taua_min
}
UNITSON
}
FUNCTION alphab(Vm (mV)) (/ms) {
UNITSOFF
alphab = 0.01 * exp( -0.11 * (Vm + 71.0))
UNITSON
}
FUNCTION betab(Vm (mV)) (/ms) {
UNITSOFF
betab = 0.01 * exp( 0.164 * (Vm + 71.0))
UNITSON
}
FUNCTION taub(Vm (mV)) (/ms) {
UNITSOFF
taub = 1.0 / (alphab(Vm) + betab(Vm))
if (taub < taub_min) {
taub = taub_min
}
UNITSON
}
PROCEDURE rates(Vm(mV)) {
tau_a = taua(Vm)
ainf = alphaa(Vm)/(alphaa(Vm) + betaa(Vm))
tau_b = taub(Vm)
binf = alphab(Vm)/(alphab(Vm) + betab(Vm))
}