Understanding models: discovering the meaning of a variable

A collection of noteworthy items selected by our moderators from discussions about making and using models with NEURON.

Moderators: ted, wwlytton, tom_morse

Post Reply
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Understanding models: discovering the meaning of a variable

Post by ted »

A NEURON user asked
In the NEURON demo model of neuromuscular junction presynaptic terminal, these variables appear in one of the graphs: cai*1e4, ca_cadifpmp[2]*1e4, ca_cadifpmp[5]*1e4.
Exactly what do these variables mean?
Here's how to find out for yourself.

When NEURON starts, it prints messages in a terminal window. Some of these messages contain useful information. For example, the first message tells the version of NEURON, e.g.
NEURON -- VERSION 6.2.1024 (2142) 2008-06-13

If NEURON loads compiled mechanisms, another message will be printed that lists the names of the files that specify the properties of those mechanisms. For example, under Linux, neurondemo makes NEURON print this:

Code: Select all

loading membrane mechanisms from /usr/local/nrn/share/nrn/demo/release/i686/.libs/libnrnmech.so
Additional mechanisms from files
 cabpump.mod cachan1.mod camchan.mod capump.mod invlfire.mod khhchan.mod mcna.mod nacaex.mod nachan.mod release.mod
So we know that the source files are probably in /usr/local/nrn/share/nrn/demo/release. Under MSWin the files have the same names, but they are in c:\nrnxx\demo\release.

The variables we are interested in are cai, ca_cadifpmp[2], and ca_cadifpmp[4]. The square brackets [ ] signify that ca_cadifpmp is actually the name of an array. The underscore character _ means that ca_cadifpmp belongs to a density mechanism (also known as a distributed mechanism), and that we must look for a mod file whose NEURON block contains the statement
SUFFIX cadifpmp

Under Linux this is easy--
cd /usr/local/nrn/share/nrn/demo/release
grep cadifpmp *mod
and we discover that the file is cabpump.mod. MSWin users who are familiar with UNIX/Linux may do something similar by opening the rxvt shell and using the cygwin cd and grep that are part of the NEURON installation. Others will just have to examine each mod file in c:\nrnxx\demo\release individually, or run a native MSWin program that searches these files for cadifpmp.

Opening cabpump.mod in a text editor, we see that the NEURON block contains
USEION ca READ cao, ica WRITE cai, ica
which means that this mechanism contains the equations that govern cai, the intracellular concentration of calcium.
The ASSIGNED block tells us that cai is in units of mM, and the UNITS block tells us that mM means millimolar.

The STATE block declares
ca[NANN] (mM) <1e-6> : ca[0] is equivalent to cai
The ca[NANN] tells us that this mechanism probably uses a set of compartments to represent intracellular calcium accumulation, and the number of compartments is specified by NANN. The (mM) means that the concentration of calcium in these compartments will be in millimolar units.

PROCEDURE coord contains these comments, which confirm what we have guessed about this mechanism--
: cylindrical coordinate system with constant annuli thickness to
: center of cell. Note however that the first annulus is half thickness
: so that the concentration is second order correct spatially at
: the membrane or exact edge of the cell.

So this is a model or calcium accumulation in which radial diffusion is represented. By the way, a similar mechanism is described in chapter 9 of The NEURON Book.

Now we know enough to decipher the meaning of cai*1e4, ca_cadifpmp[2]*1e4, ca_cadifpmp[5]*1e4.

These are the concentrations of intracellular calcium adjacent to the cell membrane, and at the middles of the 3rd and 6th annuli, all multiplied by the scale factor 10000 so that the graph's y axis looks nice. Without this scaling, 1 unit on the y axis would correspond to 1 mM. With the scaling, 1 unit corresponds to 0.1 uM. So 0.5 unit means 0.05 uM.

And now you have the answer to the original question, plus a strategy for how to discover the answers to similar questions if they arise in the future (which they probably will).
Post Reply