Original author(s) | Markus Diesmann, Marc-Oliver Gewaltig, Abigail Morrison, Hans Ekkehard Plesser |
---|---|
Developer(s) | The NEST Initiative |
Initial release | 1 August 2004 |
Stable release | 3.3 / 22 March 2023 |
Repository | github |
Written in | C++, Python, Cython |
Operating system | cross-platform |
Available in | English |
Type | Computational Neuroscience |
License | GPLv2+ |
Website | www |
NEST is a simulation software for spiking neural network models, including large-scale neuronal networks. NEST was initially developed by Markus Diesmann and Marc-Oliver Gewaltig and is now developed and maintained by the NEST Initiative.
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.
The following example simulates spiking activity in a sparse random network with recurrent excitation and inhibition [1]
The figure shows the spiking activity of 50 neurons as a raster plot. Time increases along the horizontal axis, neuron id increases along the vertical axis. Each dot corresponds to a spike of the respective neuron at a given time. The lower part of the figure shows a histogram with the mean firing-rate of the neurons.
importnestimportnest.raster_plotJ_ex=0.1# excitatory weightJ_in=-0.5# inhibitory weightp_rate=20000.0# external Poisson rateneuron_params={"C_m":1.0,"tau_m":20.0,"t_ref":2.0,"E_L":0.0,"V_reset":0.0,"V_m":0.0,"V_th":20.0}# Set parameters of neurons and devicesnest.SetDefaults("iaf_psc_delta",neuron_params)nest.SetDefaults("poisson_generator",{"rate":p_rate})nest.SetDefaults("spike_detector",{"withtime":True,"withgid":True})# Create neurons and devicesnodes_ex=nest.Create("iaf_psc_delta",10000)nodes_in=nest.Create("iaf_psc_delta",2500)noise=nest.Create("poisson_generator")espikes=nest.Create("spike_detector")# Configure synapse modelsnest.CopyModel("static_synapse","excitatory",{"weight":J_ex,"delay":1.5})nest.CopyModel("static_synapse","inhibitory",{"weight":J_in,"delay":1.5})# Connect the random net and instrument it with the devicesnest.Connect(nodes_ex,nodes_ex+nodes_in,{"rule":'fixed_indegree',"indegree":1000},"excitatory")nest.Connect(nodes_in,nodes_ex+nodes_in,{"rule":'fixed_indegree',"indegree":250},"inhibitory")nest.Connect(noise,nodes_ex+nodes_in,syn_spec="excitatory")nest.Connect(nodes_ex[1:51],espikes)# Simulate for 100. msnest.Simulate(100.0)# Plot resultsnest.raster_plot.from_device(espikes,hist=True)nest.raster_plot.show()
NEST development was started in 1993 by Markus Diesmann and Marc-Oliver Gewaltig at the Ruhr University Bochum, Bochum, Germany and the Weizmann Institute of Science in Rehovot, Israel. At this time, the simulator was called SYNOD and simulations were defined in a stack based simulation language, called SLI. [7]
In 2001, the software changed its name from SYNOD to NEST. Until 2004, NEST was exclusively developed and used by the founding members of the NEST Initiative. The first public release appeared in summer 2004. Since then, NEST was released regularly, about once or twice per year.
Since 2007, NEST supports hybrid parallelism, using POSIX threads and MPI. [5]
In 2008, the stack-based simulation language SLI was superseded by a modern Python interface, however, the old simulation language is still used internally. [8] At the same time, the simulator independent specification language PyNN was developed with support for NEST. [9] In 2012, the NEST Initiative changed the license from the proprietary NEST License to GNU GPL V2 or later.
Computational neuroscience is a branch of neuroscience which employs mathematical models, computer simulations, theoretical analysis and abstractions of the brain to understand the principles that govern the development, structure, physiology and cognitive abilities of the nervous system.
In neuroscience, an excitatory postsynaptic potential (EPSP) is a postsynaptic potential that makes the postsynaptic neuron more likely to fire an action potential. This temporary depolarization of postsynaptic membrane potential, caused by the flow of positively charged ions into the postsynaptic cell, is a result of opening ligand-gated ion channels. These are the opposite of inhibitory postsynaptic potentials (IPSPs), which usually result from the flow of negative ions into the cell or positive ions out of the cell. EPSPs can also result from a decrease in outgoing positive charges, while IPSPs are sometimes caused by an increase in positive charge outflow. The flow of ions that causes an EPSP is an excitatory postsynaptic current (EPSC).
A neural circuit is a population of neurons interconnected by synapses to carry out a specific function when activated. Multiple neural circuits interconnect with one another to form large scale brain networks.
Basket cells are inhibitory GABAergic interneurons of the brain, found throughout different regions of the cortex and cerebellum.
Neural oscillations, or brainwaves, are rhythmic or repetitive patterns of neural activity in the central nervous system. Neural tissue can generate oscillatory activity in many ways, driven either by mechanisms within individual neurons or by interactions between neurons. In individual neurons, oscillations can appear either as oscillations in membrane potential or as rhythmic patterns of action potentials, which then produce oscillatory activation of post-synaptic neurons. At the level of neural ensembles, synchronized activity of large numbers of neurons can give rise to macroscopic oscillations, which can be observed in an electroencephalogram. Oscillatory activity in groups of neurons generally arises from feedback connections between the neurons that result in the synchronization of their firing patterns. The interaction between neurons can give rise to oscillations at a different frequency than the firing frequency of individual neurons. A well-known example of macroscopic neural oscillations is alpha activity.
Neurotransmission is the process by which signaling molecules called neurotransmitters are released by the axon terminal of a neuron, and bind to and react with the receptors on the dendrites of another neuron a short distance away. A similar process occurs in retrograde neurotransmission, where the dendrites of the postsynaptic neuron release retrograde neurotransmitters that signal through receptors that are located on the axon terminal of the presynaptic neuron, mainly at GABAergic and glutamatergic synapses.
Computational neurogenetic modeling (CNGM) is concerned with the study and development of dynamic neuronal models for modeling brain functions with respect to genes and dynamic interactions between genes. These include neural network models and their integration with gene network models. This area brings together knowledge from various scientific disciplines, such as computer and information science, neuroscience and cognitive science, genetics and molecular biology, as well as engineering.
Spiking neural networks (SNNs) are artificial neural networks that more closely mimic natural neural networks. In addition to neuronal and synaptic state, SNNs incorporate the concept of time into their operating model. The idea is that neurons in the SNN do not transmit information at each propagation cycle, but rather transmit information only when a membrane potential—an intrinsic quality of the neuron related to its membrane electrical charge—reaches a specific value, called the threshold. When the membrane potential reaches the threshold, the neuron fires, and generates a signal that travels to other neurons which, in turn, increase or decrease their potentials in response to this signal. A neuron model that fires at the moment of threshold crossing is also called a spiking neuron model.
Neuron is a simulation environment for modeling individual and networks of neurons. It was primarily developed by Michael Hines, John W. Moore, and Ted Carnevale at Yale and Duke.
GENESIS is a simulation environment for constructing realistic models of neurobiological systems at many levels of scale including: sub-cellular processes, individual neurons, networks of neurons, and neuronal systems. These simulations are “computer-based implementations of models whose primary objective is to capture what is known of the anatomical structure and physiological characteristics of the neural system of interest”. GENESIS is intended to quantify the physical framework of the nervous system in a way that allows for easy understanding of the physical structure of the nerves in question. “At present only GENESIS allows parallelized modeling of single neurons and networks on multiple-instruction-multiple-data parallel computers.” Development of GENESIS software spread from its home at Caltech to labs at the University of Texas at San Antonio, the University of Antwerp, the National Centre for Biological Sciences in Bangalore, the University of Colorado, the Pittsburgh Supercomputing Center, the San Diego Supercomputer Center, and Emory University.
Biological neuron models, also known as a spiking neuron models, are mathematical descriptions of the properties of certain cells in the nervous system that generate sharp electrical potentials across their cell membrane, roughly one millisecond in duration, called action potentials or spikes. Since spikes are transmitted along the axon and synapses from the sending neuron to many other neurons, spiking neurons are considered to be a major information processing unit of the nervous system. Spiking neuron models can be divided into different categories: the most detailed mathematical models are biophysical neuron models that describe the membrane voltage as a function of the input current and the activation of ion channels. Mathematically simpler are integrate-and-fire models that describe the membrane voltage as a function of the input current and predict the spike times without a description of the biophysical processes that shape the time course of an action potential. Even more abstract models only predict output spikes as a function of the stimulation where the stimulation can occur through sensory input or pharmacologically. This article provides a short overview of different spiking neuron models and links, whenever possible to experimental phenomena. It includes deterministic and probabilistic models.
MUSIC is software developed and released by the INCF and Royal Institute of Technology (KTH) School of Computer Science and Communication in Stockholm, Sweden. MUSIC is designed for interconnecting large scale neuronal network simulators, either with each other or with other tools. It allows spike events and continuous time series to be communicated between such applications in a cluster computer. The typical usage cases are connecting models developed for different simulators and connecting a parallel simulator to a post-processing tool.
Brain simulation is the concept of creating a functioning computer model of a brain or part of a brain. Brain simulation projects intend to contribute to a complete understanding of the brain, and eventually also assist the process of treating and diagnosing brain diseases.
Brian is an open source Python package for developing simulations of networks of spiking neurons.
Models of neural computation are attempts to elucidate, in an abstract and mathematical fashion, the core principles that underlie information processing in biological nervous systems, or functional components thereof. This article aims to provide an overview of the most definitive models of neuro-biological computation as well as the tools commonly used to construct and analyze them.
Non-spiking neurons are neurons that are located in the central and peripheral nervous systems and function as intermediary relays for sensory-motor neurons. They do not exhibit the characteristic spiking behavior of action potential generating neurons.
Network of human nervous system comprises nodes that are connected by links. The connectivity may be viewed anatomically, functionally, or electrophysiologically. These are presented in several Wikipedia articles that include Connectionism, Biological neural network, Artificial neural network, Computational neuroscience, as well as in several books by Ascoli, G. A. (2002), Sterratt, D., Graham, B., Gillies, A., & Willshaw, D. (2011), Gerstner, W., & Kistler, W. (2002), and Rumelhart, J. L., McClelland, J. L., and PDP Research Group (1986) among others. The focus of this article is a comprehensive view of modeling a neural network. Once an approach based on the perspective and connectivity is chosen, the models are developed at microscopic, mesoscopic, or macroscopic (system) levels. Computational modeling refers to models that are developed using computing tools.
An autapse is a chemical or electrical synapse from a neuron onto itself. It can also be described as a synapse formed by the axon of a neuron on its own dendrites, in vivo or in vitro.
OpenWorm is an international open science project for the purpose of simulating the roundworm Caenorhabditis elegans at the cellular level. Although the long-term goal is to model all 959 cells of the C. elegans, the first stage is to model the worm's locomotion by simulating the 302 neurons and 95 muscle cells. This bottom up simulation is being pursued by the OpenWorm community.
Brain cells make up the functional tissue of the brain. The rest of the brain tissue is structural or connective called the stroma which includes blood vessels. The two main types of cells in the brain are neurons, also known as nerve cells, and glial cells also known as neuroglia.