COMMENT
Chloride accumulation and diffusion with chloride pump (Lineweaver-Burke equation) and chloride leak
Diffusion model is modified from Ca diffusion model in Hines & Carnevale:
Expanding NEURON with NMODL, Neural Computation 12: 839-851, 2000 (Example 8)
ENDCOMMENT
NEURON {
SUFFIX cldifus2
USEION cl READ icl WRITE cli VALENCE -1
USEION hco3 READ hco3i, hco3o VALENCE -1
GLOBAL vrat :vrat must be GLOBAL
RANGE cli0, vmax, leak, Kd
}
DEFINE Nannuli 4
UNITS {
(molar) = (1/liter)
(mM) = (millimolar)
(um) = (micron)
(mA) = (milliamp)
FARADAY = (faraday) (10000 coulomb)
PI = (pi) (1)
}
PARAMETER {
DCl = 2 (um2/ms) : Kuner & Augustine, Neuron 27: 447
leak = .000588235 (mM/ms) :0.3 (mM/sec)
vmax = .005 (mM/ms) :5 (mM/sec)
Kd = 15 (mM)
cli0 = 2 (mM)
: Requires explicit use in INITIAL block in order
: to take precedence over the global cli0_cl_ion
: Do not forget to initialize in hoc if different
: from this default.
}
ASSIGNED {
diam (um)
icl (mA/cm2)
cli (mM)
hco3i (mM)
hco3o (mM)
vrat[Nannuli] : numeric value of vrat[i] equals the volume
: of annulus i of a 1um diameter cylinder
: multiply by diam^2 to get volume per um length
}
STATE {
: cl[0] is equivalent to cli
: cl[] are very small, so specify absolute tolerance
cl[Nannuli] (mM) <1e-10>
}
BREAKPOINT { SOLVE state METHOD sparse}
LOCAL factors_done
INITIAL {
if (factors_done == 0) { : flag becomes 1 in the first segment
factors_done = 1 : all subsequent segments will have
factors() : vrat = 0 unless vrat is GLOBAL
}
cli = cli0
FROM i=0 TO Nannuli-1 {
cl[i] = cli
}
}
LOCAL frat[Nannuli] : scales the rate constants for model geometry
PROCEDURE factors() {
LOCAL r, dr2
r = 1/2 : starts at edge (half diam), diam = 1, length = 1
dr2 = r/(Nannuli-1)/2 : full thickness of outermost annulus,
: half thickness of all other annuli
vrat[0] = 0
frat[0] = 2*r : = diam
FROM i=0 TO Nannuli-2 {
vrat[i] = vrat[i] + PI*(r-dr2/2)*2*dr2 : interior half
r = r - dr2
frat[i+1] = 2*PI*r/(2*dr2) : outer radius of annulus Ai+1/delta_r=2PI*r*1/delta_r
: div by distance between centers
r = r - dr2
vrat[i+1] = PI*(r+dr2/2)*2*dr2 : outer half of annulus
}
}
KINETIC state {
COMPARTMENT i, diam*diam*vrat[i] {cl}
LONGITUDINAL_DIFFUSION i, DCl*diam*diam*vrat[i] {cl}
~ cl[0] << ((icl*PI*diam/FARADAY) + (leak - vmax*(cl[0]/(Kd + cl[0])))*diam*diam*vrat[0]) : icl is Cl- influx
FROM i=0 TO Nannuli-2 {
~ cl[i] <-> cl[i+1] (DCl*frat[i+1], DCl*frat[i+1])
}
cli = cl[0]
}