Hi, Happy New Year!
I am working on the sodium kinetic in a soma model. What I did was insert the leak, sodium pump, and sodium diffusion mechanisms into a model soma as cited from Canavier (1999):
http://senselab.med.yale.edu/modeldb/sh ... 9\leak.mod
However, when I start playing with the Nao in the model, I found the NaO and NaO_leak are different values. Is that mean one is global and one is not? Only when I change the nao_leak, the firing frequency will change. Is that mean only nao_leak stands for the extracellular sodium concentration?
Thank you for your help!
Best wishes for the new 2008!
Xianghong
nao and nao_leak
-
ted
- Site Admin
- Posts: 6398
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Re: nao and nao_leak
The leak.mod that you cite has no Nao, NaO, or NaO_leak. However, itsxyang wrote:when I start playing with the Nao in the model, I found the NaO and NaO_leak are different values.
PARAMETER block does declare a variable called nao, which will be known
to hoc as nao_leak, and is completely independent of the hoc variable nao.
So what's going on?
Actually, as with many mod files, this one's PARAMETER block contains
several declarations of the form variable_name = numerical_value that
are bound to confuse users. In this particular case, they are
eca = 20 (mV)
ecl = -65 (mV)
ek = -100 (mV)
nao = 145 (mM)
celsius = 35 (degC)
Let's start with the last one:
celsius = 35 (degC)
Compile this mod file with mknrndll under MSWin, and examine the
messages generated by mknrndll, and you'll see this:
Warning: Default 35 of PARAMETER celsius will be ignored and set by NEURON.
"Why?" you ask. The answer: celsius does not "belong" to any particular
mechanism. To change the value of celsius, you must use a hoc assignment
statement. NMODL assignment statements will have no effect on its
value. From the perspective of the code in a mod file, celsius is not really
a "parameter" in the same sense that sodium channel density is a
parameter of the hh mechanism. The value of celsius in the mod file
is "assigned" from hoc. That's why I prefer to declare celsius in the
ASSIGNED block, not in the PARAMETER block.
What about nao? This mechanism's NEURON block contains the statement
USEION na READ nai,ena WRITE ina
which has the following consequences:
1. this mechanism doesn't get the value of nao from hoc, so if it contains
any statements that use nao, it must declare nao as either an ASSIGNED
or a PARAMETER.
2. this mechanism doesn't WRITE nao, so its nao variable pertains to this
mechanism only--nothing that is done to its nao variable will have any
direct effect on any variable used by any other mechanism.
What about these?
eca = 20 (mV)
ecl = -65 (mV)
ek = -100 (mV)
The corresponding USEION statements in the NEURON are
USEION ca WRITE ica
USEION k WRITE ik
USEION cl WRITE icl VALENCE 1
so (1) it ignores the "actual" values of eca, ecl, and ek, and (2) none of
these three locally-declared "ex" values will have any effect on the
similarly named hoc variables.