Friday, November 16, 2012

How to Build a Neuron: step 3

Steps 1 and 2 of neuron-building, as well as an important set of shortcuts can be found in the How to Build a Neuron index. Step 3 is deciding which simulation software or programming language you want to use.
Simulated Neuron in Genesis (source)
The big two are Genesis and Neuron. They are pretty similar in a lot of ways, but Genesis runs in Linux and Neuron runs in Windows. However, you can run Genesis in Windows if you install the Linux environment Cygwin.

Both programs can read in morphological data, but they use different syntax and coding procedures. There are other types of neural simulators as well, and an ongoing problem in the field of computational neuroscience is compatibility between programs. If someone has done the work to make a beautiful Purkinje cell in Genesis like the one above, it will take a lot of time and effort to translate that neuron into a different simulator such as Neuron.

Gleeson et al., (2010) explains this problem and presents a possible solution in the form of the "Neuron Open Markup Language" or NeuroML.

"Computer modeling is becoming an increasingly valuable tool in the study of the complex interactions underlying the behavior of the brain. Software applications have been developed which make it easier to create models of neural networks as well as detailed models which replicate the electrical activity of individual neurons. The code formats used by each of these applications are generally incompatible however, making it difficult to exchange models and ideas between researchers....Creating a common, accessible model description format will expose more of the model details to the wider neuroscience community, thus increasing their quality and reliability, as for other Open Source software. NeuroML will also allow a greater “ecosystem” of tools to be developed for building, simulating and analyzing these complex neuronal systems." -Gleeson et al (2010) Author Summary

NeuroML is basically a "simulator-independent" neuronal description language. A neuron built with or converted to NeuroML should be able to run on Neuron, Genesis, and plenty of other platforms. Gleeson et al. validated NeuroML by using a simulated pyramidal neuron converted to NeuroML format and run with several different simulators.

Gleeson et al., (2010) Figure 7

Zooming in:

Neuron, Genesis, Moose, Psics comparison
All the simulators overlay so tightly that you can barely tell that they are separate lines.

So when building you neuron, take care to follow the NeuroML format and then you and others can use it with any simulator you want.

© TheCellularScale
Gleeson P, Crook S, Cannon RC, Hines ML, Billings GO, Farinella M, Morse TM, Davison AP, Ray S, Bhalla US, Barnes SR, Dimitrova YD, & Silver RA (2010). NeuroML: a language for describing data driven models of neurons and networks with a high degree of biological detail. PLoS computational biology, 6 (6) PMID: 20585541


  1. Excellent set of posts. Maybe you've inspired me to learn to use Neuron. It would be great to have an integrated workflow that would fairly seamlessly read your morphological data from, say Imaris or Neurolucida, straight into neuron. Just add some channels and you're all set!

  2. Thanks! I'm a fan of Genesis myself. You have also just named step 4: add channels, which will be written shortly.