The following is a list of software applications which currently support NeuroML (last updated: Jan 2020). 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
|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).
|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.
||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.|
||pyNeuroML = jNeuroML + extra Python tools + ...
A Python module that wraps jNeuroML and allows its functionality to be accessed from Python scripts. Includes a number of extra Python based utilities.
|NeuroML v1.x 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.
Other applications with NeuroML support
||NetPyNE is a Python package to facilitate the development, simulation, parallelization, analysis, and optimization of biological neuronal networks using the NEURON simulator. NetPyNE can import from and export to NeuroML. The NetPyNE Graphical User Interface allows people with no coding experience to develop, run, analyze, and export simulations of neuronal networks from their web browser.|
||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
Integration with jNeuroML and conversion of NeuroML v1.x based models to v2.0 is in active development.
||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.
||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
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
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.
||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.
||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
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.
||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
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.
|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.
||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.
||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.
||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.
||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.
|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).|
|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.
||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.
||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.|
||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).
||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.
||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.
||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.
||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.
|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.
||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).
||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.
||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.
||morphforge is a high level, simulator independent, Python library for building simulations of small populations of
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).
||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.
||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.
||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.
||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.
||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.
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 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.|
||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.|
||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.|
||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.|