Page 1 of 1

How to calculate calcium concentration in multi-compartment model

Posted: Sun Sep 02, 2018 7:55 am
by NorthWang

I have downloaded a granule cell model from ModelDB. ... 967#tabs-1
The neuron has nine compartments. There is a calcium dependent potassium channel SK on soma. When I draw the calcium concentration used for SK channel, I found that the calcium used for SK is much less than calcium concentration in each compartment. My question is how NEURON calculate calcium concentration used for calcium dependent channel? Average calcium in all compartments or others?

Thanks a lot.

Re: How to calculate calcium concentration in multi-compartment model

Posted: Thu Sep 06, 2018 10:21 am
by ted
My question is how NEURON calculate calcium concentration used for calcium dependent channel?
NEURON does what the model implementers tell it to do. You'll have to figure that out. This is a network model with several different cell classes, so the task is complicated. Here are some hints that might help.

You're looking for { mechanisms that WRITE cai } AND { exist in model granule cells }.
Start by identifying mechanisms that WRITE cai. This

grep WRITE *mod | grep cai | less

will identify NMODL files that might calculate cai, but you need to examine them to be absolutely sure. Also, when you interpret the results of grepping for cai, realize that sometimes modelers "invent" new names for ions as a way to deal with subcellular compartmentalization of ionic concentrations.

After you identify the NMODL files that calculate cai (or "invented" ions that represent a local intracellular calcium concentration), note the names of these mechanisms and also whether they are POINT_PROCESSes or density mechanisms. If they are all density mechanisms, check the model granule cell template for statements that insert them. In pseudocode, you'll do this:

Code: Select all

for each density mechanism foo that calculates cai
  grep insert GC.hoc | grep foo
If any of them are POINT_PROCESSes, you'll have to do this:

Code: Select all

for each POINT_PROCESS foo that calculates cai
  grep new GC.hoc | grep foo
At this point you will know the name of each mechanism that calculates intracellular calcium concentration, and you'll be able to see how it does its calculation.
Average calcium in all compartments or others?
No. An NMODL-specified ion accumulation mechanism (a mechanism that WRITEs an ionic concentration) will calculate concentration on a per-compartment basis. That is, the concentration in any segment will depend entirely on ion fluxes into and out of that segment. The only possible exception is if POINTERs are used to couple flux variables from other segments.

Re: How to calculate calcium concentration in multi-compartment model

Posted: Fri Sep 14, 2018 12:21 pm
by ted
A convenient and very powerful way to evaluate a model cell is to make an instance of it, then check it with the Model View tool.

objref gc
gc = new GranuleCell()

Then with the GUI
NEURON Main Menu / Tools / RunControl
and click on the RunControl panel's Init button.
Finally, click on
NEURON Main Menu / Tools / Model View
and explore the expandable outline.

Result: The GranuleCell class doesn't use the calcium accumulation mechanism described in cacumm.mod. It uses something the authors call ccanl (see ccanl.mod), which WRITEs three different concentrations called ncai, lcai, and tcai, perhaps as a way to represent separate subcellular localizations of calcium in the near vicinities of N, L, and T channels. The GranuleCell class also has a mechanism (cat) that WRITEs iCa; however, the model authors stopped short of including a mechanism that WRITEs Cai.

Yes, I could have come to the same understanding by reading GC.hoc, and yes, now that I have discovered what's in a "model granule cell" by executing code, I will go back and read GC.hoc. However, I wouldn't do that first because user-written code is not always either high quality or very readable.

Finally, a caveat: GC.hoc defines the properties of a cell class, but does this mean that the "granule cell" instances in the complete network model will have exactly the same properties? No, there isn't. The model authors could easily change the properties of GranuleCell instances after they have been created--maybe attach new point processes, maybe change channel densities, maybe insert or uninsert density mechanisms, maybe create and attach new sections or even delete existing sections or reattach existing sections to new parents. There is no limit to the awful things that model authors can do to obfuscate their code. Did Cutsuridis and Poirazi do any of these things? Using four different names for intracellular calcium (nca, lca, tca, and Ca) is pretty tricky; was that the only aspect of their model? It's up to you to discover that for yourself.