tracking ion concentrations

Anything that doesn't fit elsewhere.
Post Reply
dzocchi

tracking ion concentrations

Post by dzocchi » Tue Jan 17, 2012 6:18 pm

I have 2 questions:

1. How can I get lateral diffusion of ions from one compartment to another?

2. Does inserting passive properties (pas) allow tracking of both internal and external ion concentrations (K, Na)?

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

Re: tracking ion concentrations

Post by ted » Wed Jan 18, 2012 1:02 am

dzocchi wrote:How can I get lateral diffusion of ions from one compartment to another?
The section(s) in which you want to have longitudinal diffusion of a particular ion must have an ion accumulation mechanism for that ion (a density mechanism with a USEION statement that WRITEs the concentration of that ion), and a KINETIC block that contains an appropriate LONGITUDINAL_DIFFUSION statement. For specific examples I refer you to the calcium accumulation mechanisms described in chapter 9 of The NEURON Book, and to the files cadif.mod, cadifusl/mod, and nadifl.mod in examples/nrniv/nmodl (you'll find this in the directory tree generated by expanding the gzipped tar file of source code for NEURON, or in NEURON's installation tree under MSWin). ModelDB may contain other examples.
Does inserting passive properties (pas) allow tracking of both internal and external ion concentrations (K, Na)?
Nope. pas doesn't have anything to do with that. You need accumulation mechanisms for these ions, specifically mecanisms with USEION statements that WRITE the concentrations in question.

dzocchi

Re: tracking ion concentrations

Post by dzocchi » Thu Jan 19, 2012 3:30 pm

ok, but will this work for ions in the Frankenhausser Space?

dzocchi

Re: tracking ion concentrations

Post by dzocchi » Thu Jan 19, 2012 5:44 pm

also,
I am trying to modify the caaccum.mod file for extracellular, longitudinal diffusion, and in the process I get the following error message :

Merging kinetic blocks not implemented

I am wondering what this could mean?

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

Re: tracking ion concentrations

Post by ted » Thu Jan 19, 2012 10:48 pm

dzocchi wrote:ok, but will this work for ions in the Frankenhausser Space?
Sure, as long as the accumulation mechanism that implements the Frankenhaeuser-Hodgkin space uses properly written NMODL code.

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

Re: tracking ion concentrations

Post by ted » Thu Jan 19, 2012 10:49 pm

dzocchi wrote:I am trying to modify the caaccum.mod file for extracellular, longitudinal diffusion, and in the process I get the following error message :
Merging kinetic blocks not implemented
I am wondering what this could mean?
It means you made a mistake, but I can't tell you what the mistake is without seeing the code.

dzocchi

Re: tracking ion concentrations

Post by dzocchi » Sat Jan 21, 2012 10:52 pm

ok, thanks.

I was also wondering, within the built in code for ion accumulation and diffusion (cadifus) what the difference is between putting a parameter in the assigned section as opposed to say the parameter or state sections?

Sorry if my questions are a bit obvious, I am new to all this...

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

Re: tracking ion concentrations

Post by ted » Sat Jan 21, 2012 11:32 pm

NEURON doesn't have any "built-in code" for ion accumulation or diffusion. All ion accumulation and diffusion mechanisms must be added by compling NMODL source code. You probably meant to say "example code provided with NEURON."
I was also wondering, within the built in code for ion accumulation and diffusion (cadifus) what the difference is between putting a parameter in the assigned section as opposed to say the parameter or state sections?
A name defined in the STATE block is a variable whose value will be calculated, according to the statements in the BREAKPOINT block, at each new time step. STATEs are usually, but not always, "state variables" in the sense used by physicists i.e. computed by integrating a differential equation. But they may also be computed algebraically, e.g. by solving a matrix equation.

A name defined in the PARAMETER block can be assigned a value in that block, and that value will be used in the simulation. PARAMETERs automatically appear in the menus of GUI tools such as the PointProcessManager and CellBuilder. Assignment statements inside a PARAMETER block are often used so that a parameter will have a nonzero default value. Any parameter that is not assigned a value in the PARAMETER block or in an INITIAL block will be 0 by default.

A name defined in the ASSIGNED block is calculated in the course of executing the code specified in an NMODL file, but it is not a STATE. ASSIGNEDs are usually "intermediate" variables. Assignment statements inside an ASSIGNED block have no effect and are ignored.

I prefer to declare v and ionic equilibrium potentials e.g. ena, ek, to be ASSIGNED variables because their values are calculated and assigned by executing code that lies outside the NMODL file.

NMODL's syntax is rather obscure. There is some documentation in the Programmer's Reference
http://www.neuron.yale.edu/neuron/stati ... html#NMODL
but you will probably also want to read chapter 9 of The NEURON Book. If you don't have the book, this article will help:
Hines, M.L. and Carnevale, N.T. Expanding NEURON's repertoire of mechanisms with NMODL. Neural Computation 12:995-1007, 2000.
You'll want to get the "enhanced preprint" from http://www.neuron.yale.edu/neuron/nrnpubs

Post Reply