Page 1 of 1

Conditionally Using Ions for Ion Pool Regulation

Posted: Fri Sep 13, 2024 2:01 pm
by urid
Hi,

I am fairly new to using NEURON (via Python), and I am trying to create a mechanism in which the conductance can be optionally regulated by an ion pool. If a Ca pool, say, writes to cai, and if a mechanism was inhibited by cai, then I would need to have the line

Code: Select all

USEION ca READ cai
in the NEURON block. That said, if I use cai for only a few neurons in the network, would reading in the ion unnecessarily affect the performance time of the model if I'm reading in cai for something like 18 neurons (with more than 10 mechanisms and around 20 synaptic connections each), but using it for only 2? Or does that consideration not really matter? If it does matter, is there a solution to this that is not creating a separate ca-regulated mechanism for each mechanism that I have (so if I also have a sodium pool option, that would lead to almost triple the number of mod files)? For example, my NMODL file could read something like:

Code: Select all

UNITS {
	(mV) = (millivolt)
	(mA) = (milliamp)
	(uS) = (microsiemens)
    (um) = (micrometer)
    (mM) = (milli/liter)
}

NEURON {
    SUFFIX test
    RANGE i, g, e, regulated
    NONSPECIFIC_CURRENT i
    USEION ca READ cai
}

PARAMETER {
    g (uS) e (mV) regulated
}

ASSIGNED {
    i (mA/cm2) v (mV) area (um2) cai (mM)
}


BREAKPOINT {
    SOLVE states METHOD derivimplicit
    i = (100)*g/area*(v-e)*regulation(cai)
}

FUNCTION regulation(c) {
    if (regulated == 0) {
        regulation = 1
    } if (regulated == 1) {
        regulation = 1/(1+17*(c/(6e-4+c)))
    }
}
Thank you!

Re: Conditionally Using Ions for Ion Pool Regulation

Posted: Fri Sep 13, 2024 2:34 pm
by ted
Relax. Numerical integration is computationally expensive. Merely "READing" cai costs nothing by comparison. You could insert hundreds of mechanisms that READ cai into every section of a model cell, with no noticeable effect on run time--unless at least one of those mechanisms involved an ODE in a DERIVATIVE block or a state transition in a KINETIC block. Example: suppose you have a section foo, and into it you insert a ca-accumulation mechanism that calculates cai by integrating ica. That increases the number of ODEs by foo.nseg, which will do much more to runtime than if you added cai-dependency to all the other density mechanisms and point processes that are attached to your entire model cell.

Re: Conditionally Using Ions for Ion Pool Regulation

Posted: Mon Sep 16, 2024 2:01 pm
by urid
Thanks for the quick reply, that makes a lot of sense!

Re: Conditionally Using Ions for Ion Pool Regulation

Posted: Mon Sep 16, 2024 4:35 pm
by ted
Calcium is a key signal in many phenomena, some of which involve calcium diffusion from the site of ca entry (or site of release from organelles) to the site of ca action. Calcium accumulation mechanisms for such cases add even more overhead because more ODEs (or more complex kinetic schemes) are involved. But no matter how complex that may be, using the calcium concentrations remains computationally cheap.