Arbor is a multi-compartment neuron simulation library; compatible with next-generation accelerators; best-practices applied to research software; focussed on community-driven development.
Arbor is a software library designed for efficient simulation of large-scale
networks of biological neurons with detailed morphological structures. It
combines customizable neuronal and synaptic mechanisms with high-performance
computing, supporting multi-core CPU and GPU systems. In humans and other
animals, synaptic plasticity processes play a vital role in cognitive functions,
including learning and memory. Recent studies have shown that intracellular
molecular processes in dendrites significantly influence single-neuron dynamics.
However, for understanding how the complex interplay between dendrites and
synaptic processes influences network dynamics, computational modeling is
required. To enable the modeling of large-scale networks of morphologically
detailed neurons with diverse plasticity processes, we have extended the Arbor
library to support simulations of a large variety of spike-driven plasticity
paradigms. To showcase the features of the extended framework, we present
examples of computational models, beginning with single-synapse dynamics,
progressing to multi-synapse rules, and finally scaling up to large recurrent
networks. While cross-validating our implementations by comparison with other
simulators, we show that Arbor allows simulating plastic networks of
multi-compartment neurons at nearly no additional cost in runtime compared to
point-neuron simulations. In addition, we demonstrate that Arbor is highly
efficient in terms of runtime and memory use as compared to other simulators.
Using the extended framework, as an example, we investigate the impact of
dendritic structures on network dynamics across a timescale of several hours,
finding a relation between the length of dendritic trees and the ability of the
network to efficiently store information. By our extension of Arbor, we aim to
provide a valuable tool that will support future studies on the impact of
synaptic plasticity, especially, in conjunction with neuronal morphology, in
large networks.
Computational neuroscience has traditionally focused on isolated scales,
limiting understanding of brain function across multiple levels. While
microscopic models capture biophysical details of neurons, macroscopic models
describe large-scale network dynamics. Integrating these scales, however,
remains a significant challenge. In this study, we present a novel co-simulation
framework that bridges these levels by integrating the neural simulator Arbor
with The Virtual Brain (TVB) platform. Arbor enables detailed simulations from
single-compartment neurons to populations of such cells, while TVB models
whole-brain dynamics based on anatomical features and the mean neural activity
of a brain region. By linking these simulators for the first time, we provide an
example of how to model and investigate the onset of seizures in specific areas
and their propagation to the whole brain. This framework employs an MPI
intercommunicator for real-time bidirectional interaction, translating between
discrete spikes from Arbor and continuous TVB activity. Its fully modular design
enables independent model selection for each scale, requiring minimal effort to
translate activity across simulators. The novel Arbor-TVB co-simulator allows
replacement of TVB nodes with biologically realistic neuron populations,
offering insights into seizure propagation and potential intervention
strategies. The integration of Arbor and TVB marks a significant advancement in
multi-scale modeling, providing a comprehensive computational framework for
studying neural disorders and optimizing treatments.
Arbor is a library for simulating biophysically detailed neuron models on modern
hardware. It comes with a friendly Python interface hiding its blazingly fast
C++ core; scaling from laptops to at least 4000 GPUs. In this tutorial, we will
show you the basics of designing detailed cell models, how to run them using
Arbor, and how to grow them into larger networks. We will demonstrate how to
create data driven models using the Allen Brain Atlas as an example. Arbor is
free and open-source software, developed in the Human Brain Project and EBRAINS.
Understanding how molecular events in ion channels impact neuronal excitability,
as derived from the calculation of the time course of the membrane potentials,
can help elucidate the mechanisms of neurological disease-linked mutations and
support neuroactive drug design. Here, we propose a multiscale simulation
approach which couples molecular simulations with neuronal simulations to
predict the variations in membrane potential and neural spikes.
After much more delay than anticipated, we are very happy to present a new Arbor release. Nearly 8 months of work is in it, much of which focussed on speed, optimisation, fixes and build system changes. This release includes Python 3.12 wheels as probably one of the first packages on PyPI 😄.
Major new features
External Connectivity: Arbor can now interface with other simulators or processes through MPI. Contexts now accept a second MPI communicator and Recipes can implement a external_connections_on method to specify how simulations might be interacting. See documentation for more.
Arbor now supports checkpointing and resume from a previously stored checkpoint. Useful when a certain point in time needs to be explored in multiple directions, when you want to rewind to a previous state, etc. See documentation for more.
More painted parameters are now scalable through iexpr: temperature, capacitance, resistivity, membrane potential and the following ionic parameters: internal and external concentration, diffusivity, and reversal potential. See documentation.
A set of ANN activation functions for NMODL have been added: sigmoid(x), relu(x) and tanh(x). Control volume area is exposed through NMODL.
A revamped backend for ARM CPU’s that support Scalable Vector Extension (SVE). Arbor and modcc are now fully compatible, so users who have access to A64FX-based HPC can take full advantage of that hardware.
Breaking changes since v0.8.1
It is no longer possible to set binning and sampling policies, due to Arbor now having a fixed timestep. Removing exact delivery increases the speed of the simulation due to elimination of small steps, makes the numerics independent of presence of sampling, and also leads to a number of code simplifications.
Contexts are now constructed kwargs-only. So, arbor.context(12, None) is now arb.context(threads=12, gpu=None). In the case no arguments are supplied, the context initialized to default_allocation, which means it will use the total number of threads and first GPU that are locally available. arbor.simulation constructed without an explicit arbor.context also initializes a default_allocation.
For the past months we’ve had a weekly public-ish meeting with some modelers. Today we announce that this meeting is now open to all! Every Wednesday 13:00 CET we convene in the Arbor Community channel on Gitter to have a videochat for an hour of questions, answers, demonstrations, anything related to Arbor really. Please join if you’re interested in sharing your work, getting help or just getting an idea of what’s going on in our community.
The Arbor workshop at the HBP Summit 2023 has concluded. To those who attended: thanks for your interest! Please reach out if you are thinking of using Arbor for your science.
How have you used Arbor and how do you plan to use Arbor going forward?
Brief user presentations
Discussion!
If you are working on large networks of morphologically detailed cells or would like to, don’t hesitate to join and bring your ideas, questions, struggles, etc.! We hope to create a fruitful event that’ll help you further.