Brian (software)
   HOME

TheInfoList



OR:

Brian is an open source
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
package for developing simulations of networks of spiking neurons.


Details

Brian is aimed at researchers developing models based on networks of
spiking neuron 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 neuron ...
s. The general design is aimed at maximising flexibility, simplicity and users' development time.Goodman and Brette 2009 Users specify neuron models by giving their differential equations in standard mathematical form as strings, create groups of neurons and connect them via synapses. This is in contrast to the approach taken by many neural simulators in which users select from a predefined set of neuron models. Brian is written in Python. Computationally, it is based around the concept of code generation: users specify the model in Python but behind the scenes Brian generates, compiles and runs code in one of several languages (including Python, Cython and C++). In addition there is a "standalone" mode in which Brian generates an entire C++ source code tree with no dependency on Brian, allowing models to be run on platforms where Python is not available.


Example

The following code defines, runs and plots a randomly connected network of leaky integrate and fire neurons with exponential inhibitory and excitatory currents. from brian2 import * eqs = """ dv/dt = (ge+gi-(v+49*mV))/(20*ms) : volt dge/dt = -ge/(5*ms) : volt dgi/dt = -gi/(10*ms) : volt """ P = NeuronGroup(4000, eqs, threshold="v>-50*mV", reset="v=-60*mV") P.v = -60 * mV Pe = P 3200Pi = P 200:Ce = Synapses(Pe, P, on_pre="ge+=1.62*mV") Ce.connect(p=0.02) Ci = Synapses(Pi, P, on_pre="gi-=9*mV") Ci.connect(p=0.02) M = SpikeMonitor(P) run(1 * second) plot(M.t / ms, M.i, ".") show()


Comparison to other simulators

Brian is primarily, although not solely, aimed at single compartment neuron models. Simulators focused on multi-compartmental models include
Neuron 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. N ...
,
GENESIS Genesis may refer to: Bible * Book of Genesis, the first book of the biblical scriptures of both Judaism and Christianity, describing the creation of the Earth and of mankind * Genesis creation narrative, the first several chapters of the Book of ...
, and its derivatives. The focus of Brian is on flexibility and ease of use, and only supports simulations running on a single machine. The
NEST A nest is a structure built for certain animals to hold eggs or young. Although nests are most closely associated with birds, members of all classes of vertebrates and some invertebrates construct nests. They may be composed of organic materia ...
simulator includes facilities for distributing simulations across a cluster.


Footnotes


References

* Goodman, D. and Brette, R. (2008)
"Brian: a simulator for spiking neural networks in Python"
''Front. Neuroinform.'' 2:5. * Goodman, D.F.M. and Brette, R. (2009)
"The Brian simulator"
''Front. Neurosci.''


External links


Brian homepage
Computational neuroscience Scientific simulation software Free science software Neuroscience software {{science-software-stub