We build open-source tools so that the methods we develop are usable by the scientists who need them, not just reproducible in a paper. Most are developed in the open with contributors from other groups, and are maintained well beyond the publication they first appeared in.
Code accompanying individual papers is linked from the publications page; further repositories are on github.com/mackelab.
sbi — simulation-based inference
sbi is a Python package for simulation-based inference. Given a simulator that models a real-world process, it estimates the full posterior distribution over the simulator’s parameters from observed data — quantifying uncertainty and revealing interactions between parameters, without ever requiring a likelihood.
It implements a wide range of inference algorithms, both amortized (a trained estimator is reused across observations) and sequential (simulations are focused on a single observation), together with tools for validating and visualising the resulting posteriors. High-level interfaces make standard workflows a few lines of code; low-level interfaces expose the details when they matter.
sbi is a community project with contributors from many groups, and is a NumFOCUS affiliated project.
GitHub · Docs · JOSS 2020 · JOSS 2025 (sbi reloaded) · Practical guide
Jaxley — differentiable simulation of biophysical neuron models
Jaxley is a differentiable simulator for biophysical neuron models, written in JAX. It supports multicompartment neurons and networks, runs unchanged on CPU, GPU or TPU, and is jit-compiled — as fast as established simulators while being written entirely in Python.
Because the simulator is differentiable, gradient-based optimisation can tune thousands of parameters at once — channel conductances, synaptic weights, morphological properties — either to match experimental recordings or to solve a behavioural task directly.
flyvis — connectome-constrained models of the fly visual system
flyvis is a connectome-constrained deep mechanistic network model of the fruit fly visual system, in PyTorch. It takes the measured wiring diagram of the fly optic lobe as a hard constraint and learns the remaining unknown parameters — producing a model that predicts the responses of many cell types, including ones never recorded during training.
flyvis is developed and maintained by the Turaga lab at Janelia, in collaboration with us.
GitHub · Docs · Nature 2024
Older code
Earlier code from the lab, kept for reference. No longer actively maintained.
pop_spike_dyn
Linear dynamical system models with Poisson observations for modelling neural population spike trains
gp_maps
Gaussian Process methods for modelling cortical maps
Code and data · Python code · paper · paper 2
nonstat_plds
Poisson dynamical system models for nonstationary population spike trains