Quick Reference

Most-used data model classes and API entry points

Core Data Model Classes

The most important classes for specifying and running a simulation:

Class Purpose Data Model API
SimulationExperiment Top-level experiment specification schema api
Dynamics Neural mass model (ODE / rate equations) schema api
Network Brain network (nodes, weights, delays) schema sim · plot
Connectome Structural connectivity matrix + tracts schema api
Coupling Inter-node coupling function schema
Integrator Numerical integrator (Euler, Heun, …) schema
Noise Stochastic noise specification schema api
ObservationModel Maps state variables to observables schema api
Parameter Model parameter with units + shape schema
StateVariable ODE state variable definition schema
LossFunction Symbolic loss for model fitting schema
ModelFitting Fitting / optimization specification schema
Exploration Parameter exploration specification schema
Algorithm Iterative tuning algorithm (FIC, …) schema
Stimulus Stimulation / perturbation protocol schema
Event Discrete event during simulation schema

Key API Entry Points

The most commonly called functions and classes:

Module What it provides
experiment SimulationExperiment — load, configure, run, and render code
dynamics Dynamics — load neural mass models from YAML / ontology
network_io Network construction helpers and I/O
noise Noise runtime class
observation Observation model utilities
code Code generation (JAX, Julia, …)
main REST API (RunExperimentRequest, RunExperimentResponse)
bifurcation Bifurcation analysis result containers
plot/analysis Simulation analysis plot utilities

Backends (Code Generation)

Backend Adapter Interoperability docs
tvboptim (JAX) experiment.render_code(‘jax’) tvboptim docs
PyRates pyrates · export PyRates docs
NetworkDynamics.jl networkdynamics NetworkDynamics docs
BifurcationKit.jl bifurcationkit BifurcationKit docs
ModelingToolkit.jl modelingtoolkit ModelingToolkit docs
BIDS BIDS docs
openMINDS openMINDS docs

Typical Workflow

from tvbo import SimulationExperiment

# 1. Load experiment from YAML
exp = SimulationExperiment.from_db("Schirner2023_MultiscaleBNM_DM")

# 2. Run
result = exp.run()

# 3. Inspect
result.plot()
result.integration.observations.bold   # BOLD time series
result.algorithms.fic.state            # FIC-tuned state

# 4. Generate code for a backend
print(exp.render_code("jax"))          # JAX/tvboptim
print(exp.render_code("networkdynamics-julia"))