# Software ## Tools for simulation :::{card} Brian simulator The *Brian simulator* ([RRID:SCR_002998](https://scicrunch.org/resolver/SCR_002998)) is a simulator for biological spiking neural networks. It was originally created by [Dan Goodman](https://neural-reckoning.org/dan_goodman.html) and [Romain Brette](http://romainbrette.fr). I became involved around 2014, when we decided to rewrite the simulator (as *brian2*) around the concept of code generation, which is the basis for many of the related projects listed below. Simulations can now be executed via OpenMP-accelerated C++ code, or on GPUs via CUDA code. I have been leading Brian's development in recent years. +++ *Links:* [{fa}`globe`](https://briansimulator.org "Brian website") [{fab}`github`](https://github.com/brian-team/brian2 "Brian repository") [{fa}`book`](https://brian2.readthedocs.org/ "Brian documentation") [{fab}`discourse`](https://brian.discourse.group "Brian discussion forum") *References:* {cite:p}`stimberg_brian_2019`, {cite:p}`Stimberg2014` ::: :::{card} brian2tools The *brian2tools* package offers several useful tools to work with the Brian simulator, in particular for visualization and import/export from/to other model description formats. Several [Google Summer of Code](https://summerofcode.withgoogle.com/) students worked on features of this package: Snigdha Dagar and Dominik KrzemiƄski worked on early versions of the "export to NeuroML" functionality, Kapil Kumar worked on the corresponding import functionality, and Vigneswaran C refactored the underlying code base and extend it to support "human-readable model descriptions" as an export format. +++ *Links:* [{fab}`github`](https://github.com/brian-team/brian2tools "brian2tools on GitHub") [{fa}`book`](https://brian2tools.readthedocs.org "brian2tools documentation") ::: :::{card} brian2modelfitting The *brian2modelfitting* package allows users to take a Brian description of a neuron model, and fit it against experimental data using a variety of algorithms. The initial version of this package was written by Aleksandra Teska during a GSoC internship, and Ante Lojic Kapetanovic extended it to also support simulation-based inference via the [sbi](https://sbi-dev.github.io/sbi/) package. +++ *Links:* [{fab}`github`](https://github.com/brian-team/brian2modelfitting "brian2modelfitting on GitHub") [{fa}`book`](https://brian2modelfitting.readthedocs.org "brian2modelfitting documentation") ::: :::{card} Brian2GeNN *Brian2GeNN* makes Brian's code generation mechanism create code for the [GeNN simulator](https://genn-team.github.io/), developed at the [University of Sussex](https://www.sussex.ac.uk) by [Thomas Nowotny](https://profiles.sussex.ac.uk/p206151-thomas-nowotny) and colleagues. The GeNN simulator will then generate efficient CUDA code to run the simulations on a GPU, potentially leading to order-of-magnitude speed-ups. +++ *Links*: [{fab}`github`](https://github.com/brian-team/brian2genn "brian2genn on GitHub") [{fa}`book`](https://brian2genn.readthedocs.org "brian2genn documentation") *References:* {cite:p}`stimberg_brian2genn_2020` ::: :::{card} Brian2CUDA *Brian2CUDA* is the most recent addition to this list. It provides an alternative to Brian's C++ code generation mechanism, and instead generates CUDA code to run simulations on GPUs. It is able to create highly efficient code and supports all features of Brian's C++ standalone mode. Its development has been led by [Denis Alevi](https://www.sprekelerlab.org/denis/) and Moritz Augustin at the [TU Berlin](https://www.tu-berlin.de). +++ *Links:* [{fab}`github`](https://github.com/brian-team/brian2cuda "Brian2CUDA on GitHub") [{fa}`book`](https://brian2cuda.readthedocs.org "Brian2CUDA documentation") *References:* {cite:p}`alevi_brian2cuda_2022` ::: ## Tools for electrophysiology In addition to the tools listed above, I have also contributed to tools for electryphysiology developed by other (former) members of the lab, in particular: - [Spyking Circus](https://spyking-circus.readthedocs.io), a tool for semi-automati spike sorting on large-scale, extra-cellular recordings, developed by [Pierre Yger](http://www.yger.net) and [Olivier Marre](https://www.institut-vision.org/index.php/chercheurs/olivier-marre) {cite:p}`Yger2018`. - [Holypipette](https://holypipette.readthedocs.io), a tool for controlling electrophysiological (patch clamp) recordings, developed by [Romain Brette](http://romainbrette.fr). ## Open source contributions I've fixed various minor bugs and annoyances in general-purpose open source libraries that we use in our work, e.g. in [sympy](https://www.sympy.org/) and [Cython](https://cython.org/). I also maintain a few packages for [conda-forge](https://conda-forge.org/).