Skip to main content

BrainTrace

Eligibility Trace-based Online Learning for Brain Dynamics

Header image of braintrace.

Supported Python Version LICENSE Documentation PyPI version Continuous Integration Code Coverage

braintrace provides online learning algorithms for biological neural networks. It has been integrated into our establishing brain modeling ecosystem.

Installation

braintrace requires Python 3.11 or newer and supports Linux, macOS, and Windows. You can install braintrace via pip:

pip install braintrace --upgrade

Alternatively, you can install BrainX, which bundles braintrace with other compatible packages for a comprehensive brain modeling ecosystem:

pip install BrainX -U

Quickstart

Mark the trainable operations with an ETP primitive (here, via braintrace.nn layers, which use them internally), then compile the model into a learner and drive a sequence. There is no scan to write and no special parameter class — weights stay plain brainstate.ParamState.

import brainstate
import jax.numpy as jnp
import braintrace

class GRUNet(brainstate.nn.Module):
    def __init__(self, n_in, n_rec, n_out):
        super().__init__()
        self.rnn = braintrace.nn.GRUCell(n_in, n_rec)
        self.out = braintrace.nn.Linear(n_rec, n_out)

    def update(self, x):
        return self.out(self.rnn(x))

model = GRUNet(3, 8, 1)

# One call: initialise states, compile the eligibility-trace graph,
# return a ready learner.
learner = braintrace.compile(model, braintrace.D_RTRL, jnp.zeros((1, 3)), batch_size=1)

def step_loss(x, y):
    return jnp.mean((learner(x) - y) ** 2)

xs = brainstate.random.randn(100, 1, 3)   # (time, batch, features)
ys = brainstate.random.randn(100, 1, 1)

# Drives the sequence and accumulates online gradients -- O(1) memory in T.
grads, losses = learner.etrace_grad(xs, ys, step_fn=step_loss, return_value=True)

Swap braintrace.D_RTRL for pp_prop, SnAp, UORO, ThreeFactor, DNI, EProp, the OSTL variants, or an explicit braintrace.ETraceConfig to change the learning rule; nothing else in the snippet changes.

Documentation

The official documentation is hosted on Read the Docs: https://brainx.chaobrain.com/braintrace

Citation

If you use this package in your research, please cite:

@Article{Wang2026,
  author={Wang, Chaoming
          and Dong, Xingsi
          and Ji, Zilong
          and Xiao, Mingqing
          and Jiang, Jiedong
          and Liu, Xiao
          and Huan, Yuxiang
          and Wu, Si},
  title={Model-agnostic linear-memory online learning in spiking neural networks},
  journal={Nature Communications},
  year={2026},
  month={Jan},
  day={19},
  abstract={Spiking neural networks (SNNs) offer a promising paradigm for modeling brain dynamics and developing neuromorphic intelligence, yet an online learning system capable of training rich spiking dynamics over long horizons with low memory footprints has been missing. Existing online approaches either incur quadratic memory growth, sacrifice biological fidelity through oversimplified models, or lack end-to-end automated tooling. Here, we introduce BrainTrace, a model-agnostic, linear-memory, and automated online learning system for spiking neural networks. BrainTrace standardizes model specification to encompass diverse neuronal and synaptic dynamics; implements a linear-memory online learning rule by exploiting intrinsic properties of spiking dynamics; and provides a compiler that automatically generates optimized online-learning code for arbitrary user-defined models. Across diverse dynamics and tasks, BrainTrace achieves strong learning performance with a low memory footprint and high computational throughput. Critically, these properties enable online fitting of a whole-brain-scale Drosophila SNN that recapitulates region-level functional activity. By reconciling generality, efficiency, and usability, BrainTrace establishes a foundation for spiking network modeling at scale.},
  issn={2041-1723},
  doi={10.1038/s41467-026-68453-w},
  url={https://doi.org/10.1038/s41467-026-68453-w},
  publisher={Nature Publishing Group UK London}
}

See also the ecosystem

braintrace is one part of our brain simulation ecosystem: https://brainx.chaobrain.com/

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

braintrace-0.2.5.tar.gz (703.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

braintrace-0.2.5-py3-none-any.whl (386.0 kB view details)

Uploaded Python 3

File details

Details for the file braintrace-0.2.5.tar.gz.

File metadata

  • Download URL: braintrace-0.2.5.tar.gz
  • Upload date:
  • Size: 703.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for braintrace-0.2.5.tar.gz
Algorithm Hash digest
SHA256 1a96df2d447a6745e6aae86799a27df1ca2d14f010db2e2b39f6f6f4646d3328
MD5 9e7a6d29a712f6f3c2de22546e6566ee
BLAKE2b-256 ec457ff3fe176a00767bdd96068829622fbd5461da4e0e0e4888683c16595bf4

See more details on using hashes here.

File details

Details for the file braintrace-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: braintrace-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 386.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for braintrace-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2e5be811468d3619c5d3a8a8e9889fafb0fa0d9cebd1d3fa921193b8a57e9f36
MD5 f21a2e4df31afe43fbcf1b59390304a8
BLAKE2b-256 7a7fe034cabb27c1d82916bea64f01d446d089d1f38e00f626c0f55808c22769

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page