A scalar value: float, integer, string, or boolean. Used for slots that accept literals of any primitive type, such as argument values which may be numbers, strings, references, or booleans.
A loss function for optimization with optional aggregation. Extends Function with aggregation specification for per-element losses.
Simple input reference: name of previous function's output in pipeline. For multi-argument functions, use arguments with value references instead.
Software implementation reference (if software-based)
How to aggregate the loss across dimensions. Example: aggregate.over=node, aggregate.type=mean computes loss per node, then averages.
Optional stable IRI (or compact URI) for this entity in an external ontology or knowledge base. Used to load metadata from an external source; not required when the entity is fully self-contained (equations, parameters, etc. defined in the file itself).
Time range for generated TimeSeries (for kernel generators). Equation is evaluated at each time point.
Globally unique identifier for the entity.
Which dimension to apply the transformation on
Variables consumed by the function (referenced in the equation). Each argument has a name and optional metadata (description, default value, unit).
Name for this function's output (referenced by subsequent functions)
Output transformation equation (if equation-based)
Primary engine (must appear in environment.requirements; migration target replacing deprecated 'software').
Conditional logic for piecewise equations.
Collection of data related to a specific DBS study.
Path to BIDS dataset root directory. When set, subject networks and empirical data paths are resolved relative to this root.
Global condition labels applied across all subjects (e.g., ['rest', 'task-nback', 'task-motor']).
A schema for representing a version of a brain atlas.
Enter the version identifier of this brain atlas or coordinate space version.
Add the parcellation terminology version used for this brain atlas version.
Linked type for the version of a brain atlas or coordinate space.
Common coordinate space (e.g. FSLMNI152, MNI152NLin2009cAsym). Reference by name; the CommonCoordinateSpace must be defined in tvbo/database/coordinate_spaces/ (or future equivalent location).
Slot for the abbreviation of a resource.
A schema for representing a parcellation terminology, which consists of parcellation entities.
Enter the internationalized resource identifier (IRI) to the related ontological terms.
Add the location of the data file containing the parcellation terminology.
W3C PROV-O aligned provenance. Reusable on any entity (Network, TimeSeries, Dynamics, etc.).
Software/agent identifier (prov:wasGeneratedBy)
Reference to an included algorithm with optional argument overrides. Allows combining algorithms with different hyperparameter values.
Override hyperparameter values for the included algorithm. Maps parameter names to new values.
BIDS filename entities (BEP017-aligned) for provenance and data discovery. Reusable on Network, BrainAtlas, Tractogram, or any dataset with BIDS-conformant naming.
BIDS tpl- entity (e.g., FSLMNI152, MNI152NLin2009cAsym)
BIDS acq- entity (e.g., EEGstandard1005, MEGBrainstorm)
BIDS seg- entity (e.g., ordered, ranked, 17Networks)
BIDS atlas- entity (e.g., Schaefer2018, HCPMMP1)
BIDS hemi- entity (L or R) for hemisphere-specific surface/volume data
BIDS cohort- entity (e.g., HCPYA, PPMI85)
Specification for switching from a detected bifurcation point to a new branch (periodic orbits from Hopf, fold continuation, etc.). Each BranchSwitch says: "from which special point on the parent branch, continue what kind of object, with what settings." Override parent solver settings via the inline continuation field — only explicitly set attributes take effect; everything else is inherited from the parent Continuation.
Override solver settings for this branch. Uses the same Continuation type — only explicitly set attributes override the parent's values.
Which bifurcation point to start from. Syntax: - 'hopf:-1' = last Hopf (default) - 'hopf:all' = all Hopf points - 'hopf:1' = first Hopf - 'fold:2' = second fold - integer = specific special point index
Toolkit-specific string options for this branch (linear solver, etc.).
Initial parameter offset from the bifurcation point.
Discretization method for the branch solution. Required for periodic orbit branches (Hopf → PO). Not needed for codim-2 branches (fold/Hopf continuation).
Specification of a coupling input channel for multi-coupling dynamics
Dimensionality of the coupling input (number of coupled values)
Named keys for multi-dimensional coupling. When dimension > 1, provides symbolic names for each index (e.g., keys: [lre, ffi] for dimension: 2). Used in equations as variable names.
Name of the coupling function that feeds this input. When omitted, resolved automatically: (1) same name as a coupling function → direct match, (2) single coupling input and single coupling function → auto-mapped, (3) multiple of each → positional order.
Observation derived from one or more other observations. Examples: - fc (from bold) - single source transformation - fc_corr (from fc and fc_target) - multi-source comparison Unlike regular Observations, these don't generate monitor classes but are computed from existing observation values.
Ordered sequence of Functions. Each step has a unique `name` (used to key step outputs) and transforms input -> output. List form preserves execution order.
Type of imaging modality (BOLD, EEG, MEG, etc.)
Time unit for the integration / simulation. Determines the physical time meaning of one model time-step.
Sampling period for monitors (ms). For BOLD: TR in ms.
Number of samples to skip at the start (transient removal). For FC: typically 10-20 TRs.
State variable to observe (e.g., S_e for excitatory activity). For observations derived from other observations, use DerivedObservation.
Load data from external source (file, database, API). When specified, this observation represents empirical/external data rather than simulated data. Enables unified treatment of all data.
Intermediate downsampling period (ms). For BOLD: typically matches dt.
One or more observations to derive from. For transformations (e.g., fc from bold), use single source. For comparisons (e.g., fc_corr from fc and fc_target), use multiple sources. Order may matter for asymmetric operations.
Number of samples from the end to use. Takes the last N samples before aggregation. E.g., tail_samples: 500 means use data[-500:].
Direct class reference (alternative to pipeline). Use for external library classes like tvboptim.Bold, custom monitors, or any callable class. The class is instantiated with constructor_args and called with call_args. Example: {name: Bold, module: tvboptim.observations.tvb_monitors.bold, constructor_args: [{name: period, value: 1000.0}]}
Variable of interest index (which state variable to monitor). Default: 0.
Number of samples for windowed aggregation
Reference to transient simulation result for history initialization (e.g., 'result_init').
Symbolic form (e.g., '-div(D * grad(u))').
Optional anisotropic tensor (e.g., diffusion).
Discretization method for boundary value problems in continuation (periodic orbits, connecting orbits, quasi-periodic tori). Specifies the method; method-specific numerics go in parameters.
Polynomial degree per mesh interval for collocation. The m in PeriodicOrbitOCollProblem(N, m).
Linear solver for the Newton bordered system. E.g. COPBLS (collocation), MatrixBLS (shooting/poincaré).
ODE solver for flow-based methods (shooting, poincaré). Specifies algorithm (e.g. Vern9, Rodas5) and tolerances. Not needed for collocation or trapezoid.
Number of mesh intervals (time slices) for collocation or trapezoid methods. Collocation: N in PeriodicOrbitOCollProblem(N, m). Trapezoid: M in PeriodicOrbitTrapProblem(M=...).
Toolkit-specific string options (jacobian type, etc.).
Number of shooting sections for shooting or Poincaré methods.
An edge in a network. Two modes: explicit (source+target set, scalar parameters in YAML) or template (no source/target, N×N matrix measure in HDF5). Both coexist in the same edges list.
Events attached to this edge (e.g., threshold-based line tripping).
Input variable on target node to connect to (e.g., 'c_in'). If not specified, uses first coupling input from target dynamics.
Coupling function for this edge. Can be a reference (by name) to coupling or inline definition. If not provided, uses experiment's default coupling.
Matrix entries carry weights (not just 0/1)
Unit for matrix values (template edges only)
Path or name of the Network whose nodes define the columns of a non-square (projection) matrix. For example, a gain matrix with shape (n_sensors, n_regions) references the brain parcellation network here. Row labels come from the parent Network's own nodes.
Storage format in HDF5 (template edges only)
Edge length / tract distance (explicit edges, mm)
Ordered labels for the matrix columns (dim-1) when the matrix is non-square. Row labels (dim-0) are the parent Network's node labels. Stored as HDF5 dimension scales in the companion file.
Dynamics model for this edge. When specified, the edge has its own state variables and ODE (EdgeModel with f in ND.jl). Uses the same Dynamics class as nodes — state_variables define edge states, derived_variables define observables, output defines what is visible for plotting/analysis. The coupling_function on Coupling still defines how vertex outputs map to edge outputs for aggregation at vertices.
Source node ID (set for explicit edges, absent for template edges)
Output variable from source node to use (e.g., 'x_out'). If not specified, uses first output variable from source dynamics.
Target node ID (set for explicit edges, absent for template edges)
Whether the edge is directed. If false, represents a symmetric/bidirectional connection.
Parameter space exploration (grid search, sweep).
Observable to compute at each point. Use function: obs_name for simple observation, or function: func_name + arguments for FunctionCall.
Combination mode: 'product' (full grid), 'zip' (paired)
Per-exploration execution configuration (overrides experiment-level defaults). Useful for setting random_seed, n_workers for parallel grid search.
Ordered list of exploration axes spanning the search space. Each axis references an existing Parameter (by dotted name, e.g. "ReducedWongWang.w" or "FastLinearCoupling.G") and supplies the Range to sweep. No new Parameter is created here.
Number of independent trials per grid point. Each trial uses a different noise seed. Used for averaging stochastic simulations (e.g., VEP = average of 20 trials).
Hyper-parameters of the exploration itself (e.g. tolerances, sampler settings, grid-refinement controls). Distinct from `space`, which defines what is being swept.
Averaging mode across trials. 'trials' = average over n_trials independent runs (evoked potential paradigm). None = return all trials.
One axis of a parameter exploration grid. Points to an existing Parameter (by dotted reference, e.g. "ReducedWongWang.w" or "FastLinearCoupling.G") and supplies the sweep specification (domain, explored_values, or per-element overrides). No new Parameter is created.
Explicit list of values to sweep (overrides domain).
Dotted reference to the Parameter being swept. Format: "<scope>.<param_name>" where <scope> is either a Dynamics class name (e.g. "ReducedWongWang") or a coupling key (e.g. "FastLinearCoupling"). Resolved against the enclosing experiment at runtime.
Optional axis unit (defaults to the referenced Parameter's unit).
Per-element sweep overrides for heterogeneous parameters (e.g. shape "(n_nodes,)"). When set, element_domains[i] replaces the shared domain for element i.
Sweep range for this axis (lo, hi, n, step, log_scale).
Distribution for sampling initial conditions per node. If present, initial_value is used as fallback/mean.
Whether to include this element in simulation output files. Applicable to state variables (default true), derived variables (default false), and network nodes (default true). Set false to suppress recording.
External ontology IRIs (typically GO, ChEBI, UBERON, CL, MeSH) that this entity is a surrogate / abstraction / model of. Replaces the legacy OWL pattern `tvbo:surrogate_of` by carrying the link inline with the YAML data instance. Multiple IRIs allowed: a single parameter may abstract several biological processes (e.g. a synaptic conductance grounding both GO:0060079 (excitatory PSP) and GO:0007268 (chemical synaptic transmission)).
Initial value for the first time derivative, used when equation_order > 1. For a second-order ODE d²x/dt² = f, this sets dx/dt(0). Required by ModelingToolkit.jl to fully specify higher-order initial value problems.
Whether this state variable is transmitted to connected nodes through the coupling function. In TVB terms, this determines the cvar indices (state variables extracted from history and fed into the coupling function). The coupling function may override this via its incoming_states attribute.
Type of equation: 'differential' (default) means dx/dt = rhs, 'algebraic' means 0 = rhs or x ~ rhs (DAE constraint). Algebraic equations are used by ModelingToolkit.jl backend.
Physical unit of measurement. Values are drawn from the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available.
Order of the time derivative on the LHS. Default 1 means dx/dt = rhs (first-order ODE). Order 2 means d²x/dt² = rhs (second-order ODE), etc. Higher-order ODEs are automatically lowered to coupled first-order systems by backends like ModelingToolkit.jl via mtkcompile.
Backend-agnostic graph generator specification. Captures the mathematical family (type) and its parameters so that each backend can emit the correct constructor call (Graphs.jl, NetworkX, etc.). The number of nodes is always taken from Network.number_of_nodes.
Generator parameters (e.g. k, p, dims). Names are matched by the backend mapping to construct the call.
Random seed for reproducible graph generation.
Graph family name. Use a StandardGraphType value for automatic backend mapping, or any custom string for documentation purposes.
How to obtain the starting equilibrium or periodic orbit for continuation. Most robust: time-integrate to steady state.
Name of a previously computed branch (for from_branch method).
Integration duration for time_integration method.
ODE solver for time_integration method. Specify method (e.g., Tsit5, Heun, RK4) and tolerances.
Which point on the source branch: 'endpoint', 'hopf:1', 'fold:2', a step number, etc.
A node in a network with its own dynamics and properties
Per-node initial state variable values, keyed by state variable name.
Dynamics model governing this node's behavior. Can be a reference (by name) or inline definition. If not provided, uses experiment's dynamics.
Events attached to this node (e.g., threshold-based state changes).
Spatial coordinates (x, y, z) of the node
Configuration for parameter optimization. Inherits single-stage fields from OptimizationStage. For multi-stage workflows, use 'stages' (ignores inherited single-stage fields). Loss equation references observations directly by name.
Parameters to optimize in this stage. Each entry is a FreeParameter that references an existing Parameter by dotted scope (e.g. "ReducedWongWang.w" or "FastLinearCoupling.G") and supplies optimization-specific metadata (heterogeneous, shape, bounds). No new Parameter is created here.
Stage-specific hyperparameters (e.g., b2=0.9999 for adam)
Per-optimization execution configuration (overrides experiment-level defaults). Useful for setting random_seed, precision, or hardware for optimization phase.
Loss function call. Uses FunctionCall to either: 1. Reference existing function: function: rmse 2. Inline callable: callable: {module: ..., name: ...} Arguments specify inputs (simulated_fc, empirical_fc, etc.)
Previous stage to initialize from. Final values from that stage become initial values for this stage.
Ordered list of optimization stages. Stages run sequentially. Stage n+1 starts from optimized values of stage n. When defined, inherited single-stage fields are ignored.
Algorithm to use as starting point for optimization. If specified, optimization starts from algorithm's result state. If not specified, optimization starts from initial simulation state.
Parameters from previous stages to freeze (keep at optimized value but not update)
Integration settings for optimization simulations (overrides experiment defaults). If specified, creates a fresh model_fn and state with prepare() before optimization. Can specify different duration, step_size, method than the experiment. If not specified, uses experiment-level integration settings.
Optimizer for this stage: 'adam', 'adamw', 'sgd', etc.
Partial differential equation problem definition.
Shared mesh for all field state variables in this PDE.
Primary field being solved for (deprecated; use state_variables).
Maps vertices to parent regions for hierarchical/aggregated coupling
Array mapping each vertex index to its parent region index. Can use dataLocation instead for large arrays.
Optional named region/ROI in the atlas/parcellation.
Optional file for geometry/ROI mask (e.g., NIfTI, GIfTI).
Analytic initial condition for the field.
A named state variable value for per-node initialization.
Numeric, string, or boolean value. ScalarValue accepts any literal primitive type, allowing parameters to carry control flags (e.g., booleans) or symbolic placeholders alongside numeric defaults.
Reference to tractography/diffusion MRI data used to derive structural connectivity
Processing pipeline used to generate the tractography
Publication or DOI reference for this tractography dataset
Number of subjects in the tractography dataset
Acquisition protocol or scanner information
Path or URI to the tractography data file
Defines what the tuning algorithm optimizes for. Can be an activity target (FIC) or a connectivity target (EIB).
State variable for activity targets (e.g., S_e)
Type of objective: 'activity_target', 'fc_matching', 'custom'
Reference to empirical data observation for matching objectives
Metric equation for matching (e.g., correlation, rmse)
Defines how a parameter is updated based on observables. Represents iterative learning rules like FIC or EIB updates. Functions from experiment.functions are available in the equation.
Whether to apply learning rate warmup to this update rule. When true, the learning rate (eta) is scaled by (i+1)/n_iterations.
The parameter to update (e.g., J_i, wLRE)
Update equation (e.g., 'J_i + eta * delta'). Can use functions defined in experiment.functions section.
Observables required by this update rule
Constraints on parameter values after update
Relative improvement on a defined clinical score.
Who performed the rating (e.g., rater initials, clinician ID, or system)
Preoperative baseline value of the score
Timepoint of assessment (e.g., "1 month post-op", "6 months post-op")
Timepoint of assessment in days or months after implantation
Percent change compared to preoperative baseline (positive = improvement)
Absolute value of the score at the time of assessment
A clinical assessment inventory or structured scale composed of multiple scores or items.
Full name of the scale (e.g., Unified Parkinson’s Disease Rating Scale)
Overall clinical domain (e.g., motor, cognition)
Optional human-readable label (e.g., "1a")
3D coordinate of the contact center in the defined coordinate space
A protocol describing DBS therapy, potentially bilateral or multi-lead.
Observed improvement relative to baseline based on a defined score.
Group assignment (e.g., 'control', 'patient', 'healthy'). Maps to participants.tsv 'group' column in BIDS.
Coordinate space used for this subject's data
BIDS-compatible subject identifier (without 'sub-' prefix). Examples: '01', 'ctrl03', 'patient17'.
Path to subject-specific connectome (when not session-dependent). Relative to dataset root or BIDS derivatives. For session-specific networks, use Session.network instead.
All DBS protocols assigned to this subject.
Additional subject metadata as key-value pairs or path to a sidecar JSON file.
Data collection sessions for this subject. Each session can have its own network, empirical data, and conditions.
Simulated electric field from DBS modeling.
Threshold value applied to the E-field simulation
Reference to a common coordinate space (e.g. MNI152)
Metadata about the E-field result for this setting
A collection of subjects for a multi-subject study. Provides the subject/session structure needed for workflow rendering. Optionally backed by a BIDS directory layout.
A participant in a study. Each subject typically has their own brain network (connectome) and empirical recordings. Corresponds to a BIDS 'sub-' entity.
A software tool for computational neuroscience simulation, analysis, or model specification. Extends SoftwarePackage with neuroscience-specific controlled vocabularies for scale, paradigm, role, and interoperability. Aligned with CodeMeta v3 and DOAP.
Identity and metadata for a software package, aligned with schema.org/SoftwareApplication and CodeMeta v3.
Tools this tool can exchange data with or delegate to.
Supported operating systems (e.g., Linux, macOS, Windows).
Primary function(s) in a simulation workflow.
SPDX license identifier (e.g., MIT, GPL-3.0-only).
High-level category (e.g., simulation, analysis, specification).
Current maintainer(s) or responsible organization(s).
Tags for topic-based discovery and clustering.
Package ecosystem(s) through which the software is distributed.
URIs that unambiguously identify this tool (Wikidata, bio.tools, RRID, SciCrunch).
Original author(s) or creating organization(s).
Date of the most recent release or significant update.
Digital Object Identifier for the software or its reference publication.
Current or latest stable version string.
Spatial/organizational scales the tool operates at.
DOI of the primary reference publication for this tool.
Development status (repostatus.org aligned).
Date the software was first released (YYYY-MM-DD).
Funding bodies or grants (e.g., 'EU H2020 945539', 'NIH R01...').
Execution backends or platforms (e.g., MPI, OpenMP, CUDA, JAX).
A series whose values represent latitude
A single condition and its corresponding equation segment.
The condition for this block (e.g., t > onset).
The equation to apply when the condition is met.
Complete specification of a numerical continuation / bifurcation analysis. All universal solver settings live directly here. Toolkit-specific string options go in the options slot. When used inside a BranchSwitch, only explicitly set attributes override the parent's values.
How to obtain the initial equilibrium. Default: time integration to steady state.
Number of eigenvalues to compute. Must be >= number of state variables for reliable Hopf detection.
Absolute tolerance for Newton corrector convergence.
Bifurcation detection level. 0 = off, 1 = eigenvalues only, 2 = detect, 3 = locate precisely.
Toolkit-specific string options (tangent method, solver name, etc.).
Parameters to vary. First parameter is primary (codim-1); second enables codim-2 continuation. Each Parameter has name + domain (Range with lo/hi bounds).
Maximum Newton corrector iterations per step.
Reference to the dynamical system model (by name). Resolved from the experiment's dynamics dict at runtime.
Maximum bisection steps for bifurcation point localization.
Child branches to continue from detected bifurcation points (PO from Hopf, fold continuation, etc.).
Continue in both directions from the starting point.
Tolerance on real part of eigenvalue for stability boundary.
Number of eigenvalue sign inversions to flag a bifurcation. Must be even. Higher = fewer false positives.
Backend engine (BifurcationKit, AUTO-07p, MatCont, etc.).
Specification for loading external/empirical data.
Callable that loads the data (e.g., load_functional_connectivity)
Data format: 'npy', 'mat', 'csv', 'nifti', etc.
Optional preprocessing to apply after loading
Key/variable name within the file (for .mat, .npz, etc.)
Per-element domain overrides for heterogeneous parameters. When specified, element_domains[i] overrides domain for element i during exploration auto-expansion. Length must match parameter shape (e.g., n_nodes for shape "(n_nodes,)"). If not set, all elements share the same domain.
Dataset path for array-valued parameters. When set, the parameter value is stored in the binary companion file (HDF5 or Zarr) at this path. The value slot is omitted.
Distribution for heterogeneous per-node parameter sampling. Implies heterogeneous=true.
One degree of freedom in an OptimizationStage. References an existing Parameter by dotted scope (e.g. "ReducedWongWang.w" or "FastLinearCoupling.G") and supplies optimization-specific metadata (heterogeneous, shape, bounds, initial value). No new Parameter is created here.
Optimization shape as a Python-tuple-style string (e.g. "(n_nodes,)" or "(n_nodes, n_nodes)"). Required when heterogeneous is true.
If true, the parameter is optimized per-element (broadcast to `shape`). If false, a single scalar is optimized and broadcast at runtime.
Optional bounds (lo, hi) for constrained optimization.
Dotted reference to the Parameter to optimize. Format: "<scope>.<param_name>" where <scope> is either a Dynamics class name or a coupling key.
Optional initial value for the optimizer (overrides the referenced Parameter's value).
Fixed-step or adaptive ODE integrator with TVB-specific extensions (noise, transient time, etc.). Inherits abs_tol, rel_tol from Solver. Overrides method default to 'euler'.
Relative tolerance for adaptive solvers.
Integration method (euler, heun, rk4, etc.)
Absolute tolerance for adaptive solvers.
Computational execution configuration (parallelization, devices).
Parameter exploration/grid search specifications
Default dynamics model for all nodes. For heterogeneous networks with multiple dynamics, use network.dynamics instead.
(Deprecated) Single software requirement; prefer 'environment' with aggregated requirements.
Observations derived from combining other observations. Computed after all regular observations are available. Examples: fc_corr (from fc, fc_target), rmse, etc.
Reusable function definitions. Referenced by name in observation pipelines. Enables DRY: define compute_fc once, use in both simulated and empirical paths.
Execution environment (collection of requirements).
Numerical continuation and bifurcation analysis specifications. Each entry defines a continuation experiment (equilibrium branch, codim-2 curve, periodic orbit family, etc.). # Either reference a full reusable environment (preferred) or, for
Multi-subject dataset for workflow rendering. When set, render_workflow() uses dataset.subjects/sessions to generate per-subject parallel jobs.
Events that apply at the experiment level. For component-level events, attach them to individual nodes or edges instead.
Iterative parameter tuning algorithms (FIC, EIB, etc.)
Time series data from simulations or measurements. Supports BIDS-compatible export for computational modeling (BEP034).
Software environment used to generate this data.
Timestamp when this TimeSeries was generated.
Ordering of dimensions: Time, State Variable, Space, Mode.
BIDS ModelEq reference: path to _eq.xml LEMS file.
Physical unit of the time series values.
Mapping of dimension names to their labels (JSON-encoded dict).
Time between samples (inverse of sampling_rate).
Imaging modality or simulation output type.
BIDS task name for the simulation (e.g., 'rest', 'simulation').
Reference to the SimulationExperiment that generated this TimeSeries.
BIDS ModelParam reference: path to _param.xml LEMS file.
Unit of the sampling period (e.g., 'ms', 's').
Reference to connectivity data (_conndata-network_connectivity.tsv).
Implanted DBS electrode and contact geometry.
Coordinate space used for implantation planning
List of physical contacts along the electrode
Anatomical target structure from a brain atlas
The planned trajectory for electrode implantation
A data collection session for a subject. Corresponds to a BIDS 'ses-' entity. Sessions capture longitudinal timepoints (baseline, follow-up), different experimental conditions, or repeated measures.
Experimental condition label (e.g., 'rest', 'task-nback'). Maps to BIDS 'task-' entity.
BIDS session identifier (without 'ses-' prefix). Examples: 'baseline', '6month', 'pre', 'post'.
Path to session-specific connectome. Overrides Subject.network when set. Relative to dataset root or BIDS derivatives.
Paths to empirical recordings for this session (e.g., BOLD time series, MEG/EEG). Relative to dataset root.
A schema for representing a parcellation entity, which is an anatomical location or study target.
Add the original label of this entity as defined in the parcellation terminology.
Add the related anatomical entity as defined by the UBERON ontology.
Add all anatomical parent structures for this entity as defined within the corresponding brain atlas.
Add the color code used for visual representation of this entity.
Enter any alternate names, including abbreviations, for this entity.
Enter the label used for looking up this entity in the parcellation terminology.
Add the center coordinate of this entity.
Specifies how to aggregate values across a dimension. Used for loss functions to define per-element loss with reduction.
Aggregation operation (mean, sum, max, min, none)
Dimension to aggregate over (e.g., node, time, state)
Reference to a class that can be instantiated and called. Used for external library classes (e.g., tvboptim.Bold, custom monitors). The class is instantiated with constructor_args, then called with call_args. Generalizable pattern: works for tvboptim, TVB, or any Python class.
Arguments passed to __init__ when instantiating the class. Example: period=1000.0, downsample_period=4.0 for Bold monitor.
Arguments passed when calling the instance (__call__). Usually the input data from simulation result. Example: result (simulation output array).
Reference to transient simulation result for history initialization. Some monitors (e.g., Bold) require history from warmup simulation. Value should reference a simulation result name (e.g., 'result_init').
Storage format in binary companion (dense, csr, coo)
Path to external mesh file (GIFTI, VTK, MSH, FreeSurfer, etc.).
Explicit format override (gifti, freesurfer, meshio, vtk, gmsh). Auto-detected from extension if null.
Node coordinates (x,y,z) in the given coordinate space.
Number of elements (triangles, quads, tetrahedra, etc.).
Connectivity (indices) or file reference to topology.
Network specification with nodes, edges, and reusable coupling configurations. Supports both explicit node/edge representation and matrix-based connectivity (Connectome compatibility).
Path to BEP017-compliant BIDS directory for loading connectivity matrices
BEP017 measure names for observational targets (e.g., BoldCorrelation)
Coordinate space for node positions (e.g., MNI152NLin2009c). Mirrors BrainAtlas.coordinateSpace so network node positions are unambiguous.
Ordered list of transforms applied to edge property matrices. Each Function's name identifies the target edge property (e.g. 'weight', 'length'). Supports equation-based (symbolic) or callable-based (software) transforms. Multiple transforms on the same target are applied sequentially.
Short alphanumeric identifier for the BIDS desc- filename entity (e.g., SC, FC, EC, SCFC). Classifies the connectivity modality of the network's edge measures.
Unit for distances/lengths in the network
Path/URI to parent (coarser) Network. When set, this network is a refinement where each node maps to exactly one parent node via node_mapping.
BEP017 measure names for structural connectivity (e.g., streamlineCount, tractLength)
List of directed edges with coupling references (optional, for explicit edge definition)
Dictionary of dynamics models keyed by name. Nodes reference these by name. For heterogeneous networks with per-node dynamics.
List of nodes with individual dynamics (optional, for heterogeneous networks)
Reusable coupling configurations referenced by edges (e.g., 'instant', 'delayed', 'inhibitory')
Number of nodes in the network (derived from nodes if not set)
Path to companion data file. Supported extensions: .h5 (HDF5), .zarr/ (Zarr), .csv (legacy single-matrix). Null if no companion data needed.
HDF5 dataset path for node-to-parent mapping. Int32 array of shape (N,) where entry i is the parent node ID. Required when parent_network is set.
Graph generator specification. When set, overrides explicit edges/nodes for graph construction. The type field is a free string; StandardGraphType lists well-known types that get automatic code generation across backends.
Optional scalar or vector intensity parameter for noise.
State variables this noise applies to; if omitted, applies globally.
Optional functional form of the noise (callable specification).
Inline Python code representation of the noise process.
A single stage in a multi-stage optimization workflow. Stages run sequentially, with each stage potentially using different parameters, shapes, learning rates, and algorithms.
A toolkit-specific key-value option (string name + string value). Used for backend settings that are not universal numeric parameters (e.g., solver name, tangent method, jacobian type).
Lightweight specification of a numerical ODE solver / integrator. Covers adaptive solvers (Vern9, Rodas5, Tsit5, etc.) used in shooting methods, initial-state integration, and other contexts where only the algorithm and tolerances matter.
Solver algorithm name (e.g., Vern9, Rodas5, Tsit5, euler, heun, rk4).
Metadata about a clinical score or scale.
If this score is a subscore of a broader composite
Domain assessed (e.g. motor, mood, pain)
The scale this score belongs to, if applicable
PubMed ID, DOI, or other reference to the score definition
Full name of the score (e.g., Unified Parkinson's Disease Rating Scale - Part III)
A complete specification of an iterative parameter tuning algorithm. Combines update rules, objectives, observations, and hyperparameters.
Algorithm type: 'fic', 'eib', 'homeostatic', 'custom'
Learning rate schedule: 'constant', 'linear', 'exponential'
Learning rate (eta) for the tuning algorithm
Duration of each simulation step (e.g., one BOLD TR)
Per-algorithm execution configuration (overrides experiment-level defaults). Useful for setting random_seed per algorithm to ensure reproducibility.
Function calls for tracking progress, computing metrics, etc. Each FunctionCall references a function from the experiment's functions section and specifies arguments for that specific algorithm context.
Additional algorithm-specific parameters
Include update rules from other algorithms with optional argument overrides. Unlike depends_on (sequential), includes means combined execution. Example: includes: [{algorithm: fic, arguments: [{name: eta, value: 0.1}]}]
Linear warmup of learning rate from 0 to learning_rate over n_iterations. eta_effective = eta * (i+1) / n_iterations
Other algorithms that must run first (e.g., EIB depends on FIC)
References to observations defined in the observations section. Includes both simulated observations and external data (via data_source).
How parameters are updated each iteration. When using 'includes', update_rules are inherited from included algorithms.
For hierarchical coupling: region-to-region connectivity with weights and delays
Observable functions computed from edge inputs and parameters after simulation. Maps to obsf/obssym in ND.jl EdgeModel. Example: absolute force magnitude computed from force components.
Whether coupling includes transmission delays
Output symbol names for the edge model. E.g. ['P'] for a scalar power flow, ['Fx', 'Fy'] for 2D forces. Maps directly to outsym in ND.jl EdgeModel. If not specified, derived from coupling variables of the connected vertex dynamics.
Whether the coupling uses sparse representations
Pre-processing expression applied before coupling
Edge symmetry type for NetworkDynamics.jl EdgeModel: 'directed' (default), 'antisymmetric', or 'symmetric'. AntiSymmetric edges flip sign for the reverse direction.
Mathematical function defining the coupling
For hierarchical coupling: aggregation method ('sum', 'mean', 'max') or custom Function
For hierarchical coupling: vertex-to-region mapping for aggregation
For hierarchical coupling: inner coupling applied at regional level
Post-processing expression applied after coupling
References to state variables from connected (source) nodes. Auto-populated from state_variables with coupling_variable=true when omitted. Used by name in pre_expression.
References to state variables from the local (target) node. Used by name in pre_expression.
For hierarchical coupling: distribution method ('broadcast', 'weighted') or custom Function
A probability distribution for sampling parameters or initial conditions. Standard distributions (Uniform, Gaussian) are specified by name and domain/parameters. Custom distributions use a Function for the PDF/sampling rule. Default name is Uniform when only domain is given.
Custom distribution function (PDF or sampling callable). Only needed for non-standard distributions.
Dimension along which the distribution is sampled. 'space' = per-node (default), 'time' = per-timestep (stochastic input).
Support of the distribution (sampling bounds). For Uniform this fully defines the distribution.
A discrete or continuous event that modifies the system during simulation. Generalizes Stimulus: can represent external inputs (stimulus type), threshold-triggered state changes (continuous/discrete type), or time-scheduled interventions (preset_time type). Attaches to components (nodes/edges) or to the experiment level.
Component to attach this event to. Can be a node label, edge label, or 'all_edges'/'all_vertices' for broadcast. If not specified, event is experiment-level.
State variable symbols modifiable in the affect function.
Stimulus equation for stimulus-type events. Legacy compatibility with Stimulus class.
Condition function. For continuous events: triggers when expression crosses zero. For discrete events: triggers when expression evaluates to true. Not used for preset_time or stimulus types.
Parameter symbols accessible in the condition function.
Target regions for stimulus-type events.
Affect function: what happens when the event triggers. Can modify state variables and/or parameters. For stimulus type, this is the stimulus equation.
Parameter symbols modifiable in the affect function.
State variable symbols accessible in the condition function. For edges, can include source/destination vertex outputs.
Affect on downcrossing (continuous events only). If not specified, uses the same affect for both crossings.
Predetermined trigger times for preset_time events. The solver will step exactly to these times.
Per-region weighting for stimulus-type events.
A function argument with explicit value specification. Value can be: literal (number/string), reference to input (input.key), or cross-observation reference (observation_name.output_key).
Argument value. Can be: - Literal: 1.0, "string", boolean, etc. - Input reference: "input.frequencies" (from source_observation outputs) - Cross-observation: "target_frequencies.peak_freqs" (from another observation)
Configuration for computational execution (parallelization, precision, hardware).
Number of parallel workers (maps to pmap devices in JAX, processes in multiprocessing)
Whether to find a fixed point (steady state) before time integration. Used as initial condition for ODEProblem. Maps to NLsolve.fixpoint! in ND.jl or similar in other backends.
Floating point precision: 'float32' or 'float64'
Hardware accelerator: 'cpu', 'gpu', 'tpu'
Batch size for vectorized operations (None = auto)
Number of CPU threads per worker (-1 = auto-detect)
Invocation of a function in a pipeline. Can reference a defined Function by name, OR inline a callable directly for external library functions, OR inline an equation, OR use class_call for class instantiation. Mirrors Function attributes so pipeline steps can be self-contained. The `name` is an optional step label (used in pipelines for keyed access to step outputs); it is NOT a global identifier (singleton uses like `loss`, `observable` may omit it).
Class instantiation and call (alternative to callable/function). Use for external library classes that need __init__ then __call__. Example: Bold monitor from tvboptim.
Time range for generated TimeSeries (for kernel generators)
Reference to previous function's output in pipeline (by name)
Name for this step's output (referenced by subsequent functions)
Dimension to apply function over (generates vmap in code). E.g., 'node' applies per-node.
Reference to a defined Function (by name)
Direct callable specification (alternative to function reference)
How to aggregate the result across dimensions. Example: aggregate.over=node, aggregate.type=mean applies function per node, then averages. Used in loss functions.
Optional step label; used in pipelines to key step outputs.
Unified class for all observation/measurement specifications. Covers monitors (BOLD, EEG), tuning observables, and derived quantities. Pipeline is a sequence of Functions with input -> output flow.
A reproducible software environment aggregating one or more SoftwareRequirement entries. Used by SimulationExperiment to specify the execution context.
Container image reference (e.g., ghcr.io/org/img:tag@sha256:...).
OS / architecture (e.g., linux-64, macos-arm64).
Environment definition version (not a package version).
Deterministic hash of the resolved dependency set.
A schema for representing a version of a common coordinate space.
Add the axes orientation in standard anatomical terms (XYZ).
Add the native unit that is used for this common coordinate space version.
Add all image files used as visual representation of this common coordinate space version.
Enter the origin (central point where all axes intersect).
Linked type for the license of the brain atlas or coordinate space version.
Observable functions computed from states, inputs, and parameters after simulation. Unlike derived_variables (which are intermediate algebraic expressions used within the ODE), observed variables are post-hoc quantities recoverable from the solution. Maps to obsf/obssym in ND.jl EdgeModel/VertexModel. Example: absolute force magnitude computed from force components.
Discrete state transitions intrinsic to the dynamical system, such as threshold-triggered resets in spiking neuron models. Unlike experiment-level events (stimulation, perturbation), these define the model's own discontinuous behavior.
Whether the system is autonomous (equations do not depend explicitly on time t). Non-autonomous systems have explicit time dependence, e.g. f*cos(omega*t).
Coarse classification of this model (mean_field, neural_mass, phase_oscillator, phenomenological, spiking, generic, field). Used for filtering in Dynamics.list_db(model_type=...).
Output variable names to include in simulation results. References to state_variables or derived_variables by name.
An individual software requirement binding a package to a version constraint and a role within an environment.
Build or artifact hash for exact reproducibility.
Reference to the software package identity.
(Deprecated) Use environment.requirements list instead.
Version or constraint specifier (e.g., '==2.7.3', '>=1.2,<2').
A function with explicit input -> transformation -> output flow. Can be equation-based (symbolic) or software-based (callable). In a pipeline, functions are chained: output of one becomes input of next.
How to aggregate the result across dimensions. E.g., aggregate.over=node computes per-row (per-node) with keepdims. The type field controls whether to reduce (mean/sum) or keep dimensions (none).
Specifies a range for array generation, parameter bounds, or grid exploration.
Lower bound or starting value. Can be a number or argument name.
Upper bound or stopping value. Can be a number or argument name.
Step size. Can be: number, argument name, or expression.
Explicit explored values for this element. When set on an element_domain entry, overrides the parent parameter's explored_values for this specific element.
Number of points (alternative to step for grid exploration).
Element/node index this range applies to. Used in element_domains to explicitly link a domain to a specific element of a heterogeneous parameter (e.g., element: 0 for node 0). Required when used in element_domains to avoid ambiguous positional indexing.