The concept of NeuroML was first introduced in an article by Goddard et al. (2001), following meetings at the University of Edinburgh
where initial templates for the model description language structures were discussed. The proposal extended general purpose structures
for neuroscience data proposed by Gardner et al. (2001).
At that time, the design principles for NeuroML were closely linked with a specific software architecture in which a base application loads a range of plugins to handle different aspects of a simulation experiment. The simulation platform Neosim provided an implementation of this approach (Howell et al. 2003), and early NeuroML development was closely aligned to this architechture. Fred Howell and Robert Cannon developed a software library, the NeuroML Development Kit (NDK), to simplify the process of working with XML serializations of models. This library implemented a particular dialect of XML but did not define particular structures at the model description level. Instead, Neosim plugin developers were free to develop their own structures and serialize them via the NDK, in the hope that some consensus would emerge around the most useful ones. In practice, few developers beyond the Edinburgh group developed or used such structures and the resulting XML was too application specific to gain wider adoption. The Neosim project was completed in 2005.
Based on discussions with Howell and Cannon about the need to develop a consensus for describing widely used model components, Sharon Crook worked with the neuroanatomy community on a language for describing neuronal morphologies in XML, MorphML (Qi and Crook 2004). At the same time, Padraig Gleeson working with Angus Silver was developing neuroConstruct, for generating neuronal simulations for the NEURON and GENESIS simulators (Gleeson et al. 2007), which had its own internal simulator independent representation for morphologies, channel and networks. It was agreed that these efforts should be merged under the banner of NeuroML, and the v1.x structure of NeuroML was created. A modular approach containing MorphML, ChannelML and NetworkML was adopted to allow application developers to support only those parts of the language needed by their application (Crook et al. 2007, Gleeson et al. 2010). XML schema files for this version of the standard have been available since 2006. The motivation, structure and functionality of this version is described in Gleeson et al. 2010, while the specification of the language is outlined in the Supporting Information of that publication.
NeuroML v2.0 has been under development since 2011. The main motivation for v2.0 was the lack of extensibility of NeuroML v1.x; every new model type which was introduced into the language required an update to the Schema, updates to the text documentation and an implementation in each of the native formats of the target simulators. NeuroML v2.0 is built on the LEMS (Low Entropy Model Specification) language, which allows machine readable definitions of the cell, channel and synapse models which form the core of the language. This increases transparency of model structure and dynamics and facilitates automatic mapping of the models to multiple simulation formats. More details on the structure of LEMS and how it is used in NeuroML v2.0 can be found in Cannon et al. 2014 and here. In parallel with development of NeuroML v2.0 and LEMS, software libraries for reading, writing and running simulations using the languages are under active development in Java and Python (Vella et al. 2014).
- Cannon, R.C., Gleeson, P., Crook, S., Ganapathy, G., Marin, B., Piasini, E. and Silver, R.A. (2014) LEMS: A language for expressing complex biological models in concise and hierarchical form and its use in underpinning NeuroML 2, Frontiers in Neuroinformatics 8: 79.
- Crook, S., P. Gleeson, F. Howell, J. Svitak and R.A. Silver (2007) MorphML: Level 1 of the NeuroML standards for neuronal morphology data and model specification. Neuroinformatics.5(2):96-104.
- Gardner, D., K. H. Knuth, M. Abato, S. M. Erde, T. White, R. DeBellis, E. P. Gardner (2001) Common data model for neuroscience data and data model exchange. Journal of American Medical Informatics Association. 8:17-33.
- Gleeson, P., V. Steuber, and R. A. Silver (2007) neuroConstruct: A Tool for Modeling Networks of Neurons in 3D Space. Neuron. 54(2):219-235.
- Gleeson, P., S. Crook, R. C. Cannon, M. L. Hines, G. O. Billings, et al. (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): e1000815.
- Goddard, N., M. Hucka, F. Howell, H. Cornelis, K. Shankar and D. Beeman (2001) Towards NeuroML: Model description methods for collaborative modeling in neuroscience. Philosophical Transactions of the Royal Society B. 356:1209-1228.
- Howell, F., R. Cannon, N. Goddard, H. Bringmann, P. Rogister and H. Cornelis (2003) Linking computational neuroscience simulation tools: A pragmatic approach to component-based development. Neurocomputing. 52-54:289-294.
- Qi, W. and S. Crook (2004) Tools for neuroinformatic data exchange: An XML application for neuronal morphology data. Neurocomputing. 58-60C:1091-1095.
- Vella, M., Cannon, R.C., Crook, S., Davison, A.P., Ganapathy, G., Robinson, H.P., Silver, R.A. and Gleeson, P. (2014) libNeuroML and PyLEMS: using Python to combine procedural and declarative modeling approaches in computational neuroscience. Frontiers in Neuroinformatics 8: 38.