how to determine ion concentration

The basics of how to develop, test, and use models.
Post Reply
lyq1986

how to determine ion concentration

Post by lyq1986 »

Hi,

I am making a simulation which requires Gaba receptor. I find a model in the database. However, the NMODL calculates the current i without specifying the ion, which in this case, should be K+. I get confused about the mechanism the NEURON uses to coordinate ion, voltage, and current inside and outside the membrane. If the NMODEL does not specify the ion, (it occurs in many NMODELs), how can the calculation make any sense in terms of ion, and ion dependent process? A another question is about the NEURON interface. For example, in an experiment, I would like to put reagent X in media, which may diffuse to the vicinity of neuron and affect its activity. How to do this simulation in NEURON?

Thanks.

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

Re: how to determine ion concentration

Post by ted »

lyq1986 wrote:If the NMODEL does not specify the ion, (it occurs in many NMODELs), how can the calculation make any sense in terms of ion, and ion dependent process?
Remember that a model is a simplified representation of reality. Many models are based on the simplifying assumption that ionic concentrations and equilibrium constants remain constant. The NMODL code for such a model does could use a numerical constant instead of a USEION statement and variables such as ena, ki, and ko.
A another question is about the NEURON interface. For example, in an experiment, I would like to put reagent X in media, which may diffuse to the vicinity of neuron and affect its activity. How to do this simulation in NEURON?
There are many ways to do this. Which one is "best" depends on what you really want to do.

Example 1: "I don't care about all the details of what happens when I add X to the media. I just want an ionic conductance to vary with time."
Approach 1: If the variable is supposed to change smoothly with time, precalculate the time course of the conductance, then save the (g, t) values to a pair of Vectors, and use the Vector class's play() method to drive your model's ionic conductance during a simulation.
Variant of approach 1: Write a mod file that specifies the time course of the conductance in its BREAKPOINT block.
Approach 2: If the variable is supposed to change abruptly, use the CVode class's event() method to force the variable to jump from one value to another.

Both of these approaches are discussed elsewhere in this Forum, e.g. in the "Hot tips" area under the topic
How to change parameters during a simulation

Example 2: "The mechanism by which X spreads is important--there may be buffers, pumps, enzymes that break X into inactive components, and these may all be distributed in space. And it's also important to represent the details of interaction between X and its receptor."
This is tougher. You'll need a new mechanism written in NMODL that specifies the geometry in which the diffusion and reactions occur. See chapter 9 of The NEURON Book for examples. Also, if you're using MSWin, look in c:\nrn\examples\nrniv\nmodl, especially the ca*mod and na*mod files.
You'll also need a mechanism that represents the interaction between X and its receptor. This may be written in NMODL, or created with the Channel Builder.

Let me know if either of these seems like what you intend, and if you need further suggestions.
lyq1986

Re: how to determine ion concentration

Post by lyq1986 »

Thanks Ted.
However, I still get confused about the ion calculation mechanism. Where can I find thoese variables that NEURON has a built-in mechanism to deal with? For example, in HH model, ena is required, but it is not calculated in HH model, but somewhere else. Similarly, there is ek. I am wondering if there are other variables associated with other ions, such as Ca (cai, cao, eca, ica), Cl (cli, clo, ecl, icl), Co, etc. that can be automatically treated in NEURON and where to find a list of those variables.

Thanks again.
ted
Site Admin
Posts: 5810
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: how to determine ion concentration

Post by ted »

Ionic concentrations and equilibrium potentials do not exist by default. They exist only if a model contains a mechanism that causes them to be created. For mechanisms specified with NMODL, this is done with the USEION statement; for mechanisms specified with the Channel Builder, this is done by using "Properties / Selective for Ion..." to specify the name and charge of the permeant ion.

For example, the properties of the hh mechanism are specified by an NMODL file that contains
USEION na READ ...whatever it reads... WRITE ...whatever it writes...
and
USEION k READ ...whatever it reads... WRITE ...whatever it writes...
(see nrn\src\nrnoc\hh.mod). If you execute the following statements

Code: Select all

create soma
access soma
insert hh
psection()
then NEURON will print

Code: Select all

soma { nseg=1  L=100  Ra=35.4
        /*location 0 attached to cell 0*/
        /* First segment only */
        insert morphology { diam=500}
        insert capacitance { cm=1}
        insert hh { gnabar_hh=0.12 gkbar_hh=0.036 gl_hh=0.0003 el_hh=-54.3}
        insert na_ion { ena=50}
        insert k_ion { ek=-77}
}
Notice that NEURON automatically creates mechanisms called na_ion and k_ion. These mechanisms manage the relationship between ionic currents and concentrations according to rules (or "styles") which NEURON will choose automatically, or which you may specify by using hoc's ion_style command (see
http://www.neuron.yale.edu/neuron/stati ... #ion_style
for a full discussion of ion_style).

NEURON does a pretty good job of choosing the correct rule for managing concentrations and equilibrium potentials. For example, if a section contains a mechanism that READs ex but there is no mechanism that WRITEs xi or xo (the intra- and extracellular concentrations of x), then ex will remain constant during a simulation, so ex will be treated as a PARAMETER. This is what happens to ena and ek if you INSERT hh into a section that does not contain a mechanism for intra- or extracellular accumulation of sodium or potassium.

If a section contains an "ion accumulation mechanism" for xi (a mechanism that WRITEs xi), NEURON will know that xi must be a STATE and will calculate it by integrating all of the ix currents in this section that are produced by mechanisms that contain WRITE ix statements. It will also know that e_x must be an ASSIGNED variable that should be computed from xi and xo (the intra- and extracellular concentrations of x) at every step (every call to fadvance()) during a simulation.

Sodium, potassium, and calcium are "special" in that NEURON "knows" default values for their concentrations. Using the simple model described above, type
print nai, nao, ki, ko
and NEURON will print
10 140 54.4 2.5
(values in mM).
These are more or less appropriate for mammals (as I recall, early versions of NEURON assumed concentrations appropriate for squid). But if you try
print cai, cao
you'll get the error message

Code: Select all

nrniv: undefined variable cai
 near line 3
 print cai, cao
               ^
because the model does not have a mechanism with a USEION ca statement.

Chapters 8 and 9 of The NEURON Book contain fairly extensive discussions of how NEURON deals with ionic concentrations, plus examples of ion accumulation mechanisms and strategies for routine and custom initialization of ionic concentrations.
Post Reply