Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shellradius equation in DecayingPoolConcentrationModel CoreType[Question] #152

Open
FerreroRoche opened this issue Apr 12, 2021 · 1 comment
Labels
T: question Type: question

Comments

@FerreroRoche
Copy link

FerreroRoche commented Apr 12, 2021

I was wondering why the DecayingPoolConcentrationModel coretype uses the following equation when calculating the shell radius:

<DerivedVariable name="effectiveRadius" dimension="length" value="LENGTH_SCALE * sqrt(surfaceArea/(AREA_SCALE * (4 * 3.14159)))"/>

Specifically about the part where the inverse of the spherical surface area equation is applied to the surfaceArea parameter.
If I'm not mistaken, depending on the compartment length, surfaceArea follows from the cylindrical or spherical equations below.

			<ConditionalDerivedVariable name="surfaceArea" dimension="area" exposure="surfaceArea">
            			<Case condition="length .eq. 0 * LEN" value="4 * radDist * radDist * 3.14159265"/>
				<Case condition="length .gt. 0 * LEN" value="2 * radDist * 3.14159265 * length"/>
			</ConditionalDerivedVariable>

However as shown before, the effectiveRadius equation assumes it's always spherical. Is there a specific reason for this?

@FerreroRoche FerreroRoche added the T: question Type: question label Apr 12, 2021
@pgleeson
Copy link
Member

Good question. The first important thing to note is that the LEMS definitions for component types related to Cells are only applicable for single compartment cells; LEMS doesn't specify PDEs/the cable equation/how to solve currents passing along dendrites. When these types are mapped to a simulator, e.g. NEURON mod file (and when the morphology, channelDensities etc. are mapped to a simulator's hoc/mods), the files produced can handle multicompartmental cells, but there will be extra info in there to handle the simulator's solving of the cable equation, reading areas/densities etc (i.e. it's built in to the mapping from NeuroML to NEURON).

So this full LEMS definition for DecayingPoolConcentrationModel will work for a single comp cell in jNeuroML, and that could indeed be a sphere or cylinder. In either case though, the (curved) surface area of a sphere and a cylinder of the same diameter and length=diameter are the same. In this simple case the modeller is generally assuming the modelled compartment is a sphere and the calculation of the pool just below the surface makes sense based on this (the difference between 2 spheres).

The most important thing to point out though is that this standard conc pool isn’t actually used much, e.g. with these examples which use Ca2+ pools: #117, it's only used for single compartment cells. Generally other models will use a custom conc pool, e.g. https://github.com/OpenSourceBrain/AllenInstituteNeuroML/blob/master/CellTypesDatabase/models/NeuroML2/CaDynamics.nml or https://github.com/mbezaire/ca1/blob/master/NeuroML2/channels/Capool.nml.

One of these is probably much more useful, it's simpler and better for multicompartmental cells. Both work on the assumption that the depth is much less than the radius/length of the compartment, meaning a good approximation for the pool volume is just the surface area times the depth.

The former is what's been used by the Blue Brain Project and Allen Institute (see the original mod file here: https://github.com/OpenSourceBrain/AllenInstituteNeuroML/blob/master/CellTypesDatabase/models/NEURON/CaDynamics.mod), the latter is probably the same when gamma==1, but I've not fully checked.

So to make an already too long story short, I'd recommend using this one, perhaps setting gamma=1 and testing thoroughly. This componenttype should actually be incorporated into the core NeuroML type definitions, but it will be a little while before that happens...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T: question Type: question
Projects
Status: 🆕 New
Development

No branches or pull requests

2 participants