Welcome to the NESTML documentation
NESTML is a domain-specific language that supports the specification of neuron models in a precise and concise syntax. It was developed to address the maintainability issues that follow from an increasing number of models, model variants, and an increased model complexity in computational neuroscience. Our aim is to ease the modelling process for neuroscientists both with and without prior training in computer science. This is achieved without compromising on performance by automatic source-code generation, allowing the same model file to target different hardware or software platforms by changing only a command-line parameter. While originally developed in the context of NEST Simulator, the language itself as well as the associated toolchain are lightweight, modular and extensible, by virtue of using a parser generator and internal abstract syntax tree (AST) representation, which can be operated on using well-known patterns such as visitors and rewriting. Model equations can either be given as a simple string of mathematical notation or as an algorithm written in the built-in procedural language. The equations are analyzed by the associated toolchain ODE-toolbox, to compute an exact solution if possible or to invoke an appropriate numeric solver otherwise.
Model development with NESTML
Summary of language features and syntax
The NESTML language
Models library
Out of the box, use any of the neuron models that come packaged with NESTML, from standard integrate-and-fire varieties to a family of biophysical, Hodgkin-Huxley type neurons.
Several synaptic plasticity models, such as spike-timing dependent plasticity (STDP) and third-factor plasticity rules, can be found under Synapse models.
Tutorials
Writing neuron models
-
Learn how to write the Izhikevich spiking neuron model in NESTML.
-
Learn how to model a dendritic action potential in an existing NESTML neuron.
-
Implement the Ornstein-Uhlenbeck process in NESTML and use it to inject a noise current into a neuron.
Writing synapse models
-
An STDP window describes how the strength of the synapse changes as a function of the relative timing of pre- and postsynaptic spikes. Several different STDP model variants with different window functions are implemented.
-
A triplet STDP rule is sensitive to third-order correlations of pre- and postsynaptic spike times, and accounts better for experimentally seen dependence on timing and frequency.
NESTML language and toolchain development
PyNESTML is the Python-based toolchain for the NESTML language: it parses the model, invokes ODE-toolbox and performs code generation. Modify PyNESTML to add language elements such as new predefined functions, or to add new target platforms.
API documentation is automatically generated from source code: pynestml
module index
Internally, the ODE-toolbox Python package is used for the processing of differential equations.
Getting help
Report bugs and request features
NEST draws its strength from the many people that use and improve it. We are happy to consider your contributions (e.g., new models, bug or documentation fixes) for addition to the official version of NEST.
If you find an error in the code or documentation or want to suggest a feature, submit an issue on GitHub at https://github.com/nest/nestml.
Make sure to check that your issue has not already been reported there before creating a new one.
Mailing list
The NEST users mailing list is intended to be a forum for questions on the usage of NEST, the exchange of code and general discussions about NEST. The philosophy is that all users profit by sharing their experience. All NEST core developers are subscribed to this list and will participate in the discussions as far as time allows.
By subscribing to the mailing list you will also get notified of all NEST related events!
Before submitting a question, please take a look at our guidelines for the NEST mailing list.
Acknowledgements
This software was initially supported by the JARA-HPC Seed Fund NESTML - A modeling language for spiking neuron and synapse models for NEST and the Initiative and Networking Fund of the Helmholtz Association and the Helmholtz Portfolio Theme Simulation and Modeling for the Human Brain.
This software was developed in part or in whole in the Human Brain Project, funded from the European Union’s Horizon 2020 Framework Programme for Research and Innovation under Specific Grant Agreements No. 720270, No. 785907 and No. 945539 (Human Brain Project SGA1, SGA2 and SGA3).