TITLE K/Cl cotransporter KCCmerge
NEURON {
SUFFIX kccmerge
USEION k READ ek WRITE ik
USEION na READ nai, ena WRITE ina
USEION cl READ ecl WRITE icl VALENCE -1
RANGE ik, icl, ina, gkcc2, gplus
}
UNITS {
(mV) = (millivolt)
(molar) = (1/liter)
(mM) = (millimolar)
(um) = (micron)
(mA) = (milliamp)
FARADAY = (faraday) (coulomb)
R = (k-mole) (joule/degC)
}
PARAMETER {
: g = 0.00181 (mA/cm2) : based on 7e-5 (A/(V*cm2)) at 300K
gkcc2 = 0.0003 (mM/ms)
gplus = 0.1e-3 (mM/ms)
surf = 615.7650056818251 (um2) : surface area of original model
voli = 1436.8 (um3) : volume of original model
: gnkcc1 = a*gkcc2 + b*gplus/scale
: sets the initial concentrations to the values used by rxd
cli0 = 6.6 (mM)
clo0 = 119 (mM)
ki0 = 125 (mM)
ko0 = 2.9 (mM)
nai0 = 10 (mM)
nao0 = 147 (m)
}
ASSIGNED {
ik (mA/cm2)
icl (mA/cm2)
ina (mA/cm2)
ena (mV)
cli (mM)
nai (mM)
a
b (1/mV)
ek (mV)
ecl (mV)
celsius (degC)
diam (um)
}
INITIAL {
LOCAL scale, ena, ek, ecl, E1, E2
scale = 1e3*(R*(celsius+273.15))/FARADAY
ek = scale*log(ki0/ko0)
ena = scale*log(nai0/nao0)
ecl = scale*log(clo0/cli0)
E1 = ek + ena - 2.0*ecl
E2 = ek - ecl
a = -E2/(2.0 * E1)
b = -1.0/(2.0 * E1)
}
BREAKPOINT {
LOCAL scale, curkcc2, curnkcc1
scale = 1e-7*(FARADAY * voli/surf) * (FARADAY/(R * (celsius+273.15)))
curkcc2 = gkcc2 * scale * (ek - ecl)
curnkcc1 = (a * gkcc2 + gplus * b/scale) * scale * (ek + ena - 2.0* ecl)
ik = -(curkcc2 + curnkcc1)
icl = (curkcc2 + 2.0 * curnkcc1)
ina = -(curnkcc1)
}