Recording Ionic concentrations

The basics of how to develop, test, and use models.
Post Reply
edaneshi
Posts: 12
Joined: Wed Oct 09, 2013 5:10 pm

Recording Ionic concentrations

Post by edaneshi » Wed Aug 20, 2014 11:01 pm

Dear Ted,

I have a model of an axon with some membrane mechanisms (NMODL files of Fast K, Na and ...) added to that. In every NMODL file, I use "USEION x READ xi,xo,enx WRITE ix " to actually force NEURON keep track of ionic concentrations (xi,xo). These mechanisms are added to different sections of my axons. Using "MyVoltageSignal.record(&node[5].v(0.5))" and "MyCurrentSignal.record(&node[5].i_membrane(0.5))" I can record nodal voltage and membrane current at all times and save their values in a file to be read by Matlab. However, I need to monitor Ko and Ki in specific locations along my axon's model. I have tried several ways, but every time I got an error. Would you please help me figure out how to do that?

Also, may I know how I can set equilibrium potentials for each ion in hoc file please? I mean something like ek=-77 or ena=50. Does it update ionic concentrations? if yes, how?

Thank you so much.

Best regards,
Ehsan

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

Re: Recording Ionic concentrations

Post by ted » Mon Aug 25, 2014 11:39 am

edaneshi wrote:In every NMODL file, I use "USEION x READ xi,xo,enx WRITE ix " to actually force NEURON keep track of ionic concentrations (xi,xo).
That only tells NEURON what ionic flux corresponds to a particular current. Concentration won't change unless there is also an "ion accumulation mechanism" i.e. a mechanism that has a
USEION x READ ix WRITE [either xi, xo, or both]
statement. You'll find more about ion accumulation mechanisms in chapter 9 of The NEURON Book. Also look here for NMODL-specific tips: http://www.neuron.yale.edu/neuron/stati ... arted.html
Using "MyVoltageSignal.record(&node[5].v(0.5))" and "MyCurrentSignal.record(&node[5].i_membrane(0.5))" I can record nodal voltage and membrane current at all times and save their values in a file to be read by Matlab. However, I need to monitor Ko and Ki in specific locations along my axon's model.
ki and ko are the range variables of interest and the syntax is
vecname.record(&secname.varname(rangeval))
e.g. if kinode[3] is the name of the Vector that will hold the time course of ki in the middle of node[3]
kinode[3].record(&node[3].ki(0.5))
how I can set equilibrium potentials for each ion in hoc file please? I mean something like ek=-77 or ena=50. Does it update ionic concentrations?
By default, if a section has an accumulation mechanism for ionic species x, ex will be calculated from the concentrations xi and xo according to the Nernst equation. Otherwise ex is a parameter.

Given a particular model specification, NEURON uses a fairly smart decision process to decide whether to treat any particular concentration as a parameter or state variable, and what to do about equilibrium potentials. Read the Programmer's Reference documentation of ion_style to learn more about this, and how to override NEURON's automatic selections (e.g. in case you want ek to remain constant even though ki and/or ko is allowed to vary).

There are several ways to specify the initial concentration of an ion; most flexible is through the use of a PARAMETER and an assignment statement in the INITIAL block of the accumulation mechanism for ion x, e.g.

Code: Select all

NEURON {
  SUFFIX nacum
  USEION na READ ina WRITE nai
  RANGE nai0
}
PARAMETER {
  nai0 = 10 (milli/liter)
}
INITIAL {
  nai = nai0
}
BREAKPOINT {
  . . .
Or if your NMODL code doesn't use an INITIAL block to set the starting concentration, like so

Code: Select all

NEURON {
  SUFFIX nacum
  USEION na READ ina WRITE nai
}
BREAKPOINT {
  . . .
the initial concentration can be specified at the hoc level by assigning values to xi_ion and xo_ion. These are range variables so each compartment can have its own initial concentration. For more about initializing concentrations see chapter 8 of The NEURON Block.

If ex is calculated from the Nernst equation, you'll want to specify the correct value for celsius, unless you're OK with its default value of 6.3 deg C.

Post Reply