Brian 2, an Intuitive and Efficient Neural Simulator Marcel Stimberg1*, Romain Brette1†, Dan FM Goodman2†
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Modeling Neuron–Glia Interactions with the Brian 2 Simulator
bioRxiv preprint doi: https://doi.org/10.1101/198366; this version posted October 5, 2017. The copyright holder for this preprint (which was not certified by peer review) is the author/funder, who has granted bioRxiv a license to display the preprint in perpetuity. It is made available under aCC-BY 4.0 International license. Modeling neuron{glia interactions with the Brian 2 simulator Marcel Stimberg Sorbonne Universit´es,UPMC Univ Paris 06, INSERM, CNRS, Institut de la Vision, Paris, France Dan F. M. Goodman Department of Electrical and Electronic Engineering, Imperial College London, London, United Kingdom Romain Brette Sorbonne Universit´es,UPMC Univ Paris 06, INSERM, CNRS, Institut de la Vision, Paris, France Maurizio De Pitt`a Depts. of Statistics and Neurobiology, The University of Chicago, Chicago, USA Team BEAGLE, INRIA Rh^one-Alpes, Villeurbanne, France October 5, 2017 Abstract Despite compelling evidence that glial cells could crucially regulate neural network ac- tivity, the vast majority of available neural simulators ignores the possible contribution of glia to neuronal physiology. Here, we show how to model glial physiology and neuron-glia interactions in the Brian 2 simulator. Brian 2 offers facilities to explicitly describe any model in mathematical terms with limited and simple simulator-specific syntax, automati- cally generating high-performance code from the user-provided descriptions. The flexibility of this approach allows us to model not only networks of neurons, but also individual glial cells, electrical coupling of glial cells, and the interaction between glial cells and synapses. We therefore conclude that Brian 2 provides an ideal platform to efficiently simulate glial physiology, and specifically, the influence of astrocytes on neural activity. -
Brian 2: an Intuitive and Efficient Neural Simulator
bioRxiv preprint doi: https://doi.org/10.1101/595710; this version posted April 1, 2019. The copyright holder for this preprint (which was not certified by peer review) is the author/funder, who has granted bioRxiv a license to display the preprint in perpetuity. It is made available under aCC-BY 4.0 International license. Brian 2: an intuitive and efficient neural simulator Marcel Stimberg1*, Romain Brette1, and Dan F. M. Goodman2 1Sorbonne Université, INSERM, CNRS, Institut de la Vision, Paris, France 2Department of Electrical and Electronic Engineering, Imperial College London, UK Abstract To be maximally useful for neuroscience research, neural simulators must make it possible to define original models. This is especially important because a computational experiment might not only need descriptions of neurons and synapses, but also models of interactions with the environment (e.g. muscles), or the environment itself. To preserve high performance when defining new models, current simulators offer two options: low-level programming, or mark-up languages (and other domain specific languages). The first option requires time and expertise, is prone to errors, and contributes to problems with reproducibility and replicability. The second option has limited scope, since it can only describe the range of neural models covered by the ontology. Other aspects of a computational experiment, such as the stimulation protocol, cannot be expressed within this framework. “Brian” 2 is a complete rewrite of Brian that addresses this issue by using runtime code generation with a procedural equation-oriented approach. Brian 2 enables scientists to write code that is particularly simple and concise, closely matching the way they conceptualise their models, while the technique of runtime code generation automatically transforms high level descriptions of models into efficient low level code tailored to different hardware (e.g. -
Brian 2, an Intuitive and Efficient Neural Simulator Marcel Stimberg1*, Romain Brette1†, Dan FM Goodman2†
TOOLS AND RESOURCES Brian 2, an intuitive and efficient neural simulator Marcel Stimberg1*, Romain Brette1†, Dan FM Goodman2† 1Sorbonne Universite´, INSERM, CNRS, Institut de la Vision, Paris, France; 2Department of Electrical and Electronic Engineering, Imperial College London, London, United Kingdom Abstract Brian 2 allows scientists to simply and efficiently simulate spiking neural network models. These models can feature novel dynamical equations, their interactions with the environment, and experimental protocols. To preserve high performance when defining new models, most simulators offer two options: low-level programming or description languages. The first option requires expertise, is prone to errors, and is problematic for reproducibility. The second option cannot describe all aspects of a computational experiment, such as the potentially complex logic of a stimulation protocol. Brian addresses these issues using runtime code generation. Scientists write code with simple and concise high-level descriptions, and Brian transforms them into efficient low-level code that can run interleaved with their code. We illustrate this with several challenging examples: a plastic model of the pyloric network, a closed-loop sensorimotor model, a programmatic exploration of a neuron model, and an auditory model with real-time input. DOI: https://doi.org/10.7554/eLife.47314.001 *For correspondence: Introduction [email protected] Neural simulators are increasingly used to develop models of the nervous system, at different scales and in a variety of contexts (Brette et al., 2007). These simulators generally have to find a trade-off †These authors contributed equally to this work between performance and the flexibility to easily define new models and computational experi- ments. -
Spike-Based Models of Neural Computation
Spike-based models of neural computation Romain Brette December 2009 M´emoired'Habilitation `aDiriger des Recherches Jury Nicolas Brunel (Universit´eParis V) Vincent Hakim (Ecole Normale Sup´erieure,Paris) Claude Meunier (Universit´eParis V) Walter Senn (Universit´ede Berne, Suisse) Simon Thorpe (Universit´ePaul Sabatier, Toulouse) Abstract Neurons compute mainly with action potentials or \spikes", which are stereotypical electrical impulses. Over the last century, the operating func- tion of neurons has been mainly described in terms of firing rates, with the timing of spikes bearing little information. More recently, experimental ev- idence and theoretical studies have shown that the relative spike timing of inputs has an important effect both on computation and learning in neurons. This evidence has triggered considerable interest for spiking neuron models in computational neuroscience, but the theory of computation in those models is sparse. Spiking neuron models are hybrid dynamical systems, combining differ- ential equations and discrete events. I have developed specific theoretical approaches to study this particular type of models. In particular, two spe- cific properties seem to be relevant for computation: spiking models can encode time-varying inputs into trains of precisely timed spikes, and they are more likely fire to when input spike trains are tightly correlated. To simulate spiking models efficiently, we have developed specific techniques, which can now be used in an open source simulator (Brian). These theoretical and methodological investigations now allow us to ad- dress spike-based modeling at a more global and functional level. Since the mechanisms of synaptic plasticity tend to favor synchronous inputs, I pro- pose to investigate computational mechanisms based on neural synchrony in sensory modalities. -
Code Generation in Computational Neuroscience: a Review of Tools and Techniques
Code generation in computational neuroscience: a review of tools and techniques Article (Published Version) Blundell, Inga, Brette, Romain, Cleland, Thomas A, Close, Thomas G, Coca, Daniel, Davison, Andrew P, Diaz-Pier, Sandra, Fernandez Musoles, Carlos, Gleeson, Padraig, Goodman, Dan F M, Hines, Michael, Hopkins, Michael W, Kumbhar, Pramod, Lester, David R, Marin, Boris et al. (2018) Code generation in computational neuroscience: a review of tools and techniques. Frontiers in Neuroinformatics, 12 (68). pp. 1-35. ISSN 1662-5196 This version is available from Sussex Research Online: http://sro.sussex.ac.uk/id/eprint/79306/ This document is made available in accordance with publisher policies and may differ from the published version or from the version of record. If you wish to cite this item you are advised to consult the publisher’s version. Please see the URL above for details on accessing the published version. Copyright and reuse: Sussex Research Online is a digital repository of the research output of the University. Copyright and all moral rights to the version of the paper presented here belong to the individual author(s) and/or other copyright owners. To the extent reasonable and practicable, the material made available in SRO has been checked for eligibility before being made available. Copies of full text items generally can be reproduced, displayed or performed and given to third parties in any format or medium for personal research or study, educational, or not-for-profit purposes without prior permission or charge, provided that the authors, title and full bibliographic details are credited, a hyperlink and/or URL is given for the original metadata page and the content is not changed in any way. -
NEURON + Threads Simulations on Multicore Desktops
The NEURON Simulation Environment Didactic Presentations NEURON + Threads Simulations on multicore desktops. Copyright © 1998-2016 N.T. Carnevale and M.L. Hines, all rights reserved Page 161 Didactic Presentations The NEURON Simulation Environment Thread style in NEURON Join run() { while (t < tstop) { multithread_job(step) plot() } } void* step(NrnThread* nt) { ... nt−>id ... } We never use. Condition Wait multithread_job(run) run(NrnThread* nt) { while(t < tstop) { step(nt) barrier() if (nt−>id == 0) { plot() } barrier() } } Reminiscent of MPI Fixed step: t −> t + dt STRBUG setup triangreduce bksub update cond solve gates SBUGT SUGTB ST R B UG Global var dt y’ = f() dy’/dy 27 ||Vector operations Page 162 Copyright © 1998-2016 N.T. Carnevale and M.L. Hines, all rights reserved The NEURON Simulation Environment Didactic Presentations Ideal cache efficiency ... ... CPU 1 ... ... cache line 8 or 16 doubles ... ... CPU 2 Runtime (s) Cache Efficiency Threads Off On 1 4.92 0.45 2 1.14 0.23 10000 passive compartments 4 core 3GHz x86_64 4 0.29 0.12 8 0.23 0.09 Copyright © 1998-2016 N.T. Carnevale and M.L. Hines, all rights reserved Page 163 Didactic Presentations The NEURON Simulation Environment Page 164 Copyright © 1998-2016 N.T. Carnevale and M.L. Hines, all rights reserved The NEURON Simulation Environment Didactic Presentations Copyright © 1998-2016 N.T. Carnevale and M.L. Hines, all rights reserved Page 165 Didactic Presentations The NEURON Simulation Environment Page 166 Copyright © 1998-2016 N.T. Carnevale and M.L. Hines, all rights reserved -
The Brian Simulator
FOCUSED REVIEW published: 15 September 2009 doi: 10.3389/neuro.01.026.2009 The Brian simulator Dan F. M. Goodman1,2* and Romain Brette1,2* 1 Laboratoire Psychologie de la Perception, CNRS and Université Paris Descartes, Paris, France 2 Département d’Etudes Cognitives, Ecole Normale Supérieure, Paris, France “Brian” is a simulator for spiking neural networks (http://www.briansimulator.org). The focus is on making the writing of simulation code as quick and easy as possible for the user, and on fl exibility: new and non-standard models are no more diffi cult to defi ne than standard ones. This allows scientists to spend more time on the details of their models, and less on their implementation. Neuron models are defi ned by writing differential equations in standard mathematical notation, facilitating scientifi c communication. Brian is written in the Python programming language, and uses vector-based computation to allow for effi cient simulations. It is particularly useful for neuroscientifi c modelling at the systems level, and for teaching Edited by: computational neuroscience. Jan G. Bjaalie, International Neuroinformatics Coordination Facility, Keywords: Python, spiking neural networks, simulation, teaching, systems neuroscience Sweden; University of Oslo, Norway Reviewed by: Eilif Muller, Ecole Polytechnique Fédérale de Lausanne, Switzerland INTRODUCTION takes considerably more time to write the code Nicholas T. Carnevale, Yale Computational modelling of neural networks than to run the simulations. Minimising learn- University School of Medicine, USA plays an increasing role in neuroscience research. ing and development time rather than simulation Örjan Ekeberg, Royal Institute of Technology, Sweden Writing simulation code from scratch (typically time implies different design choices, putting more in Matlab or C) can be very time-consuming and emphasis on fl exibility, readability, and simplicity * Correspondence: in all but the simplest cases requires expertise in of the syntax.