The NEST simulator
C++ Python Emacs Lisp CMake TeX Shell Other
Latest commit 671aa5b Feb 15, 2017 @jougs jougs committed on GitHub Merge pull request #654 from mhoff/master
Add PyNEST binding for MUSIC's SetMaxBuffered
Permalink
Failed to load latest commit information.
cmake Removed obsolete file Jan 28, 2017
conngen Rename NEST_INSTALL ... May 9, 2016
debian Initial commit. Based on NEST 2.6.1 May 11, 2015
doc Make process creates complete help including indices in build_dir/doc… Jan 30, 2017
examples Remove unnecessary 0 GetStatus calls from hpc benchmark Feb 13, 2017
extras Make process creates complete help including indices in build_dir/doc… Jan 30, 2017
lib Merge remote-tracking branch 'github.com/nest/nest-simulator.git/master' Jan 23, 2017
libnestutil Made requested changes. Jan 2, 2017
librandom Merge branch 'master' of https://github.com/nest/nest-simulator into … Jan 23, 2017
models Merge pull request #626 from stinebuu/fix558_deprecated_examples_and_… Jan 15, 2017
nest Merge branch 'master' of https://github.com/nest/nest-simulator into … Jan 23, 2017
nestkernel Merge pull request #656 from janhahne/event_fix Feb 9, 2017
precise Neuron models can now be marked as deprecated in register_node_model(… Dec 12, 2016
pynest Rework music-related SLI calls in pynest bindings. Feb 7, 2017
sli Merge branch 'master' of https://github.com/nest/nest-simulator into … Jan 23, 2017
testsuite Merge branch 'master' of https://github.com/nest/nest-simulator into … Jan 23, 2017
topology Merge branch 'master' of https://github.com/nest/nest-simulator into … Jan 23, 2017
.clang-format Change column width to 80. Apr 4, 2016
.gitignore Removed duplicate *.pyc from gitignore. Dec 13, 2016
.mention-bot merged with master Nov 2, 2016
.travis.yml Added two new matrix jobs: Python:ON,Threading:ON; Python:ON,MPI:ON Jan 26, 2017
CMakeLists.txt Separate generation and installation of SLI help Jan 26, 2017
CONTRIBUTING.md Improve section heading Nov 17, 2016
INSTALL Updated INSTALL file for OSX. Jan 4, 2017
LICENSE Initial commit. Based on NEST 2.6.1 May 11, 2015
NEWS Updated information on bug reporting and references to the online res… Aug 18, 2015
README.md Adjustment of the citation for: Aug 16, 2016
build.sh Add vera++ profile file to extras and make build.sh use that Nov 22, 2016

README.md

The Neural Simulation Tool - NEST Build Status

NEST is a simulator for spiking neural network models that focuses on the dynamics, size and structure of neural systems rather than on the exact morphology of individual neurons. The development of NEST is coordinated by the NEST Initiative. General information on the NEST Initiative, can be found at it's homepage at http://www.nest-initiative.org.

NEST is ideal for networks of spiking neurons of any size, for example:

  • Models of information processing e.g. in the visual or auditory cortex of mammals,
  • Models of network activity dynamics, e.g. laminar cortical networks or balanced random networks,
  • Models of learning and plasticity.

For copyright information please refer to the LICENSE file and to the information header in the source files.

How do I use NEST?

You can use NEST either via Python (PyNEST) or as a stand alone application (nest). PyNEST provides a set of commands to the Python interpreter which give you access to NEST's simulation kernel. With these commands, you describe and run your network simulation. You can also complement PyNEST with PyNN, a simulator-independent set of Python commands to formulate and run neural simulations. While you define your simulations in Python, the actual simulation is executed within NEST's highly optimized simulation kernel which is written in C++.

A NEST simulation tries to follow the logic of an electrophysiological experiment that takes place inside a computer with the difference, that the neural system to be investigated must be defined by the experimenter.

The neural system is defined by a possibly large number of neurons and their connections. In a NEST network, different neuron and synapse models can coexist. Any two neurons can have multiple connections with different properties. Thus, the connectivity can in general not be described by a weight or connectivity matrix but rather as an adjacency list.

To manipulate or observe the network dynamics, the experimenter can define so-called devices which represent the various instruments (for measuring and stimulation) found in an experiment. These devices write their data either to memory or to file.

NEST is extensible and new models for neurons, synapses, and devices can be added.

To get started with NEST, please see the Documentation Page for Tutorials.

Why should I use NEST?

To learn more about the capabilities of NEST, please read the complete feature summary.

  • NEST provides over 50 neuron models many of which have been published. Choose from simple integrate-and-fire neurons with current or conductance based synapses, over the Izhikevich or AdEx models, to Hodgkin-Huxley models.
  • NEST provides over 10 synapse models, including short-term plasticity (Tsodyks & Markram) and different variants of spike-timing dependent plasticity (STDP).
  • NEST provides many examples that help you getting started with your own simulation project.
  • NEST offers convenient and efficient commands to define and connect large networks, ranging from algorithmically determined connections to data-driven connectivity.
  • NEST lets you inspect and modify the state of each neuron and each connection at any time during a simulation.
  • NEST is fast and memory efficient. It makes best use of your multi-core computer and compute clusters with minimal user intervention.
  • NEST runs on a wide range of UNIX-like systems, from MacBooks to BlueGene supercomputers.
  • NEST has minimal dependencies. All it really needs is a C++ compiler. Everything else is optional.
  • NEST developers are using agile continuous integration-based workflows in order to maintain high code quality standards for correct and reproducible simulations.
  • NEST has one of the largest and most experienced developer communities of all neural simulators. NEST was first released in 1994 under the name SYNOD and has been extended and improved ever since.

License

NEST is open source software and is licensed under the GNU General Public License v2 or later.

Installing NEST

Generic installation instructions can be found in the INSTALL file that you received in the NEST sources.

Getting help

  • You can run the help command in the NEST interpreter to find documentation and learn more about available commands.
  • For queries regarding NEST usage, please use the nest-users mailing list.
  • Information on the Python bindings to NEST can be found in ${prefix}/share/doc/nest/README.md.
  • For those looking to extend NEST a developer manual is available.

Citing NEST

Please cite NEST if you use it in your work. If you use this version of NEST, please cite it as Bos, Hannah et al. (2015). NEST 2.10.0. Zenodo. 10.5281/zenodo.44222. The full citation is available in different formats on Zenodo.

Here is a suitable BibTeX entry:

@misc{bos_2015_44222,
  author       = {Bos, Hannah and
                  Morrison, Abigail and
                  Peyser, Alexander and
                  Hahne, Jan and
                  Helias, Moritz and
                  Kunkel, Susanne and
                  Ippen, Tammo and
                  Eppler, Jochen Martin and
                  Schmidt, Maximilian and
                  Seeholzer, Alex and
                  Djurfeldt, Mikael and
                  Diaz, Sandra and
                  Morén, Janne and
                  Deepu, Rajalekshmi and
                  Stocco, Teo and
                  Deger, Moritz and
                  Michler, Frank and
                  Plesser, Hans Ekkehard},
  title        = {NEST 2.10.0},
  month        = dec,
  year         = 2015,
  doi          = {10.5281/zenodo.44222},
  url          = {http://dx.doi.org/10.5281/zenodo.44222}
}

If you use NEST v2.8.0, please cite it as Eppler, Jochen Martin et al. (2015). NEST 2.8.0. Zenodo. 10.5281/zenodo.32969. The full citation is available in different formats on Zenodo.

For all other versions below NEST v2.8.0 please use: Gewaltig M-O & Diesmann M (2007) NEST (Neural Simulation Tool) Scholarpedia 2(4):1430.

Here is a suitable BibTeX entry:

@ARTICLE{Gewaltig:NEST,
  author = {Marc-Oliver Gewaltig and Markus Diesmann},
  title = {NEST (NEural Simulation Tool)},
  journal = {Scholarpedia},
  year = {2007},
  volume = {2},
  pages = {1430},
  number = {4}
}

Please get in touch with us about your publications that used NEST, we will add it to our publication list, thus making it visible to potential readers.

Editor support

Emacs users may use the SLI mode, which provides syntax highlighting for SLI. To install it, add the following lines to your .emacs file:

  (load-library "${prefix}/share/nest/extras/EditorSupport/emacs/postscript-sli")
  (load-library "${prefix}/share/nest/extras/EditorSupport/emacs/sli")

A simple syntax file for VIM users has been provided. Copy it to your vim configuration folder to make it available to VIM:

    $ cp ${prefix}/share/nest/extras/EditorSupport/vim/syntax/sli.vim ~/.vim/syntax/sli.vim

Then add the following lines to your ~/.vimrc file to use it:

    " sli
    au BufRead,BufNewFile *.sli set filetype=sli
    au FileType sli setl foldenable foldmethod=syntax