TITLE HH channel
: Mel-modified Hodgkin - Huxley conductances (after Ojvind et al.)
: Re-modified by Ojvind to exactly simulate the old version. 92-1-16
: (db) 22.12.97 modifications for CVode
NEURON {
SUFFIX iapnew
USEION na READ ena WRITE ina
USEION k READ ek WRITE ik
GLOBAL inf
RANGE gnabar, gkbar, ena, ek, ik
}
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
}
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
PARAMETER {
v (mV)
celsius = 37 (degC)
gnabar=.20 (mho/cm2)
gkbar=.12 (mho/cm2)
ena = 40 (mV)
ek = -85 (mV)
naactvha = 40 (mV)
naiactvha = 45 (mV)
kactvha = 40 (mV)
naactslope = -3 (mV)
nainactslope = 3 (mV)
kactslope = -3 (mV)
Nainactivationtau = 0.5
}
STATE {
m h n
}
ASSIGNED {
ina (mA/cm2)
ik (mA/cm2)
inf[3]
tau[3]
}
BREAKPOINT {
SOLVE states METHOD cnexp
ina = gnabar*m*m*h*(v - ena)
ik = gkbar*n*n*(v - ek)
}
DERIVATIVE states { : exact when v held constant
mhn(v*1(/mV))
m' = (inf[0] - m)/tau[0]
h' = (inf[1] - h)/tau[1]
n' = (inf[2] - n)/tau[2]
}
FUNCTION varss(v, i) {
if (i==0) {
varss = 1 / (1 + exp((v + naactvha)/(naactslope))) :Na activation
}
else if (i==1) {
varss = 1 / (1 + exp((v + naiactvha)/(nainactslope))) :Na inactivation
}
else {
:varss = 0
varss = 1 / (1 + exp((v + kactvha)/(kactslope))) :K activation
}
}
FUNCTION vartau(i) {
if (i==0) {
vartau = 0.05 :Na activation tau
}
else if (i==1) {
vartau = Nainactivationtau :Na inactivation tau
}
else {
vartau = 2 :K activation
}
}
PROCEDURE mhn(v) {LOCAL a, b :rest = -70
TABLE inf,tau
DEPEND celsius, dt, kactslope, kactvha, nainactslope,naiactvha,naactslope, naactvha, Nainactivationtau
FROM -100 TO 100 WITH 2000 : .1 mV steps
FROM i=0 TO 2 {
tau[i] = vartau(i)
inf[i] = varss(v,i)
}
}
UNITSON