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.

Highlights

  • 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)

  • Brian 2 is a complete rewrite of the Brian simulator designed to solve this apparent dichotomy using the technique of code generation

  • The Brian simulator combines the model descriptions with a procedural, computational experiment approach: a simulation is a user script written in Python, with models described in their mathematical form, without any reference to predefined models

Read more

Summary

Introduction

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). Capturing the full range of potential protocols cannot be done with a purely declarative markup language, but is straightforward in a general purpose programming language For this reason, the Brian simulator combines the model descriptions with a procedural, computational experiment approach: a simulation is a user script written in Python, with models described in their mathematical form, without any reference to predefined models. On a more specific level, new functionality can be added by providing a small amount of code written in the target language, for example to connect the simulation to an input device Implementing this solution in a way that is transparent to the user requires solving important design and computational problems, which we will describe in the following

Design and implementation
Discussion
Design details
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call