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

Add description of arbor and NEURON's nernst application rules to the docs. #1638

Merged
merged 6 commits into from
Oct 27, 2021

Conversation

noraabiakar
Copy link
Contributor

No description provided.

beginning of the simulation to caluclate the reversal potential of the ion, and then
remains constant.
Otherwise, the reversal potential is set by the user and remains constant.

Copy link
Contributor

@thorstenhater thorstenhater Sep 1, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is one unclarity in the quoted NEURON docs, which I would love to do away with:
As written, it's unclear whether the rule applies to the local NMODL file only or the global
view is considered.

Example

Assume a mechanism A that reads eX and writes to Xi is added. By the rules above, nernst is used. Now we add mechanism B that writes to eX.

I assume this results in nernst not being used, but is that correct?

Also, where is this rule applied by NEURON? Is having one CV overlap between A and B enough to change global behaviours? Or just for the overlap? (Does it matter?)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The global view is considered. So for a given ion, you need to look at all the mechanisms that use/write it and reason about the effect. In the above example, A reads the eX value that is written by B and if B reads Xi, it reads the value written by A. I will make this clearer.
As for whether A and B need to be on the same section for it to apply; I think yes. The docs indicate that this behavior is evaluated per section. Though I would need to check to be certain.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, tweaking the decomposition of the morphology into sections in NEURON potentially changes the treatment
of a globally used ion species? Or is that just for the overlapping CVs?

Sorry for asking so many questions on NEURON, but I expect to have to deal with them for quite some time in the
future.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So in Neuron, you can only add mechanisms on sections, not segments (CVs). I will run some examples to see what exactly happens in Neuron and get back to this question.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay so based on my experiments:
NEURON's rules for using nernst for the calculation of the reversal potential of an ion as stated above in this PR are applied per section (similar to arbor which can control the reversal potential of an ion at the granularity of a region). Since mechanisms can only be inserted on a section (not part of it) and since a NEURON segment (CV) can only belong to one section, there is no possibility for segment (CV) overlap that could cause confusion.
However, the rules do not consider a single mechanism in isolation on a section. All of the mechanisms on a section are considered when the rule is applied for that section.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy from private discussion:

Arbor and Neuron treat this fundamently diffent. In Neuron's model, Nernst can be used on a per-section basis in alternation with fixed reversal potentials. For Arbor, it is used globally, per ion species.

@halfflat on the motivation for not allowing it per region in Arbor,

  • CVs could be partially covered by the Nernst and const methods for the same ion
  • This cannot happen in Neuron, as each CV belongs to exactly one Section

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add a comment about this final difference ARB ./. NRN ie

In Arbor, nernst is applied globally at the level of ion species, while in Neuron different parts of the morphology may use different mechanisms for the revpot. This is the result of the difference in the models of discretisation (in Arbor regions may partially cover CVs).

and then I am happy :D

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any updates here? I could also add the comment above and proceed this way, if you like

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I missed your last comment! I'll make the change.

Copy link
Contributor

@thorstenhater thorstenhater left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi,

looks good, but I have two smaller questions that might be helpful in clarifying some rules.

Copy link
Contributor

@thorstenhater thorstenhater left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! 👍

@brenthuisman brenthuisman merged commit 98a3d4e into arbor-sim:master Oct 27, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants