Programmer's Reference
The mercurial repository change log and sources

Guides and Tutorials

For NEURON beginners
What to read first
Suggestions for how to develop models
Important practical hints about model development for anyone who is starting to work with NEURON.
Construction and Use of Models: Part 1. Elementary Tools
A good beginner's tutorial. Introduces some of NEURON's basic GUI tools.
Slides from a presentation on hoc syntax.
Clear and concise. Includes an example of program analysis (walkthrough of code for a model cell generated by the CellBuilder).
Important GUI tools
Import3D tutorials
A convenient GUI tool for converting Eutectic, Neurolucida, and swc morphometric data into NEURON models. This used to be ../docs/import3d/main.html
CellBuilder tutorials
How to use the CellBuilder to construct stylized (stick figure) models, manage the biophysical properties of anatomically complex models, and specify variation of biophysical properties as functions of position (distance from a point etc.).
Channel Builder tutorials
A GUI tool for creating computationally efficient models of ligand- and voltage-gated channels.
ModelView: a tool for discovering what's in a model
This presentation of the ModelView tool is almost a tutorial. From our poster at the 2004 HBP Spring Meeting.
Network Builder tutorials
Suggestion: use the Network Builder to make a toy net. Then click on its "Hoc file" button to create a file that you can mine for reusable code (e.g. so you can build a much bigger net algorithmically).
Multiple Run Fitter tutorials
NEURON's built-in optimization tool.
Python with NEURON
Scripting NEURON with Python
Includes: an introduction to Python, how to work with NEURON through Python, how to develop a model from a single cell through a network.
Examples of using the Python interpreter to work with hoc/nrniv objects
zip file from Sam Neymotin's presentation in the NEURON course at the 2014 OCNS meeting.
Reaction-diffusion tutorials
For models that include chemical signals.
Other topics
Randomness in NEURON models
Discussions of potential uses of randomness in modeling, and practical examples of how to do it.
Dealing with simulations that generate a lot of data
Shows how to break "output-heavy" simulations into shorter segments.
Also check Courses
for links to information about upcoming NEURON courses, and hands-on exercises from a previous NEURON Summer Course.
And from our friends:
NEURON Tutorial
by Andrew Gillies and David Sterratt of Edinburgh University. Starts at "bog level" and, in five installments, has you adding new biophysical mechanisms and building networks.
NEURON with Python
A very nice set of instructions and examples for installing and using NEURON with Python, by Andrew Davison at UNIC.

Key papers about NEURON

"The NEURON simulation environment" (overviewforhbtnn2e.pdf)
by Hines & Carnevale. Preprint of an "executive summary" published as
Hines, M.L. and Carnevale, N.T. The NEURON simulation environment. In: The Handbook of Brain Theory and Neural Networks, 2nd ed, edited by M.A. Arbib. Cambridge, MA: MIT Press, 2003, pp. 769-773.
Read this to learn why you should use NEURON.
"The NEURON simulation environment"
An earlier paper with the same title, expanded from our first article in Neural Computation. Full of useful information for NEURON newbies.
"NEURON: a tool for neuroscientists"
by Hines & Carnevale. Powerful strategies for improving spatiotemporal accuracy while preserving computational efficiency.
1. The d_lambda criterion, a simple but very effective method for specifying the spatial grid.
2. Variable order / variable timestep integration with CVODE.
"Expanding NEURON's repertoire of mechanisms with NMODL"
by Hines & Carnevale.
"Efficient discrete event simulation of spiking neurons in NEURON"
a PDF of our poster from the 2002 SFN Meeting that describes the three classes of integrate-and-fire ("artificial") neuron models that are built into NEURON.
"Translating network models to parallel hardware in NEURON"
by Hines and Carnevale. This paper should be read by anyone who intends to develop a network model, regardless of whether they intend to use serial or parallel hardware to run simulations.


NEURON has undergone many revisions since these were written, mostly to add new features or make existing ones easier to use or more efficient. Only rarely have these changes "broken" anything. If you see something that is seriously at variance with the current version of NEURON, please check the more recent documents. We would also appreciate it if you could bring such items to our attention, so we can correct them.
User's Manual
by John W. Moore. Examples of how to use many of NEURON's older GUI tools.
Reference Manual
by Michael L. Hines