Page 1 of 1
_ion_cai ???
Posted: Tue Feb 19, 2013 9:46 am
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)
Re: _ion_cai ???
Posted: Wed Feb 20, 2013 10:30 pm
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.
Re: _ion_cai ???
Posted: Thu Feb 21, 2013 8:13 am
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