NEURON's 'vector.play' implies a membrane current?

Anything that doesn't fit elsewhere.
Post Reply
Klas
Posts: 4
Joined: Tue May 08, 2007 9:09 am
Location: Oslo, Norway
Contact:

NEURON's 'vector.play' implies a membrane current?

Post by Klas »

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?
ted
Site Admin
Posts: 6384
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Post by ted »

I was not able to find out how the play command works - does it introduce a
new "membrane current" to achieve the right potential?
Not at all.

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.
However, it seems like i_membrane takes this mysterious "play current" into account, since the net membrane current from the neuron sums to zero.
There is no mysterious "play current." See above.

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.
Klas
Posts: 4
Joined: Tue May 08, 2007 9:09 am
Location: Oslo, Norway
Contact:

Post by Klas »

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.
ted
Site Admin
Posts: 6384
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Post by ted »

Klas wrote:I use 'play' to force a given soma potential.
Membrane potential is a state variable, not a parameter, so it cannot be driven directly by
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.
Klas
Posts: 4
Joined: Tue May 08, 2007 9:09 am
Location: Oslo, Norway
Contact:

Post by Klas »

The command I use is:
vec.play(&soma.v(0.5), tvec)

This produces a somatic membrane potential equivalent to the one stored in tvec.
ted
Site Admin
Posts: 6384
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Post by ted »

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.
I just cannot see how one can force a potential to the soma without introducing such a new branch in the circuit...
Easy enough. For the particular syntax you used, at the start of each fadvance() a new
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.
Post Reply