Typos in "Expanding NEURON's repertoire . . . " ?

NMODL and the Channel Builder.
Post Reply
Site Admin
Posts: 5770
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine

Typos in "Expanding NEURON's repertoire . . . " ?

Post by ted »

A reader wrote:
> I've been reading the NMODL manual and have come across
> some typos. I wonder if there is a place where people keep track
> of typos and errors in the NEURON documentation.

We try to fix errors that we discover, or that NEURON users report,
but some documents are "frozen in time" (e.g. articles that appeared
in books or journals) and would be more appropriate subjects for errata
lists. We've also been thinking about implementing a Wiki to help accelerate
the process of documentation and open it up to participation by NEURON

> On page 21 and 22, Listing 5. cagk.mod:
> In 'FUNCTION alp' and several other places, should 'ca (mM)'
> be 'cai (mM)' instead?

It looks like you are referring to the enhanced preprint of

Hines, M.L. and Carnevale, N.T. Expanding NEURON's repertoire of
mechanisms with NMODL. Neural Computation 12:995-1007, 2000.

This is available from the bibliography of papers about NEURON

You asked a good question. You must be reading that paper closely.
There probably are some typos in it, but for the most part it is correct.
However, it is now 5 years old, so I should direct your attention to
ftp://ftp.neuron.yale.edu/ted/book/revi ... xedref.pdf
which describes some important new features and improved strategies
for implementing certain kinds of mechanisms (especially those that
involve sudden changes of parameters or STATEs). Also, it avoids
whatever typos may have been present in the older document (but
I bet that new ones crept in).

Now to answer your question. The form shown in the paper is correct.
ca is the 2nd argument. Note that the function definition starts with
FUNCTION alp(v (mV), ca (mM)) (/ms) {

> On page 38, Listing 8. cadif.mod:
> In 'KINETIC state', should
> '~ca<->ca[i+1] (DCa*frat[i+1], DCa*frat[i+1])'
> be
> '~ca<->ca[i+1] (DCa*frat, DCa*frat[i+1])'?

Another good question, but no again. Think about diffusion between
two adjacent compartments. Flux is proportional to the area of the
interface between them, and inversely proportional to the distance
between their centers.
frat is (area of interface/distance between centers) per unit length.
It's per unit length because NEURON automatically takes section and
segment length into account.
~ ca <-> ca[i+1] (DCa*frat, DCa*frat[i+1])
is incorrect because it asserts that the interface area depends on
direction of flux.

Post Reply