Current Application Support For NeuroML

The following is a list of software applications which currently support NeuroML (last updated: March 2014). Note that not all tools support all parts of NeuroML.

Please contact us if you would like your application included on this list!

In many instances NeuroML import/export in these tools is an add-on to the core functionality of the package, and can sometimes be incomplete or not well documented. If you're interested in this feature in a specific application let the developers know! It's only through user feedback that features like this will make it further up long TODO lists.

As a general guide to the features each application supports the following icons are used:

Supports morphologically detailed single cells
Supports networks of morphologically detailed cells
Supports models containing active membrane conductances through ion channels
Supports (large scale) networks of single compartment neurons
Includes support for NeuroML v2.0

Applications and libraries supported by the NeuroML developers


NeuroML Validator


The NeuroML Validator on this website can be used to check the validity of NeuroML files (up to v1.8.1). The validator allows you to paste the text of the file into the browser window for validation. After validation, the NeuroML Validator allows translation of NeuroML documents into more readable HTML formats or into simulator scripts for use with GENESIS, MOOSE, NEURON and PSICS.

The website also facilitates visualisation of the contents of NeuroML files in 3D using X3D.

NeuroML Validator
jNeuroML (includes jLEMS)


jNeuroML = jLEMS + NeuroML 2 ComponentType definitions + validation + import & export + ...

jLEMS is a Java package which can process and run models defined using the Low Entropy Model Specification, which was developed in the process of creating NeuroML version 2.0.

jLEMS can read in models specified in LEMS, check validity and unit consistency, simulate the models natively using a simple numerical integration scheme and plot the results.

The dynamical behaviour of most NeuroML v2.0 model components are described in LEMS and jNeuroML is a combination of jLEMS and NeuroML 2 ComponentType definitions, allowing it to read & simulate a range of neuronal model types. It also allows validation of NeuroML 2 & v1.8.1 files and includes import & export functionality for a number of simulator formats and other XML languages (e.g. SBML, NEURON, Brian).
jNeuroML
libNeuroML for Python


A Python API for reading & writing NeuroML v2.0 has been developed.

The package was developed by Mike Vella (Cambridge) as part of the 2012 INCF Google Summer of Code project.

For more details on the features of libNeuroML see here.
libNeuroML
PyLEMS


This is a pure Python implementation of a parser for the LEMS language. It can read LEMS, and execute models in the format. This package can also be used as an API for reading/writing LEMS files. There is slightly less comprehensive support for all parts of the LEMS specification in PyLEMS (compared to jLEMS, the reference implementation of LEMS). See here for more details.

PyLEMS

Other applications with NeuroML support

neuroConstruct


neuroConstruct is a Java based application for constructing 3D networks of biologically realistic neurons. The current version can generate code for the NEURON, GENESIS, PSICS and PyNN platforms and also provides import/export support for MorphML, ChannelML and NetworkML. A detailed description of the current support for NeuroML in neuroConstruct is avaliable here.

Integration with jNeuroML and conversion of NeuroML v1.x based models to v2.0 is in active development.

neuroConstruct
NEURON


The NEURON simulation environment is one of the main target platforms for a standard facilitating exchange of neuronal models. Version 6.1 of NEURON can import and export (from ModelView) cells in NeuroML (Level 1 or 2) format. For the latest files for importing/exporting NeuroML in NEURON see here. The NeuroML Validator can also be used to generate NEURON scripts (example) and full NEURON simulations can be generated from NeuroML model components by neuroConstruct.

jNeuroML can also be used to convert NeuroML2/LEMS models to NEURON.

NEURON
GENESIS


GENESIS is a commonly used neuronal simulation environment and is also a main target platform for the NeuroML specifications. Cell morphologies and channel mechanisms in NeuroML format can be used to generate GENESIS scripts through the NeuroML Validator page here (example). This conversion can be done with any XML tool for handling XSL file transformations, but a short script in Python to facilitate this is available here. Full GENESIS simulations can be generated from NeuroML model components by neuroConstruct.

See also work on the next generation of the GENESIS platform as part of the Neurospaces/GENESIS 3 and MOOSE projects.

GENESIS
MOOSE


