tvboptim

templates.tvboptim

TVB-Optim Templates

Mako templates for generating tvboptim network dynamics code from TVBO models.

Templates

  • tvbo-tvboptim-dfun.py.mako: Dynamics class generation.
  • tvbo-tvboptim-cfun.py.mako: Coupling function generation.
  • tvbo-tvboptim-solver.py.mako: Solver/integrator generation.
  • tvbo-tvboptim-noise.py.mako: Noise model generation.
  • tvbo-tvboptim-observation.py.mako: Observation/monitor generation (metadata-driven pipelines).
  • tvbo-tvboptim-optim.py.mako: Optimizer configuration generation.
  • tvbo-tvboptim-exploration.py.mako: Parameter exploration (grid search) generation.
  • tvbo-tvboptim-sim.py.mako: Full simulation workflow generation.
  • tvbo-tvboptim-experiment.py.mako: Complete experiment generation (fully metadata-driven).

Usage

From a TVBO SimulationExperiment:

from tvbo import SimulationExperiment
from tvbo.templates import lookup

experiment = SimulationExperiment.from_file("my_experiment.yaml")

# Generate full workflow
template = lookup.get_template("tvboptim/tvbo-tvboptim-sim.py.mako")
code = template.render(experiment=experiment)

# Generate individual components
dfun_template = lookup.get_template("tvboptim/tvbo-tvboptim-dfun.py.mako")
dfun_code = dfun_template.render(model=experiment.dynamics)

# Generate exploration workflow
expl_template = lookup.get_template("tvboptim/tvbo-tvboptim-exploration.py.mako")
expl_code = expl_template.render(experiment=experiment)

# Generate optimization workflow
optim_template = lookup.get_template("tvboptim/tvbo-tvboptim-optim.py.mako")
optim_code = optim_template.render(experiment=experiment)

Template Context Variables:

All templates accept: - experiment: SimulationExperiment instance

Individual component templates also accept: - model: Dynamics instance (for dfun) - coupling: Coupling instance (for cfun) - integration: Integration instance (for solver, noise) - monitors: List of Monitor instances (for observation) - fitting: ModelFitting instance (for target, loss, optim)

Output Format:

Templates generate Python code compatible with tvboptim.experimental.network_dynamics

which provides: - JAX-based differentiable simulation - Support for both instantaneous and delayed coupling - Stochastic (SDE) and deterministic (ODE) modes - BOLD signal monitoring and FC computation - Integration with optax for parameter optimization - Grid exploration and parallel execution