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)?
tracking ion concentrations
-
- Site Admin
- Posts: 6394
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Re: tracking ion concentrations
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.dzocchi wrote:How can I get lateral diffusion of ions from one compartment to another?
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.Does inserting passive properties (pas) allow tracking of both internal and external ion concentrations (K, Na)?
Re: tracking ion concentrations
ok, but will this work for ions in the Frankenhausser Space?
Re: tracking ion concentrations
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?
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?
-
- Site Admin
- Posts: 6394
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Re: tracking ion concentrations
Sure, as long as the accumulation mechanism that implements the Frankenhaeuser-Hodgkin space uses properly written NMODL code.dzocchi wrote:ok, but will this work for ions in the Frankenhausser Space?
-
- Site Admin
- Posts: 6394
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Re: tracking ion concentrations
It means you made a mistake, but I can't tell you what the mistake is without seeing the code.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?
Re: tracking ion concentrations
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...
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...
-
- Site Admin
- Posts: 6394
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Re: tracking ion concentrations
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."
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
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.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 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