|


Three parameters apply to the section as a whole: cytoplasmic
resistivity Ra (
The user can change the compartmentalization parameter nseg without
having to modify any of the statements that set anatomical or biophysical
properties. However, if parameters vary with position in a section, care must
be taken to ensure that the model incorporates the spatial detail inherent in
the parameter description.
|


Like dendritic diameter in our example, most cellular properties are
functions of the position parameter x. NEURON has special provisions
for dealing with these properties, which are called "range variables." Other
examples of range variables include the membrane potential v, and
ionic conductance parameters such as the maximum HH sodium conductance
gnabar_hh
Range variables enable the user to separate property specification from
segment number. A range variable is assigned a value in one of two ways. The
simplest and most common is as a constant. For example, the statement
axon.diam = 10 asserts that the diameter of the axon is uniform over
its entire length.
The syntax for a property that changes along a length of a section is
rangevar(xmin:xmax) = e1:e2. The four
italicized symbols are expressions with e1 and
e2 being the values of the property at xmin and
xmax, respectively. The position expressions must meet the
constraint 0 <= xmin <= xmax <= 1.
Linear interpolation is used to assign the values of the property at the
segment centers that lie in the position range [xmin,
xmax]. In this manner a continuously varying property can be
approximated by a piecewise linear function. If the range variable is
diameter, neither e1 nor e2 should be 0, or
corresponding axial resistance will be infinite.
In our model neuron, the simple dendritic taper is specified by diam(0:1)
= 10:3 and nseg = 5. This results in five segments that have
centers at x = 0.1, 0.3, 0.5, 0.7 and 0.9 and diameters of 9.3, 7.9,
6.5, 5.1 and 3.7, respectively.
The value of a range variable at the center of a segment can appear in any
expression using the syntax rangevar(x) in which 0 <= x
<= 1. The value returned is the value at the center of the segment
containing x, NOT the linear interpolation of the values stored at the
centers of adjacent segments. If the parentheses are omitted, the position
defaults to a value of 0.5 (middle of the section).
A special form of the for statement is available:
axon for (x) print x*L, v(x) |

As noted previously (4.2.2 Second step . . .),
there are two ways
to specify section geometry. Our example uses the stylized method, which
simply assigns values to section length and diameter. This is most appropriate
when cable length and diameter are authoritative and 3-D shape is irrelevant.
If the model is based on anatomical reconstruction data (quantitative
morphometry), or if 3-D visualization is paramount, it is best to use the 3-D
method. This approach keeps the anatomical data in a list of (x, y, z, diam)
"points." The first point is associated with the end of the section that is
connected to the parent (this is not necessarily the 0 end!) and the last point
is associated with the opposite end. There must be at least two points per
section, and they should be ordered in terms of monotonically increasing arc
length. This pt3d list, which is the authoritative definition of the
shape of the section, automatically determines the length and diameter of the
section.
When the pt3d list is non-empty, the shape model used for a section is a
sequence of frusta. The pt3d points define the locations and diameters of the
ends of these frusta. The effective area, diameter, and resistance of each
segment are computed from this sequence of points by trapezoidal integration
along the segment length. This takes into account the extra area introduced by
diameter changes; even degenerate cones of 0 length can be specified (i.e. two
points with same coordinates but different diameters), which add area but not
length to the section. No attempt is made to deal with the effects of centroid
curvature on surface area. The number of 3-D points used to describe a shape
has nothing to do with nseg and does not affect simulation speed.
|


The insert statement assigns biophysical mechanisms, which
govern electrical and (if present) chemical signals, to a section. Many
sources of electrical and chemical signals are distributed over the membrane of
the cell. These density mechanisms are described in terms of current
per unit area and conductance per unit area; examples include voltage-gated
ion channels such as the HH currents.
However, density mechanisms are not the most appropriate representation of all
signal sources. Synapses and electrodes are best described in terms of
localized absolute current in nanoamperes and conductance in microsiemens.
These are called point processes.
An object syntax is used to manage the creation, insertion, attributes, and
destruction of point processes. For example, a current clamp (electrode for
injecting a current) is created by declaring an object variable and assigning
it a new instance of the IClamp object class
(see 4.2.3 Third step: attach stimulating electrodes).
When a point process is no longer referenced by
any object variable, the point process is removed from the section and
destroyed. In our example, redeclaring stim with the statement
objref stim would destroy the pulse stimulus, since no other object
variable is referencing it.
The location of a point process can be changed with no effect on its other
attributes. In our example the statement
Many user-defined density mechanisms and point processes can be simultaneously
present in each compartment of a neuron. One important difference between
density mechanisms and point processes is that any number of the same kind of
point process can exist at the same location.
User-defined density mechanisms and point processes can be linked into NEURON
using the model description language NMODL. This lets the user focus on
specifying the equations for a channel or ionic process without regard to its
interactions with other mechanisms. The NMODL translator then constructs the
appropriate C program which is compiled and becomes available for use in
NEURON. This program properly and efficiently computes the total current of
each ionic species used, as well as the effect of that current on ionic
concentration, reversal potential, and membrane potential. An extensive
discussion of NMODL is beyond the scope of this article, but its major
advantages can be listed succinctly.
|
|

|
|
Address questions and inquiries to Michael Hines or Ted Carnevale
Digital preprint of "The NEURON Simulation Environment" by M.L. Hines and N.T. Carnevale,
Neural Computation, Volume 9, Number 6 (August 15, 1997), pp. 1179-1209.
Copyright © 1997 by the Massachusetts Institute of Technology, all rights reserved. |