: M conductance
NEURON {
SUFFIX KM
USEION k WRITE ik
RANGE gbar, minf, tau1, tau2, i, g, m1, m2, ginf
RANGE tadjtau, Vhalf, Vshift, erev, k, v0erev, kV, gamma
RANGE Dtaumult1, Dtaumult2, tau0mult, taudiv
}
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
(pS) = (picosiemens)
(um) = (micron)
}
PARAMETER {
erev = -95 (mV)
gbar = 10 (pS/um2)
k = 9 (mV)
Vhalf = -50 (mV) :for minf(V)
Vshift = 0 (mV) :for g(V) and minf(V)
v0erev = 65 (mV) :50-80
kV = 40 (mV)
gamma = 0.5 :0.5,1
temptau = 22 (degC) :tau reference temperature
q10tau = 5
taudiv = 1
Dtaumult1 = 1
Dtaumult2 = 1
tau0mult = 1
vmin = -100 (mV)
vmax = 100 (mV)
ten = 10 (degC)
temp0 = 273 (degC)
FoverR = 11.6045039552 (degC/mV)
}
ASSIGNED {
v (mV)
celsius (degC)
ginf (pS/um2)
Vhalf1 (mV)
Dtau1 (ms)
z1
tau01 (ms)
Vhalf2 (mV)
Dtau2 (ms)
z2
tau02 (ms)
alpha1
beta1
alpha2
beta2
i (mA/cm2)
ik (mA/cm2)
g (pS/um2)
minf
v0 (mV)
tau1 (ms)
tau2 (ms)
tadjtau
frt (/mV)
}
STATE { m1 m2 }
INITIAL {
rates(v)
m1 = minf
m2 = minf
}
BREAKPOINT {
SOLVE states METHOD cnexp
g = gbar*gsat(v)*(m1^2)*m2
ik = (1e-4)*g*(v - erev)
i = ik
}
DERIVATIVE states {
rates(v)
m1' = (minf - m1)/tau1
m2' = (minf - m2)/tau2
}
PROCEDURE rates(v (mV)) {
TABLE minf, tau1, tau2, ginf
DEPEND celsius, gamma, k, Vhalf, Vshift, taudiv, Dtaumult1, Dtaumult2, tau0mult
FROM vmin TO vmax WITH 199
IF (gamma == 0.5) {
z1 = 2.8
Vhalf1 = -49.8+Vshift :(mV) shifted - 20 mV (when Vshift = 0)
tau01 = 20.7*tau0mult :(ms)
Dtau1 = 176.1*Dtaumult1 :(ms)
z2 = 8.9
Vhalf2 = -55.5+Vshift :(mV) shifted - 20 mV
tau02 = 149*tau0mult :(ms)
Dtau2 = 1473*Dtaumult2 :(ms)
}
IF (gamma == 1) {
z1 = 3.6
Vhalf1 = -25.3+Vshift :(mV) shifted - 20 mV
tau01 = 29.2*tau0mult :(ms)
Dtau1 = 74.6*Dtaumult1 :(ms)
z2 = 9.8
Vhalf2 = -44.7+Vshift :(mV) shifted - 20 mV
tau02 = 155*tau0mult :(ms)
Dtau2 = 549*Dtaumult2 :(ms)
}
tadjtau = q10tau^((celsius - temptau)/ten)
frt = FoverR/(temp0 + celsius)
alpha1 = exp(z1*gamma*frt*(v - Vhalf1))
beta1 = exp(-z1*(1-gamma)*frt*(v - Vhalf1))
tau1 = (Dtau1/(alpha1 + beta1) + tau01)/(tadjtau*taudiv)
alpha2 = exp(z2*gamma*frt*(v - Vhalf2))
beta2 = exp(-z2*(1-gamma)*frt*(v - Vhalf2))
tau2 = (Dtau2/(alpha2 + beta2) + tau02)/(tadjtau*taudiv)
minf = 1/(1 + exp(-(v - Vhalf - Vshift)/k))
ginf = gbar*minf^3
}
FUNCTION gsat (v (mV)) {
gsat = 1
v0 = v0erev + erev
IF (v > v0) {
gsat = 1+(v0-v+kV*(1-exp(-(v-v0)/kV)))/(v-erev)
}
}