I am using NEURON's play command to insert boundary conditions to the soma potential in a realistic
neuron model. However, I was not able to find out how the play command works - does it introduce a
new "membrane current" to achieve the right potential?
When I insert an extracellular layer ("insert extracellular") in my model, I can access the current
called i_membrane, which is supposed to be the sum of the membrane currents, but, as the
documentation sates "i_membrane correctly does not include contributions from ELECTRODE_CURRENT
point processes".
However, it seems like i_membrane takes this mysterious "play current" into account, since the net membrane current from the neuron sums to zero.
So, my questions summarize to:
Does the play command produce its own current (is this accessible)?
If so, is this taken into account in the extracellular i_membrane current?
NEURON's 'vector.play' implies a membrane current?
-
- Site Admin
- Posts: 6384
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Not at all.I was not able to find out how the play command works - does it introduce a
new "membrane current" to achieve the right potential?
extracellular adds extra "layers" to the cable, and one of these layers includes a voltage
source at a position that corresponds to the middle of each segment. The system equations
then have the form
Cy' = f(y,t)
where some rows of the C matrix are 0 (introduction of algebraic equations), and the
nonzero rows may have off-diagonal elements (capacitors between nodes). The
extracellular mechanism's voltage sources become part of f, i.e. they add "forcing"
terms to the right hand side of the system equations. Any currents that flow are a
consequence of the system's response to these voltages.
There is no mysterious "play current." See above.However, it seems like i_membrane takes this mysterious "play current" into account, since the net membrane current from the neuron sums to zero.
As to net membrane current being 0, that's always true, unless current is injected directly
into a cell by means of an electrode that breaches the cell membrane. For any volume
bounded by a closed surface, the surface integral of flux must equal the sum of all
sources and sinks contained within the solid. Dressed up in the glorious terminology of
vector calculus, that's Gauss's divergence theorem. In plain language appropriate for the
mundane needs of computational neuroscience, it's the principle of conservation of
charge.
Thanks for the answer - good to hear there is no mysteries :-)
However, I'm not sure I got it, at least not from an electric circuit perspective:
I only have passive channels in soma, which produce two branches in my soma compartment, one with a capacitive and one with a resistive current. In addition I use 'play' to force a given soma potential. If I understood you right this does not include its own branch in the circuit with a voltage source (and therefor also current)?
I just cannot see how one can force a potential to the soma without introducing such a new branch in the circuit...
Klas.
However, I'm not sure I got it, at least not from an electric circuit perspective:
I only have passive channels in soma, which produce two branches in my soma compartment, one with a capacitive and one with a resistive current. In addition I use 'play' to force a given soma potential. If I understood you right this does not include its own branch in the circuit with a voltage source (and therefor also current)?
I just cannot see how one can force a potential to the soma without introducing such a new branch in the circuit...
Klas.
-
- Site Admin
- Posts: 6384
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Membrane potential is a state variable, not a parameter, so it cannot be driven directly byKlas wrote:I use 'play' to force a given soma potential.
Vector play. If you are driving a voltage source, it must be e_pas, or perhaps an SECLamp's vc.
Like extracellular's voltage sources, this is jnot a state--just another forcing function that
appears on the right hand side of the system equations.
-
- Site Admin
- Posts: 6384
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
I stand corrected. It is possible to drive a state variable via Vector play. I wouldn't advise
doing it, however. It would work OK as long as the Vector's sample interval DT is the same
as dt, but if dt < DT, membrane potential will jump to the Vector specified value at every DT
but in between it will escape along its own trajectory. To see this happen, make a passive
single compartment model and drive its v(0.5) with the sinusoid -70+sin(t) sampled at 0.1
ms intervals. Compare that ugly sawtoothed trace with what you get from another passive
model to which you attach an SEClamp with dur1 = 1e9, and drive the clamp's amp1. The
former will produce a very jagged sawtoothed waveform as v decays back toward resting
potential (-70 mV) at all t that are not integer multiples of 0.1 ms. The latter will be a staircase
that follows the sinusoid more closely.
value is transferred from the Vector to the variable that is being driven. NEURON's
standard run system, which controls the execution sequence during a simulation run,
takes care of this.
doing it, however. It would work OK as long as the Vector's sample interval DT is the same
as dt, but if dt < DT, membrane potential will jump to the Vector specified value at every DT
but in between it will escape along its own trajectory. To see this happen, make a passive
single compartment model and drive its v(0.5) with the sinusoid -70+sin(t) sampled at 0.1
ms intervals. Compare that ugly sawtoothed trace with what you get from another passive
model to which you attach an SEClamp with dur1 = 1e9, and drive the clamp's amp1. The
former will produce a very jagged sawtoothed waveform as v decays back toward resting
potential (-70 mV) at all t that are not integer multiples of 0.1 ms. The latter will be a staircase
that follows the sinusoid more closely.
Easy enough. For the particular syntax you used, at the start of each fadvance() a newI just cannot see how one can force a potential to the soma without introducing such a new branch in the circuit...
value is transferred from the Vector to the variable that is being driven. NEURON's
standard run system, which controls the execution sequence during a simulation run,
takes care of this.