Running grown networks in other simulators
The toolbox’s own kernels are deliberately simple and fast (integer LIF with bit-identical spikes across implementations). For detailed or large-scale simulation, grown networks are handed to established simulators through interchange formats (roadmap phase J).
SONATA (available)
python -m neurogenesis export network.json --format sonata --out circuit/ # prints an export report
python -m neurogenesis import circuit/ --format sonata --out back.json # back.json == network.json
from neurogenesis.interop import export_network, import_network
report = export_network(net, "sonata", "circuit") # needs: pip install "neurogenesis-sim[sonata]" (h5py)
print(report) # exact / approximated / dropped, as JSON
net2 = import_network("sonata", "circuit")
The directory holds circuit_config.json, network/nodes.h5, network/edges.h5, the node and edge type tables and
NEST iaf_psc_exp parameter files: the layout of the SONATA format (Dai et al. 2020), read by BMTK (which runs NEST and
NEURON), libsonata, PyNN (pyNN.serialization.import_from_sonata) and Connectome-Manipulator. Every toolbox field is
also stored raw, so reading the circuit back gives the same network bit for bit (tested), and the edge indices are
checked with libsonata.
How the integer neuron is translated
All exporters share one translation (neurogenesis.interop.dynamics), into a current-based exponential LIF
(NEST iaf_psc_exp, PyNN IF_curr_exp):
Toolbox |
Exported |
Exact? |
|---|---|---|
|
|
per-tick decay exact; rounding not |
voltage units, |
|
exact (a free scale) |
weight |
|
total charge matched; PSP shape approximate |
delay |
|
the kernel’s extra tick of latency included |
|
|
close |
Poisson and burster drivers |
nodes with their rates as attributes |
their spontaneous spikes are not generated elsewhere (reported) |
integer rounding, minimum decrement, ±2048 clamp |
— |
not represented |
So spike times in another simulator are close to the toolbox’s, not identical. The export report says this every time.
Other targets
Simulator / toolchain |
Route |
Status |
|---|---|---|
NEST (Gewaltig & Diesmann 2007) |
SONATA through BMTK PointNet, or PyNN |
SONATA available; PyNN planned (J4) |
NEURON (Hines & Carnevale 1997) |
SONATA through BMTK; NeuroML 2 |
NeuroML 2 planned (J5) |
Brian 2 (Stimberg et al. 2019) |
PyNN backend |
planned (J4) |
Arbor (Abi Akar et al. 2019) |
NeuroML 2 / morphologies (phase N) |
planned |
SpiNNaker (sPyNNaker, Rhodes et al. 2018) |
PyNN |
planned (J4) |
snnTorch, Norse, Lava-DL, SpiNNaker2 |
NIR (Pedersen et al. 2024): small modules only, no per-synapse delays |
planned (J3) |
PLACEHOLDER
Cross-simulator checks (J6): the same grown networks simulated in the toolbox and, through SONATA and PyNN, in NEST and Brian 2, with spike statistics compared against declared tolerances.