MOOSE is the Multiscale Object-Oriented Simulation Environment. It is the base and numerical core for large, detailed multi-scale simulations that span computational neuroscience and systems biology. It is based on a complete reimplementation of the GENESIS 2 core, and scripts for that environment are largely compatible with MOOSE, e.g. those generated by the NeuroML Validator (example). Native support for NeuroML in MOOSE is in development. The latest version of neuroConstruct can be used to generate executable scripts for MOOSE based on NeuroML model components.

A standalone graphical interface for visualising and plotting simulation results saved by MOOSE (or any other multicompartmental simulator) has been developed, see Moogli.
MOOSE
PSICS


PSICS is the Parallel Stochastic Ion Channel Simulator. This recently developed simulator has had an initial focus on single cell modeling, but support for networks of cells is in development. Level 1 morphologies are natively supported by PSICS for specifying cell structures. PSICS does not have an internal representation of cables, so MorphML cable elements are only used to assign labels to points, but these can then be used as targets for channel allocation much as cables are in NEURON. PSICS natively reads a large subset of channel specifications in ChannelML 1.8.1 but does not support ligand gated channels (e.g. for BK, SK channels), synapses or integrate-and-fire mechanisms. Supported ChannelML files can be converted to PSICS format using the latest XSL file for this mapping (example). This converts the XML into a PSICS compatible XML file and reports the problem if the ChannelML file uses an unsupported construct.

The latest version of neuroConstruct can be used to generate executable scripts for PSICS based on NeuroML components.
PSICS
PyNN


PyNN is a Python package for simulator independent specification of neuronal network models. Model code can be developed using the PyNN API and then run using NEURON, NEST, PCSIM, Brian or MOOSE. The developed model also can be stored as a NeuroML document using code that is currently in the testing phase. The latest version of neuroConstruct can be used to generate executable scripts for PyNN based simulators based on NeuroML components, although the majority of multicompartmental conductance based models which are available in neuroConstruct are outside the current scope of the PyNN API.

More details on the interaction between PyNN and NeuroML 2 can be found here.

PyNN
Whole Brain Catalog


The Whole Brain Catalog is a graphical interface that allows multiscale neuroscience data to be visualised relative to a 3D brain atlas. Data being visualised is annotated with links out to further information resources.

NeuroML is one of the data formats supported by this environment. Further integration with tools such as neuroConstruct is currently being tested to facilitate large scale network simulations through the interface.

Whole Brain Catalog
NeuronLand


NeuronLand provides NLMorphologyConverter, which is a command line program for converting between over 20 different 3D neuron morphology formats, and NLMorphologyViewer, which provides a simple interface for viewing these data.

Both of these tools provide import and export of MorphML.
NeuronLand
PCSIM


PCSIM is a tool in C++ for simulating large scale networks of cells and synapses. Functionality for importing and exporting generated networks in NetworkML is in development.

This had primarily been developed as a network exchange mechanism with CX3D.



PCSIM
CX3D


CX3D is a tool for simulating the growth of cortex in 3D. Export of generated networks to NeuroML format is included in the current version (see Frederic Zubler and Rodney Douglas (2009). A framework for modeling the growth and development of neurons and networks. Front. Comput. Neurosci.).

A preliminary implementation of NeuroML export from CX3D which also includes neuronal morphologies is available here.

Update: A parallel version of CX3D (not yet including the latest NeuroML support) is available here.
CX3D
Neuromantic


