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"))