Brian is a clock-driven spiking neural network simulator that is easy to learn, highly flexible, and simple to extend. Written in Python, it allows users to describe and run arbitrary neural and synaptic models without needing to write code in any other programming language. It is built on a code-generation framework that transforms model descriptions into efficient low-level code.
Currently, the Brian simulator lacks advanced support for complex simulation pipelines that require storing or restoring the state of simulations (e.g., checkpointing) or saving a complete network architecture to a file. Such pipelines are particularly important for studies involving machine learning-like workflows, such as running a network on multiple stimuli for training and testing. In recent years, the Brian simulator has introduced several features to support these approaches, but they come with limitations and do not cover the full range of potential use cases.
The aim of this project is to improve and consolidate the Brian simulator’s tools for model and state (de)serialization. Specifically, the goals of this project are to:
- Extend the current store/restore mechanism to work with Brian’s C++ standalone mode and Brian2CUDA.
- Refactor the basicexporter from the brian2tools package so that it can be used to serialize a network architecture.
- Create a corresponding basicimporter to reconstruct a network from such a serialization
- For the larger 350h project, additional goals include:
- Implement annotation and metadata for models
- Investigate data formats for neural simulation/recording data (e.g. NWB or NEO) and provide export tools
- Investigate data formats for input data (e.g. AEDAT) and provide import tools
- Identify potential connection points to software from neuromorphic computing/ML and provide tools to facilitate interoperability
Skill level: Intermediate
Required skills: Python, C++
Time commitment: Part-time (175h) or full-time (350h)
Lead mentor: Benjamin Evans (B.D.Evans@sussex.ac.uk)
Project website: GitHub - brian-team/brian2tools: Tools to use with Brian 2, in particular for visualization · GitHub and GitHub - brian-team/brian2: Brian is a free, open source simulator for spiking neural networks. · GitHub
Backup mentors: Dan Goodman (d.goodman@imperial.ac.uk; d.goodman on NeuroStars), Marcel Stimberg (marcel.stimberg@sorbonne-universite.fr; mstimberg on NeuroStars)
Tech keywords: Python, C++, serialization, data formats