HOME

TheInfoList



OR:

NEST is a
simulation software Simulation software is based on the process of modeling a real phenomenon with a set of mathematical formulas. It is, essentially, a program that allows the user to observe an operation through simulation without actually performing that operation. ...
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.


Modeling philosophy

A NEST
simulation A simulation is the imitation of the operation of a real-world process or system over time. Simulations require the use of models; the model represents the key characteristics or behaviors of the selected system or process, whereas the ...
tries to follow the logic of an electrophysiological experiment that takes place inside a computer with the difference, that the
neural system In biology, the nervous system is the highly complex part of an animal that coordinates its actions and sensory information by transmitting signals to and from different parts of its body. The nervous system detects environmental changes ...
to be investigated must be defined by the experimenter. The neural system is defined by a possibly large number of
neurons A neuron, neurone, or nerve cell is an electrically excitable cell that communicates with other cells via specialized connections called synapses. The neuron is the main component of nervous tissue in all animals except sponges and placozoa. ...
and their
connections Connections may refer to: Television * '' Connections: An Investigation into Organized Crime in Canada'', a documentary television series * ''Connections'' (British documentary), a documentary television series and book by science historian Jam ...
. 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 In graph theory and computer science, an adjacency list is a collection of unordered lists used to represent a finite graph. Each unordered list within an adjacency list describes the set of neighbors of a particular vertex in the graph. This i ...
. 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 Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembered ...
or to file. NEST is extensible and new models for neurons, synapses, and devices can be added.


Example

The following example simulates spiking activity in a sparse random network with recurrent excitation and inhibition 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 Spike, spikes, or spiking may refer to: Arts, entertainment, and media Books * ''The Spike'' (novel), a novel by Arnaud de Borchgrave * ''The Spike'' (book), a nonfiction book by Damien Broderick * ''The Spike'', a starship in Peter F. Hamilto ...
of the respective neuron at a given time. The lower part of the figure shows a
histogram A histogram is an approximate representation of the distribution of numerical data. The term was first introduced by Karl Pearson. To construct a histogram, the first step is to " bin" (or " bucket") the range of values—that is, divide the ent ...
with the mean firing-rate of the neurons. import nest import nest.raster_plot J_ex = 0.1 # excitatory weight J_in = -0.5 # inhibitory weight p_rate = 20000. # external Poisson rate neuron_params= # Set parameters of neurons and devices nest.SetDefaults("iaf_psc_delta", neuron_params) nest.SetDefaults("poisson_generator", ) nest.SetDefaults("spike_detector", ) # Create neurons and devices nodes_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 models nest.CopyModel("static_synapse", "excitatory", ) nest.CopyModel("static_synapse", "inhibitory", ) # Connect the random net and instrument it with the devices nest.Connect(nodes_ex, nodes_ex+nodes_in, , "excitatory") nest.Connect(nodes_in, nodes_ex+nodes_in, , "inhibitory") nest.Connect(noise, nodes_ex+nodes_in, syn_spec="excitatory") nest.Connect(nodes_ex :51 espikes) # Simulate for 100. ms nest.Simulate(100.) # Plot results nest.raster_plot.from_device(espikes, hist=True) nest.raster_plot.show()


Features


Neuron models

*
Integrate-and-fire 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 millisecon ...
models with different types of synaptic currents or potentials *
Integrate-and-fire 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 millisecon ...
models with conductance based synapses * Single compartment
Hodgkin–Huxley model The Hodgkin–Huxley model, or conductance-based model, is a mathematical model that describes how action potentials in neurons are initiated and propagated. It is a set of nonlinear differential equations that approximates the electrical charac ...
s * Adaptive Exponential Integrate and Fire neuron (AdEx) * MAT2 neuron model


Network models

*
Random neural network The random neural network (RNN) is a mathematical representation of an interconnected network of neurons or cells which exchange spiking signals. It was invented by Erol Gelenbe and is linked to the G-network model of queueing networks as well ...
* Topological networks * Data-driven network models


Synapse models

* Static synapses with homogeneous or heterogeneous weight and delay. *
Spike-timing-dependent plasticity Spike-timing-dependent plasticity (STDP) is a biological process that adjusts the strength of connections between neurons in the brain. The process adjusts the connection strengths based on the relative timing of a particular neuron's output and in ...
* Short-term plasticity (Tsodyks & Markram synapses) * Neuromodulated synapses, using
Dopamine Dopamine (DA, a contraction of 3,4-dihydroxyphenethylamine) is a neuromodulatory molecule that plays several important roles in cells. It is an organic chemical of the catecholamine and phenethylamine families. Dopamine constitutes about 8 ...
.


Device models

* Spike detector * Multimeter for potentials, currents, etc. * AC, DC, and step current generators * Noise generators (Poisson, Gauss, Gamma) * Spike generators for replay of spikes


Accuracy

