_ion_cai ???

NMODL and the Channel Builder.
Post Reply
Bill Connelly
Posts: 86
Joined: Thu May 22, 2008 11:54 pm
Location: Australian National University

_ion_cai ???

Post by Bill Connelly »

So I'm aware that in a VERBATIM block, _ion_X is used to access the concentration of ion X from neuron (right?). However, I've seen quite a few models that have partway through the code

VERBATIM
cai = _ion_cai;
ENDVERBATIM

With no other verbatim blocks around. Am I right in thinking that this is unnecessary so long as you have

USEION ca READ cai

in the neuron block?

Any thoughts on why this is so common? What they were attempting to do?
(see http://senselab.med.yale.edu/ModelDb/Sh ... 3\Iahp.mod for an example)
ted
Site Admin
Posts: 6300
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: _ion_cai ???

Post by ted »

Looks like very old NMODL code. It suggests that there was a primary variable called _ion_cai, and that the authors needed to copy its value to cai and Cai. Why this was necessary is beyond me; I would have expected that, by 1998 or so, cai would automatically have the correct value, and that the way to copy this to Cai would be to use a simple NMODL assignment statement
Cai = cai
without the need for any VERBATIM block at all. Maybe Bill Lytton can say more about this, since he's one of the authors on model 116862.
wwlytton
Posts: 66
Joined: Wed May 18, 2005 10:37 pm
Contact:

Re: _ion_cai ???

Post by wwlytton »

This is perhaps entirely historical artifact - I note that the model is that of Desxtexhe 1992.
It would be a service if you were able to recast this model into modern form and post the correct current NMODL code here (alerting future users) -- I would also then make the replacement in the ModelDB and start to replace elsewhere.

In the case that you show us there are 2 internal calciums defined: Cai and cai.
USEION Ca READ Cai VALENCE 2
USEION ca READ cai
I see that cp, cadecay only affects ca while cp2 affects Ca.

I also see that in some files this is being done in the INITIAL where in other files it's being done in the procedure itself.

If you run nocmodl Iahp you will get the .c file: Translating Iahp.mod into Iahp.c. If you then grep you will see that there are 6 locations where this assignment is done. Some of these appear to be generated by nocmodl translation whereas others are from the VERBATIM block. I didn't trace the details further but would have to assume that this usage is due to some scoping anomalies -- the date on this file takes us back to just before NEURON 2.0 as far as i can tell
Post Reply