Neuromantic is a freeware tool for neuronal reconstruction (similar in some ways to part of Neurolucida's functionality). Neuromantic mainly uses SWC/Cvapp format, but the latest version can import and export MorphML.

Update: A paper on Neuromantic was recently published and the source code for the application was made available here.
Neuromantic
Neurospaces/ GENESIS 3


The Neurospaces project is developing a modular reimplementation of the core of GENESIS 2 along with a number of other components for computational neuroscience as part of the GENESIS 3 initiative. Neurospaces/GENESIS 3 currently supports reading of passive models in NeuroML format (morphology + passive parameters). Neurospaces
NeuroML Java API


A Java API generated from NeuroML Schema documents to be used for the development of new neural simulators and to connect with pre-existing simulators. This application was originally based on the v1.x Schemas (supports NeuroML version 1.8.1).

It has recently been updated with the developing v2.0 Schemas.

Note: This package has been superceded by the Java API org.neuroml.model, as used by jNeuroML.
NeuroML Java API
SplitNeuron


SplitNeuron is a library written in C for data structures and functions extending SQLite to simulate large-scale networks of Izhikevich Simple Model compartments. SplitNeuron answers a fundamental issue in large-scale simulation, data transfer between storage and functional software: it uses database not only for data storage but also as simulation engine, moving computation to data rather than using storage systems only for data holding. This choice offers more features with less code to write and a unique way of accessing data for further analysis.

Features under development include direct import and cell/network creation from NeuroML.

SplitNeuron
NeurAnim


NeurAnim is a research aid for computational neuroscience. It is used to visualise and animate neural network simulations in 3D, and to render movies of these animations for use in presentations. Networks stored in the instance based representation of NetworkML can be loaded and visualised. NeurAnim
CNrun


CNrun is a neuronal network model simulator, similar in purpose to NEURON except that individual neurons are not compartmentalised. It was built from refactored code written by Thomas Nowotny.

It reads in network topology description from a NeuroML file, where the cell_type attribute determines the unit class, one of the in-built neuron types of CNrun (e.g. Hodgkin Huxley cell by Traub and Miles (1991), Poisson oscillator, van der Pol oscillator).
CNrun
TREES toolbox


The TREES toolbox is an application in MATLAB which allows: automatic reconstruction of neuronal branching from microscopy image stacks and generation of synthetic axonal and dendritic trees; visualisation, editing and analysis of neuronal trees; comparison of branching patterns between neurons; and investigation of how dendritic and axonal branching depends on local optimization of total wiring and conduction distance.

This application was discussed in a recent publication: Cuntz H, Forstner F, Borst A, Häusser M, One rule to grow them all: A general theory of neuronal branching and its practical application. PLoS Comput Biol 6(8): e1000877 (2010).

The latest version of the TREES toolbox includes basic functionality for exporting cells in NeuroML v1.x Level 1 (MorphML) or as a NeuroML v2alpha morphology file.

TREES toolbox
TrakEM2


TrakEM2 is an ImageJ plugin for morphological data mining, three-dimensional modelling and image stitching, registration, editing and annotation.

It has been described in detail in a recent publication: Albert Cardona, Stephan Saalfeld, Stephan Preibisch, Benjamin Schmid, Anchi Cheng, Jim Pulokas, Pavel Tomančák, and Volker Hartenstein, An Integrated Micro- and Macroarchitectural Analysis of the Drosophila Brain by Computer-Assisted Serial Section Electron Microscopy, PLoS Biology, 8(10), e1000502 (2010).

As of v0.8n, a menu item "Export - NeuroML..." gives an option to export to MorphML (the anatomy of the arbors only) or NeuroML (the whole network with anatomy and synapses), for the selected trees or all trees.

TrakEM2
NeuroMorpho.Org


NeuroMorpho.Org is a database of digitally reconstructed neurons. This resource can be used to retrieve reconstructed neuronal morphologies of multiple cell types from a number of species. The database can be browsed by neuron type, brain area, species, contributing lab, or cells can be searched for according to various morphometric criteria or the associated metadata.

There is a utility present on the site to view the cells in 3D (based on Robert Cannon's Cvapp), which could be used to save the morphologies in NEURON or GENESIS format. It was agreed at the 2011 NeuroML Development Workshop that MorphML export would be a very useful addition to this functionality, and this has now been added to the viewer.
NeuroMorpho.Org
Neuronvisio


Neuronvisio is a Graphical User Interface for NEURON simulator environment with 3D capabilities. Neuronvisio makes easy to select and investigate sections' properties, it offers easy integration with matplotlib for the plotting the results.

It can save the geometry using NeuroML and the simulation results in a customised and extensible HDF5 format; the results can then be reload in the software and analysed at a later stage, without re-running the simulation.

Neuronvisio
Channelpedia @ Blue Brain Project


Channelpedia is a database of information on ion channels, developed as part of the Blue Brain Project. As well as information on genetic, structural and functional properties, many channel descriptions are accompanied by kinetic models taken from the literature, or obtained from channel expression in Xenopus oocytes. The ion channel models can be downloaded from the site in ChannelML format.

Note: many of the cell morphologies used by the Blue Brain Project have been deposited in the NeuroMorpho.Org repository (Markram lab) and so are also available in NeuroML format.
Channelpedia
OpenWorm


The OpenWorm project aims to create a simulation platform to build digital in-silico living systems, starting with a C. elegans virtual organism simulation. The simulations and associated tools are being developed in a fully open source manner.

NeuroML is being used for the description of the 302 neurons in the worm's nervous system, both for morphological description of the cells and their electrical properties.

Members of the OpenWorm project are also creating a general purpose neuronal simulator (for both electrical and physical simulations) which will have parallelism and native support for NeuroML built in from the start (see Geppetto).
OpenWorm
NeuGen


NeuGen is an application in Java which is able to generate networks of synaptically connected morphologically detailed neurons, as in a cortical column. NeuGen generates sets of neurons of the different morphological classes of the cortex, e.g. pyramidal cells and stellate neurons, and connects these networks in 3D.

The latest version of NeuGen can export the generated networks to NeuroML. Some manual editing of the generated files is required to make them valid. The developers have been informed of the required updates which will be incorporated soon.
NeuGen
LFPy


LFPy is a Python package for calculation of extracellular potentials from multicompartment neuron models. It relies on the NEURON simulator and uses the Python interface it provides. LFPy provides a set of easy to use Python classes for setting up the model, running simulations and calculating the extracellular potentials arising from activity in the model neuron.

Initial support for loading of NeuroML morphologies has been added.
LFPy
morphforge


morphforge is a high level, simulator independent, Python library for building simulations of small populations of multi-compartmental neurons. It was built as part of the PhD thesis of Mike Hull (Uni. Edinburgh): Investigating the role of electrical coupling in small populations of interneurons in Xenopus laevis tadpoles.

Loading of morphologies in MorphML format is supported, and loading of channel descriptions from ChannelML is in progress. Future development of morphforge will be closely aligned with the development of the multicompartmental modelling API in Python (libNeuroML).
morphforge
NeuroTranslate


NeuroTranslate is a tool that translates input files between two different languages, the NCS (Neo-Cortical Simulator) input language and NeuroML format. It provides a user-friendly interface, which can be used to both create and edit simulations.

There is also a YouTube video describing the application.
NeuroTranslate
Moogli


Moogli (a sister project of MOOSE) is a simulator independent OpenGL based visualization tool for neural simulations. Moogli can visualize morphology of single/multiple neurons or network of neurons, and can also visualize activity in these cells.

Loading of morphologies in MorphML and NeuroML formats is supported.
Moogli
CATMAID


CATMAID is the Collaborative Annotation Toolkit for Massive Amounts of Image Data, and is a widely used tool for online reconstruction and annotation of connectomics data.

Initial support for export of reconstructed neurons in NeuroML format has been added, see here.
CATMAID
Myokit


Myokit (the Maastricht Myocyte Toolkit) is a Python-based software package created by Michael Clerx to simplify the use of numerical models in the analysis of cardiac myocytes.

Initial support for importing ChannelML has been added, see here.
Myokit
Geppetto


Geppetto is a web-based multi-algorithm, multi-scale simulation platform designed to support the simulation of complex biological systems and their surrounding environment. It is open source and is being developed as part of the OpenWorm project to create an in-silico model of the nematode C. elegans.

It has had inbuilt support for NeuroML 2/LEMS from the start, and is suitable for many other types of neuronal models.

Geppetto

Planning support for NeuroML...

The following is a list of software applications which have included NeuroML support in their development roadmaps.

Please contact the developers directly to enquire about the latest status, or (better yet) with offers to help test or help implement NeuroML support.

NETMORPH


NETMORPH is a simulation environment for the developmental generation of 3D large-scale neuronal networks with realistic neuron morphologies. Export of generated cells and networks into NeuroML formats is planned in future versions. NETMORPH
NeuronStudio


Free neuronal reconstruction software from the Computational Neurobiology and Imaging Center at Mount Sinai School of Medicine. Support for MorphML export is planned for future releases. NETMORPH
Neuroptikon


Neuroptikon is a tool for visualizing and interacting with neural circuits and other types of networks, being developed at Janelia Farm. Support for importing cells and networks expressed in NeuroML is planned for future releases. Neuroptikon
NeuroRD


NeuroRD is a computationally efficient, neuronal reaction-diffusion stochastic simulator being developed by Robert Cannon and Avrama Blackwell. Neuronal morphologies based on NeuroML will be used to provide the structure of the 3D elements of the models. NeuroRD
Tweets
Website & Images Copyright NeuroML © 2014.
All rights reserved.