Dear all,
I defined a SectionList as follows, for example,
objref dend1
proc subset_dend1() {
objref dend1
dend1 = new SectionList()
dend[0] dend1.append()
dend[1] dend1.append()
dend[3] dend1.append()
dend[5] dend1.append()
}.
Under the assumption that they are connected in line, I'd like to know the membrane voltages along dend1 at regular intervals.
The following pseudo code satisfies my demand.
for (x = 0;x<=1;x+=0.1) {dend1.v(x)}
Is there a equivalent build-in function or simple solution?
getting voltage along a SectionList
-
- Site Admin
- Posts: 6358
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Reply to: getting voltage along a SectionList
The best way to do this
Does it mean regular intervals in space, in time, or both?
If it means "regular intervals in time," will the simulations use fixed dt or variable time steps?
Also, if it means "regular intervals in space" the sections of interest must have lengths that
are integer multiples of some fundamental length.
depends on the meaning of "along dend 1 at regular intervals."I'd like to know the membrane voltages along dend1 at regular intervals
Does it mean regular intervals in space, in time, or both?
If it means "regular intervals in time," will the simulations use fixed dt or variable time steps?
Also, if it means "regular intervals in space" the sections of interest must have lengths that
are integer multiples of some fundamental length.
Reply to: getting voltage along a SectionList
Thank you for your reply.
I am grateful if a mechanism, for example a MultiSection class,
similar to the following code would be involved in NEURON.
The MultiSection class would treat two sections as if they were a single section.
Does NEURON provide a easy way to handle thie matter?
I used "along dend1 at regular intervals" for meaning "regular intervals in space".ted wrote:The best way to do this depends on the meaning of "along dend 1 at regular intervals."
Does it mean regular intervals in space, in time, or both?
If it means "regular intervals in time," will the simulations use fixed dt or variable time steps?
Also, if it means "regular intervals in space" the sections of interest must have lengths that
are integer multiples of some fundamental length.
I am grateful if a mechanism, for example a MultiSection class,
similar to the following code would be involved in NEURON.
Code: Select all
create dend[2]
connect dend[1](0), dend[0](1)
dend[0] {pt3dclear()
pt3dadd(0,0,0,1)
pt3dadd(5,0,0,1)
}
dend[1] {pt3dclear()
pt3dadd(0,0,0,1)
pt3dadd(15,0,0,1)
}
objref dend1
dend1 = new MultiSection() // a dummy class
dend[0] append.dend1
dend[1] append.dend1
dend1.v(0.5) // means dend[1].v(1/3)
objref stim
dend1 stim = new IClamp(0.75) // means dend[1] stim = new IClam(2/3)
Does NEURON provide a easy way to handle thie matter?
-
- Site Admin
- Posts: 6358
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Reply to: getting voltage along a SectionList
Sure--don't break them apart in the first place.The MultiSection class would treat two sections as if they were a single section.
Does NEURON provide a easy way to handle thie matter?
Code: Select all
create dend
dend {pt3dclear()
pt3dadd(0,0,0,1)
pt3dadd(5,0,0,1)
pt3dadd(20,0,0,1)
}
1. If the two sections are to have different Ra. Unlike cm and ion channel densities, Ra is not
a "range variable"--it must have the same same value along the entire length of a section.
2. If something else, e.g. a point process or another section, must be attached to the junction
between dend1 and dend2. Connections can only be made to the 0 and 1 ends of a section,
or to its internal nodes. Internal nodes are located at (i+0.5)/nseg where i = 0..nseg-1,
where nseg is an integer > 0, so for complete freedom in attaching a point process to a
particular location it is sometimes necessary to break a section into two pieces. This also
prevents changing nseg from having the side-effect of moving a point process to a new
location (which would happen if the nseg change destroys the node to which the point
process was attached).
For the same reason it is best to connect sections only at their 0 or 1 nodes. Also, it
should be noted that
Code: Select all
create parent, child
parent L = 100
connect child(0), parent(0.5)
Code: Select all
create par0, par1, child
par0 L = 50
par1 L = 50
connect par1(0), par0(1)
connect child(0), par0(1)
of the membrane properties are lumped together. The latter separates the 0 end of child
from the internal nodes of par0 and par1 by the lumped axial resistances that lie between
the internal nodes of those sections and their nodes at 1 and 0, respectively.
So there's another reason not to connect a section to an internal node of its parent.
If joining the sections is not an acceptable option, then if you absolutely must have
uniform spacing of the points at which v is sampled, you can use the fact that NEURON's
solutions are second order accurate in space. This means that, given the values of v
computed at locations x0, x1, x2 . . . you can simply use linear interpolation between any
adjacent pair to find second order accurate values at intermediate positions.
Last edited by ted on Wed Aug 15, 2007 4:22 pm, edited 1 time in total.
Reply to: getting voltage along a SectionList
Thank you for your prompt reply.
It seems that I'd have a difficulty with calculating the coordinates along the dendrites.
Thank you again for your reply.
This would be my option, because models I've handled have complicated structures.ted wrote:If joining the sections is not an acceptable option, then if you absolutely must have
uniform spacing of the points at which v is sampled, you can use the fact that NEURON's
solutions are second order accurate in space.
It seems that I'd have a difficulty with calculating the coordinates along the dendrites.
Thank you again for your reply.
-
- Site Admin
- Posts: 6358
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Reply to: getting voltage along a SectionList
How can calculating the coordinates of points separated by uniform path intervals alongnomura wrote:ted wrote:This would be my option, because models I've handled have complicated structures.if you absolutely must have
uniform spacing of the points at which v is sampled, you can use the fact that NEURON's
solutions are second order accurate in space.
It seems that I'd have a difficulty with calculating the coordinates along the dendrites.
dendrites, and then having to record and postprocess simulation results by linear interpolation
be easier than calculating the locations of the nodes at which the solutions are actually
computed? The latter is actually quite straightforward*, and it only needs to be done one
time--after spatial discretization is complete. The same effort is required to calculate
coordinates of locations at uniform path distances throughout a model, and on top of
that you have to do linear interpolation after each simulation run. Seems like more work
to me. Also requires twice as much data storage.
*--to see how, get
http://www.neuron.yale.edu/ftp/ted/neur ... nd_rec.zip
This contains complete working implementations of extracellular stimulation and
recording of a neuron. The actual locations of internal nodes are computed from the 3D
specification of the cell by proc grindaway(), which is in interpxyz.hoc