Working with morphometric data

If you have detailed morphometric data, why not use it? This may be easier said than done, since quantitative morphometry typically produces hundreds or thousands of measurements for a single cell -- you wouldn't want to translate this into a model by hand. Several programs have been written to generate hoc code from morphometric data files.

Stylized specification

Some of these programs create very simple translations that amount to "stylized specifications" of anatomy, i.e. explicit specification of length and diameter without any orientation information, such as
	dend[n] { L = aa diam = bb } 
This is fine if your model is simple enough, but Shape Plots of complex models can be indecipherable.
Example: model with a soma and a single primary dendrite that gives rise to several side branches. Each of the short neurites is 10 um long, and the soma and long neurites are all 50 um long.

You can examine the hoc code that implements a stylized specification of this model, or run it yourself, if you like. Here is the resulting Shape plot

Real cells can look much worse.

3d specification

A better way to construct architecturally complex models from quantitative morphometric data is through 3d specification (pt3d data).

Example: consider the morphometric data in the following table. The data format is practically identical to one that is actually in use. The principal difference is the presence of a comment field that spells out which measurements belong to which section, so you don't have to try to figure this out for yourself.

Item	Definition
----	----------
n	measurement index
p	index of previous measurement (-1 means no previous)
	If current position is an origin of a daughter neurite, 
	previous measurement is the termination of the parent neurite.
x,y,z,d	position and diameter of measurement
t	type of measurement
	O	origin
	C	continuation
	B	branch point (gives rise to 1 or 2 daughters)
	T	termination
comment	ap, ba == neurite in apical or basilar field

n	p	x	y	z	d	t	comment
0	-1	0	0	0	20	O	soma(0)
1	0	0	15	0	20	C	soma
2	1	0	20	0	3	B	soma(1)
3	2	0	20	0	3	O	ap[0](0)
4	3	0	120	0	3	B	ap[0](1)
5	4	0	120	0	2	O	ap[1](0)
6	5	0	320	0	2	B	ap[1](1)
7	6	0	320	0	1	O	ap[2](0)
8	7	-70	390	0	1	T	ap[2](1)
9	6	0	320	0	1	O	ap[3](0)
10	9	70	390	0	1	T	ap[3](1)
11	4	0	120	0	1	O	ap[4](0)
12	11	60	200	0	1	T	ap[4](1)
13	0	0	0	0	1	O	ba[0](0)
14	13	-60	-80	0	1	T	ba[0](1)
15	0	0	0	0	1	O	ba[1](0)
16	15	80	-60	0	1	T	ba[1](1)
The file anat.hoc implements a model based on these data by
  1. creating the necessary sections
  2. connecting them to build the basic architecture of the cell
  3. using forall pt3dclear() to eliminate any pre-existing 3d data
  4. using pt3dadd() to enter the individual measurement in this table, on a section-by-section basis.


This shows you how to perform a "litmus test" for the integrity of a model with complex architecture.

Execute anat.hoc.

  1. Bring up the CellBuilder and Import this model. Review its Topology and Geometry.
  2. Insert the pas mechanism into all sections.
    If you're dealing with a very extensive cell (especially if the axon is included), you might want to cut Ra to 10 ohm cm and reduce g_pas to 1e-5 mho/cm2.
  3. Turn on Continuous Export (if you haven't already).
  4. Bring up a Shape Plot, which should look like this

  5. Turn this into a Shape Plot of Vm (R click in the Shape Plot and scroll down the menu to "Shape Plot". Release the mouse button and a color scale calibrated in mV should appear).
  6. Examine the response of the cell to a 3 nA current step lasting 5 ms applied at the soma.
    For very extensive cells, especially if you have reduced g_pas, you may want to increase both Tstop and the duration of the injected current to 1000 ms and use variable dt.

Left: Vm at t = 0. Right: Vm at t = 5 ms.

Quantitative tests of anatomy

This one line hoc statement checks for pt3d diameters == 0 and reports the names of the sections where they are found :

forall for i=0, n3d()-1 if (diam3d(i) == 0) print secname(), i, diam3d(i)

There are many other potential strategies for checking anatomical data, such as

Detailed morphometric data: sources, caveats, and importing into NEURON

Currently the largest collection of detailed morphometric data that I know of is There are many potential pitfalls in the collection and use of such data. Before using any data you find at or anywhere else, sure to carefully read any papers that were written about those data by the anatomists who obtained them.

Some of the artifacts that can afflict morphometric data are discussed in these two papers, which are well worth reading:
Kaspirzhny AV, Gogan P, Horcholle-Bossavit G, Tyc-Dumont S. 2002. Neuronal morphology data bases: morphological noise and assesment of data quality. Network: Computation in Neural Systems 13:357-380.
Scorcioni, R., Lazarewicz, M.T., and Ascoli, G.A. Quantitative morphometry of hippocampal pyramidal cells: differences between anatomical classes and reconstructing laboratories. Journal of Comparative Neurology 473:177-193, 2004.

NEURON's Import3D tool can import data in several file formats: SWC, Neurolucida, Eutectic, and MorphML. For an online tutorial about this tool, see

NEURON hands-on course
Copyright © 1998-2008 by N.T. Carnevale and M.L. Hines, all rights reserved.