topology and geometry

Managing anatomically complex model cells with the CellBuilder. Importing morphometric data with NEURON's Import3D tool or Robert Cannon's CVAPP. Where to find detailed morphometric data.
Post Reply
eternal_padawan
Posts: 2
Joined: Mon Oct 16, 2006 10:09 am
Location: Italy

topology and geometry

Post by eternal_padawan »

Hi
I am making a model of a cell with a short dendrite and an axon which divides into three branches.
Using the CellBuilder, I built this cell, included the parent axon and three branches in an "axontree" section, and made all diam in axontree equal to 1 micron, and all L equal to 100 micron. Soma has L=10 and diam=10.

I then created an hoc file, but there is something I do not understand.

I assumed the procedure basic_shape () in the topology should give me the values I inserted for length and diameter. Instead I get:

Code: Select all

proc basic_shape() {
  soma {pt3dclear() pt3dadd(0, 0, 0, 1) pt3dadd(15, 0, 0, 1)}
  dend {pt3dclear() pt3dadd(0, 0, 0, 1) pt3dadd(-29, 0, 0, 1)}
  axon {pt3dclear() pt3dadd(15, 0, 0, 1) pt3dadd(75, 0, 0, 1)}
  axon[1] {pt3dclear() pt3dadd(75, 0, 0, 1) pt3dadd(75, -44, 0, 1)}
  axon[2] {pt3dclear() pt3dadd(75, 0, 0, 1) pt3dadd(135, 0, 0, 1)}
  axon[3] {pt3dclear() pt3dadd(75, 0, 0, 1) pt3dadd(75, 60, 0, 1)}
}
I thought the points given by pt3add are x,y,z and diam of the 0 and 1 positions of the current section. If this is so, this code says that I have a soma which would be 15 microns long and 1 micron thick, and a parent axon which is 60 micron long instead of 100 (etc)...

After the topology procedure, however, the geometry procedure gives diam and L values which are correct:

Code: Select all

proc geom() {
  forsec axontreee {  diam = 1  }
   axon.L = 100
   axon[1].L = 100
   axon[2].L = 100
   axon[3].L = 100
  soma {  L = 10  diam = 10  }
  dend {  L = 15  diam = 10  }
}
Does this mean that .diam and .L can override pt3dadd notation? and if this is so, where are the section connected after I changed the topology with the geometry?

I hope this was clear...
Paola
ted
Site Admin
Posts: 6300
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Post by ted »

The flow of execution is
1. sections are created
2. the objrefs, that will eventually become subsets, are created
3. access soma
4. proc celldef() is called. celldef() calls
topol()
subsets()
geom()
biophys()
geom_nseg()
in that sequence.
5. topol() assembles the sections into the correct branched architecture,
then calls basic_shape() which ensures that the appearance of the model
is the same as it was in the CellBuilder.
6. subsets() appends sections to Lists (which is how sets are implemented).
7. geom() assigns values to L and diam directly.
Tracing the remainder of execution flow is left as an exercise to the reader.
Does this mean that .diam and .L can override pt3dadd notation?
Yes. The goal here is to preserve the appearance while ensuring that
actual length and diameter are as specified on the Geometry page.
if this is so, where are the section connected after I changed the topology with the geometry?
You didn't "change the topology with the geometry". Topology is the
branching pattern, independent of the lengths and orientations of the
individual branches. Geometry is the physical size of each branch, i.e.
L and diam. Please read the Programmer's Reference entry on Geometry
http://www.neuron.yale.edu/neuron/stati ... l#Geometry
Especially read the discussion of pt3dconst, which contains much useful
information including the following:
"If pt3dconst is set at 0, newly assigned values for d and L will automatically update pre-existing 3d information. pt3dconst returns its previous state on each call. Its original value is 0."
eternal_padawan
Posts: 2
Joined: Mon Oct 16, 2006 10:09 am
Location: Italy

Post by eternal_padawan »

thanks, Ted. Now it is clear.

Sorry for the confusion, I am a beginner and I am still overwhelmed by the program...
ted
Site Admin
Posts: 6300
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Post by ted »

No need to apologize. You asked a very good question, which raised several
important points. The fact that {the size of the branches displayed in the
CellBuilder's shape plot} is independent of {the actual physical dimensions of
the specified model} has not been explained elsewhere. And even though
pt3dconst is defined in the Programmer's Reference, until now there has
been no discussion of {when and how pt3dconst might be useful}.
Post Reply