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.

Exercise

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.

From Neurolucida to NEURON

Robert Cannon has developed cvapp, a morphology viewer/editor that can read a couple of different file formats (including Neurolucida's ASCII files) and write hoc code that specifies topology and geometry. This program, which was written in Java so it can run on multiple platforms, is available from the Duke / Southampton Archive of Neuronal Morphology ( http://www.neuro.soton.ac.uk/cells/cellArchive.html).

The Archive was established through a collaboration between Howard Wheal and Dennis Turner "to facilitate the free exchange of data between groups studying neuronal morphology." It contains detailed morphometric data from over 100 cells (mostly hippocampal neurons) that you can download.

I have used cvapp to generate some hoc files from a few of these cells. These files, which are located in course/anatomy, will give you practice working with models that have complex architectures.

File Cell type Comments
n254named.hoc interneuron from
inner molecular layer
of dentate gyrus
includes axon
n274named.hoc granule cell from
dentate gyrus
includes axon
l22struc.hoc CA3c pyramidal cell no axon
first letter of file name is lower case L
n411struc.hoc CA1 pyramidal cell no axon

Hints:

Comments

  1. Please be sure to credit the source of the files that you use, whether they come from the Duke / Southampton Archive or elsewhere.
  2. You should always be concerned about the quality and reliability of any data or software that you use. Do data files contain implausible values, evidence of bias, or signs of other errors? Does software work the way it should? N.B.: if you encounter any bugs in cvapp, I am sure that Robert Cannon would be very interested in hearing about them so he can fix them.
  3. To use cvapp yourself, you'll need cvapp.jar from the Duke / Southampton Archive, and you will also need to have either Java or the Java Runtime Environment (jre) installed on your own machine.
  4. MSWin users who don't already have Java should get jre from SUN's WWW site. It's free and installs easily. For maximum convenience, I put a shortcut icon on the desktop, named it "R.Cannon's utility", and gave it these properties:
    Target: "C:\Program Files\JavaSoft\JRE\1.1\bin\jre.exe" -cp i:\cvapp\cvapp.jar cvapp
    Start in: i:\cvapp\swcdata
    (don't you just love MicroSoft's attempts to reinvent language?).
    In plainspeak, Target means "command line" and Start in means "working directory". The jre.exe stuff is in quotes because Program Files contains a blank space. As you can see, I put cvapp.jar in i:\cvapp, and i:\cvapp\swcdata is where I put my local copy of the Archives data files. The details of your installation are likely to be different, but this should help you get started.


NEURON summer course
Copyright © 1998, 1999 by N.T. Carnevale and M.L. Hines, all rights reserved.