* NEST aims at high accuracy and precision of its simulations * Each neuron model has its appropriate solver and many models have unit tests. * If possible, exact integration is used. * By default, spikes fall onto the grid, defined by the simulation time-step. Some models support spike-exchange in continuous time.


Parallel and distributed simulation

* Support for multi-threaded simulation, using
OpenMP OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating sy ...
or
POSIX Threads POSIX Threads, commonly known as pthreads, is an execution model that exists independently from a language, as well as a parallel execution model. It allows a program to control multiple different flows of work that overlap in time. Each flow of ...
. * Support for hybrid multi-threaded and distributed simulation. * Parallelization is handled semi-automatically by NEST's simulation kernel. * Supra-linear to linear scaling for up to 10000 cores.Plesser H. E., Eppler J. M., Morrison A., Diesmann M., Gewaltig Marc-Oliver (2007) ''Efficient parallel simulation of large-scale neuronal networks on clusters of multiprocessor computers'' In
''Proc. of Euro-Par Parallel Processing 2007, Springer LNCS'' 4641:672-681
/ref>


Interoperability

* Interface to the Multi Simulator Coordinator, developed by the INCF. * Interface to the simulator independent simulation language PyNN.


History

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 The Weizmann Institute of Science ( he, מכון ויצמן למדע ''Machon Vaitzman LeMada'') is a public research university in Rehovot, Israel, established in 1934, 14 years before the State of Israel. It differs from other Israeli univ ...
in
Rehovot Rehovot ( he, רְחוֹבוֹת ''Rəḥōvōt'', ar, رحوڤوت ''Reḥūfūt'') is a city in the Central District of Israel, about south of Tel Aviv. In it had a population of . Etymology Israel Belkind, founder of the Bilu moveme ...
,
Israel Israel (; he, יִשְׂרָאֵל, ; ar, إِسْرَائِيل, ), officially the State of Israel ( he, מְדִינַת יִשְׂרָאֵל, label=none, translit=Medīnat Yīsrāʾēl; ), is a country in Western Asia. It is situated ...
. At this time, the simulator was called SYNOD and simulations were defined in a stack based simulation language, called SLI. 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 POSIX Threads, commonly known as pthreads, is an execution model that exists independently from a language, as well as a parallel execution model. It allows a program to control multiple different flows of work that overlap in time. Each flow of ...
and MPI. In 2008, the stack-based simulation language SLI was superseded by a modern Python interface, however, the old simulation language is still used internally. At the same time, the simulator independent specification language PyNN was developed with support for NEST.A. Davison, D. Brüderle, J. Eppler, J. Kremkow, E. Muller, D. Pecevski, L. Perrinet and P. Yger, PyNN: a common interface for neuronal network simulators, Front. Neuroinf. 2:11, 2009 In 2012, the NEST Initiative changed the license from the proprietary NEST License to
GNU GPL The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
V2 or later.


User interfaces

* NEST primary user interface is PyNEST, a Python package that controls the NEST simulation kernel. PyNEST aims at easy usability and seamless interaction with Python and its libraries. * PyNN is a simulator independent language for neural simulations, which supports NEST as well as
BRIAN Brian (sometimes spelled Bryan in English) is a male given name of Irish and Breton origin, as well as a surname of Occitan origin. It is common in the English-speaking world. It is possible that the name is derived from an Old Celtic word m ...
,
NEURON A neuron, neurone, or nerve cell is an membrane potential#Cell excitability, electrically excitable cell (biology), cell that communicates with other cells via specialized connections called synapses. The neuron is the main component of nervous ...
, as well as neuromorphic hardware. * NEST also maintains its own simulation language interpreter (SLI), which understands a simple
Stack-oriented programming language Stack-oriented programming, is a programming paradigm which relies on a stack machine model for passing parameters. Stack-oriented languages operate on one or more stacks, each of which may serve a different purpose. Programming constructs in ...
that is influenced by
PostScript PostScript (PS) is a page description language in the electronic publishing and desktop publishing realm. It is a dynamically typed, concatenative programming language. It was created at Adobe Systems by John Warnock, Charles Geschke, ...
.


See also

* Brian (software) *
Neuron (software) 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. Neuron models individual neurons via the use of sections that ar ...
*
GENESIS (software) GENESIS (The ''General Neural Simulation System'') 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 ne ...
*
Computational Neuroscience Computational neuroscience (also known as theoretical neuroscience or mathematical neuroscience) is a branch of  neuroscience which employs mathematical models, computer simulations, theoretical analysis and abstractions of the brain to ...
* MLDesigner * OMNeT++ *
QualNet QualNet is a testing and simulation tool owned and provided by Scalable Network Technologies, Inc. As network simulation software, it acts as a planning, testing, and training tool which mimics the behavior of a physical communications network. ...


References

{{Reflist


External links


Official websiteNest simulator
Computational biology Computational neuroscience Simulation software Scientific simulation software Science software Free science software