Skip to content

jessica-mitchell/nest-simulator

This branch is 172 commits behind nest/nest-simulator:master.

Folders and files

NameName
Last commit message
Last commit date
Aug 2, 2024
Sep 19, 2023
Dec 20, 2023
Mar 25, 2024
Aug 26, 2024
Sep 19, 2023
Jul 22, 2024
Mar 18, 2024
Aug 2, 2024
May 4, 2024
Feb 12, 2024
Jun 26, 2024
Jun 26, 2024
Jul 22, 2024
Jul 22, 2024
Sep 15, 2021
Nov 4, 2023
Nov 10, 2022
Mar 8, 2022
May 9, 2023
Dec 6, 2022
Nov 30, 2022
Jul 22, 2024
Nov 30, 2022
Oct 13, 2023
Nov 30, 2022
Mar 11, 2022
Jun 8, 2022
Feb 27, 2017
Feb 12, 2024
Nov 30, 2022
May 11, 2015
Jul 15, 2024
Nov 30, 2022
Apr 15, 2024
Nov 7, 2023
Sep 12, 2023
Mar 15, 2022
Aug 9, 2023
Jun 21, 2023
Jan 17, 2024
Jun 21, 2023
Oct 30, 2023
Nov 7, 2023
May 9, 2023

Repository files navigation

The Neural Simulation Tool - NEST

Documentation CII Best Practices OpenSSF Scorecard License DOI

Latest release GitHub contributors GitHub commit activity

Ubuntu version Fedora package Conda version Homebrew version Docker Image Version Virtual applicance

YouTube Video Views Twitter Follow

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 its homepage at https://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 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

Please see the online NEST Installation Instructions to find out how to install NEST.

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, developer documentation on Contributing to NEST is available.

Citing NEST

Please cite NEST if you use it in your work.

About

The NEST simulator

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 67.4%
  • Python 30.1%
  • CMake 1.7%
  • Other 0.8%