classDiagram
class Observation
click Observation href "./Observation.html"
Observation : acronym
Observation --> "0..1" String : acronym
click String href "../http://www.w3.org/2001/XMLSchema#string.html"
Observation : aggregation
Observation --> "0..1" AggregationType : aggregation
click AggregationType href "../../enums/AggregationType.html"
Observation : analysis
Observation --> "0..1" Analysis : analysis
click Analysis href "./Analysis.html"
Observation : aux_data
Observation --> "*" Reference : aux_data
click Reference href "./Reference.html"
Observation : class_reference
Observation --> "0..1" ClassReference : class_reference
click ClassReference href "./ClassReference.html"
Observation : data_source
Observation --> "0..1" DataSource : data_source
click DataSource href "./DataSource.html"
Observation : description
Observation --> "0..1" String : description
click String href "../http://www.w3.org/2001/XMLSchema#string.html"
Observation : dims
Observation --> "*" String : dims
click String href "../http://www.w3.org/2001/XMLSchema#string.html"
Observation : downsample_period
Observation --> "0..1" Float : downsample_period
click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
Observation : dynamics
Observation --> "0..1" Dynamics : dynamics
click Dynamics href "./Dynamics.html"
Observation : environment
Observation --> "0..1" SoftwareEnvironment : environment
click SoftwareEnvironment href "./SoftwareEnvironment.html"
Observation : equation
Observation --> "0..1" Equation : equation
click Equation href "./Equation.html"
Observation : functions
Observation --> "*" Function : functions
click Function href "./Function.html"
Observation : histogram
Observation --> "0..1" Range : histogram
click Range href "./Range.html"
Observation : imaging_modality
Observation --> "0..1" ImagingModality : imaging_modality
click ImagingModality href "../../enums/ImagingModality.html"
Observation : iri
Observation --> "0..1" Uriorcurie : iri
click Uriorcurie href "../http://www.w3.org/2001/XMLSchema#anyURI.html"
Observation : label
Observation --> "0..1" String : label
click String href "../http://www.w3.org/2001/XMLSchema#string.html"
Observation : min_coverage
Observation --> "0..1" Float : min_coverage
click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
Observation : name
Observation --> "1" String : name
click String href "../http://www.w3.org/2001/XMLSchema#string.html"
Observation : parameters
Observation --> "*" Parameter : parameters
click Parameter href "./Parameter.html"
Observation : partition
Observation --> "0..1" Partition : partition
click Partition href "./Partition.html"
Observation : period
Observation --> "0..1" Float : period
click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
Observation : pipeline
Observation --> "*" FunctionCall : pipeline
click FunctionCall href "./FunctionCall.html"
Observation : query
Observation --> "0..1" BidsEntities : query
click BidsEntities href "./BidsEntities.html"
Observation : reconcile
Observation --> "0..1" NodeReconciliation : reconcile
click NodeReconciliation href "../../enums/NodeReconciliation.html"
Observation : record
Observation --> "0..1" Boolean : record
click Boolean href "../http://www.w3.org/2001/XMLSchema#boolean.html"
Observation : reduce
Observation --> "0..1" ObservationReductionMode : reduce
click ObservationReductionMode href "../../enums/ObservationReductionMode.html"
Observation : references
Observation --> "*" String : references
click String href "../http://www.w3.org/2001/XMLSchema#string.html"
Observation : source
Observation --> "*" String : source
click String href "../http://www.w3.org/2001/XMLSchema#string.html"
Observation : tail_duration
Observation --> "0..1" Float : tail_duration
click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
Observation : tail_samples
Observation --> "0..1" Integer : tail_samples
click Integer href "../http://www.w3.org/2001/XMLSchema#integer.html"
Observation : time_unit
Observation --> "0..1" UnitEnum : time_unit
click UnitEnum href "../../enums/UnitEnum.html"
Observation : unit
Observation --> "0..1" String : unit
click String href "../http://www.w3.org/2001/XMLSchema#string.html"
Observation : voi
Observation --> "0..1" Integer : voi
click Integer href "../http://www.w3.org/2001/XMLSchema#integer.html"
Observation : window_size
Observation --> "0..1" Integer : window_size
click Integer href "../http://www.w3.org/2001/XMLSchema#integer.html"
Class: Observation
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.
URI: tvbo:Observation
Class Properties
| Property | Value |
|---|---|
| Class URI | tvbo:Observation |
Slots
| Name | Cardinality and Range | Description | Inheritance |
|---|---|---|---|
| name | 1 xsd:string |
Globally unique identifier for the entity | direct |
| acronym | 0..1 xsd:string |
direct | |
| label | 0..1 xsd:string |
direct | |
| description | 0..1 xsd:string |
direct | |
| iri | 0..1 xsd:anyURI |
Optional stable IRI (or compact URI) for this entity in an external ontology … | direct |
| equation | 0..1 Equation |
direct | |
| parameters | * Parameter |
direct | |
| environment | 0..1 SoftwareEnvironment |
direct | |
| time_unit | 0..1 UnitEnum |
Unit of every time-valued number in this scope — the step size, any period, a… | direct |
| record | 0..1 xsd:boolean |
Whether to include this element in simulation output files | direct |
| unit | 0..1 xsd:string or UnitEnum |
Physical unit of measurement | direct |
| references | * xsd:string |
direct | |
| functions | * Function |
direct | |
| source | * xsd:string or StateVariable or Observation |
Ordered list of inputs this observation derives from | direct |
| aux_data | * Reference |
Ordered list of auxiliary inputs the observation pipeline consumes | direct |
| dims | * xsd:string |
Axis names of this observation’s output, outermost first, e | direct |
| period | 0..1 xsd:float |
Sampling period for monitors (ms) | direct |
| downsample_period | 0..1 xsd:float |
Intermediate downsampling period (ms) | direct |
| voi | 0..1 xsd:integer |
Variable of interest index (which state variable to monitor) | direct |
| imaging_modality | 0..1 ImagingModality |
Type of imaging modality (BOLD, EEG, MEG, etc | direct |
| data_source | 0..1 DataSource |
Load data from external source (file, database, API) | direct |
| query | 0..1 BidsEntities |
BIDS entity filter that selects one per-subject file under the experiment’s ... | direct | | [reconcile](../slots/reconcile.qmd) | 0..1 <br/> [NodeReconciliation](../enums/NodeReconciliation.qmd) | How a dataset-sourced target's nodes are aligned to the model network before ... | direct | | [min_coverage](../slots/min_coverage.qmd) | 0..1 <br/> [xsd:float](http://www.w3.org/2001/XMLSchema#float) | Minimum fraction of the model network's nodes that a ``by_label`` reconciliat... | direct | | [tail_samples](../slots/tail_samples.qmd) | 0..1 <br/> [xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | Number of samples from the end to use | direct | | [tail_duration](../slots/tail_duration.qmd) | 0..1 <br/> [xsd:float](http://www.w3.org/2001/XMLSchema#float) | Length of the trailing window as a duration, in the same time unit as the int... | direct | | [aggregation](../slots/aggregation.qmd) | 0..1 <br/> [AggregationType](../enums/AggregationType.qmd) | How to aggregate over time | direct | | [histogram](../slots/histogram.qmd) | 0..1 <br/> [Range](../classes/Range.qmd) | Bin spec (lo,hi,n) for a streaming order-statistic aggregation (aggr… |
direct |
| window_size | 0..1 xsd:integer |
Number of samples for windowed aggregation | direct |
| partition | 0..1 Partition |
Marks a grouped streaming reduction over a node partition (e | direct |
| pipeline | * FunctionCall |
Ordered sequence of Functions | direct |
| dynamics | 0..1 Dynamics |
Auxiliary state system co-integrated with the model to compute this observati… | direct |
| reduce | 0..1 ObservationReductionMode |
Opt into streaming evaluation of this observation: fold it into the integrato… | direct |
| class_reference | 0..1 ClassReference |
Direct class reference (alternative to pipeline) | direct |
| analysis | 0..1 Analysis |
Marks this observation as an analysis observable that operates on the solve/l… | direct |
Usages
| used by | used in | type | used |
|---|---|---|---|
| Observation | source | any_of[range] | Observation |
| UpdateRule | requires | range | Observation |
| TuningObjective | target_data | range | Observation |
| Algorithm | observations | range | Observation |
| SimulationExperiment | observations | range | Observation |
Identifier and Mapping Information
Schema Source
- from schema: https://w3id.org/tvbo
Mappings
| Mapping Type | Mapped Value |
|---|---|
| self | tvbo:Observation |
| native | tvbo:Observation |
LinkML Source
Direct
name: Observation
description: 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.
from_schema: https://w3id.org/tvbo
slots:
- name
- acronym
- label
- description
- iri
- equation
- parameters
- environment
- time_unit
- record
- unit
- references
attributes:
functions:
name: functions
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
- Dynamics
- Algorithm
- SimulationExperiment
- PDE
range: Function
multivalued: true
inlined: true
source:
name: source
description: Ordered list of inputs this observation derives from. Each entry
is either a StateVariable reference (raw observation of an integrated trajectory,
e.g. ``S_e``) or an Observation reference (derived observation, e.g. ``bold``).
Codegen checks each source name against ``experiment.observations``; names matching
an existing observation flag the parent as derived.
from_schema: https://w3id.org/tvbo
domain_of:
- Panel
- Edge
- Observation
- Dynamics
- Parameter
- CouplingInput
- Likelihood
- ResultBinding
multivalued: true
inlined: false
any_of:
- range: StateVariable
- range: Observation
aux_data:
name: aux_data
description: 'Ordered list of auxiliary inputs the observation pipeline consumes.
Examples: a Surface mesh''s faces array, an empirical FC matrix on a reference
Network, or another Observation''s output. Resolved load-time eagerly; rendered
code is self-contained.'
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
range: Reference
multivalued: true
inlined: true
inlined_as_list: true
dims:
name: dims
description: 'Axis names of this observation''s output, outermost first, e.g.
``[node]`` for a per-region value or ``[time, node]`` for a trajectory. Declare
it when the shape cannot be derived: a standard reduction states its own axes
and needs nothing here, but a ``pipeline`` of user functions has an output shape
only its author knows. Without it the container falls back to positional names
built from the CONTAINER VARIABLE, not from the observation — ``integration__target_peak_frequencies_d0``,
not ``target_peak_frequencies_d0`` — because inferring an axis from a length
is how a four-sample trace in a four-node network comes to be labelled by region.
A declaration that does not match the value it describes is refused by name
rather than ignored.'
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
- Analysis
range: string
multivalued: true
period:
name: period
description: 'Sampling period for monitors (ms). For BOLD: TR in ms.'
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
range: float
downsample_period:
name: downsample_period
description: 'Intermediate downsampling period (ms). For BOLD: typically matches
dt.'
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
range: float
voi:
name: voi
description: 'Variable of interest index (which state variable to monitor). Default:
0.'
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
range: integer
imaging_modality:
name: imaging_modality
description: Type of imaging modality (BOLD, EEG, MEG, etc.)
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
range: ImagingModality
data_source:
name: data_source
description: 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.
from_schema: https://w3id.org/tvbo
domain_of:
- Parcellation
- Tractogram
- Observation
range: DataSource
inlined: true
query:
name: query
description: 'BIDS entity filter that selects one per-subject file under the experiment''s
``dataset.bids_root`` when ``source`` is dataset-sourced (``dataset.subject.<measure>``).
The active subject fills the ``sub-`` entity at resolution time; the remaining
entities (e.g. ``desc: FCavg, atlas: Schaefer1000, suffix: relmat``) disambiguate
among the subject''s several networks/measurements. The same filter enumerates
the cohort for the per-subject workflow fan-out, so one declaration drives both
discovery and resolution.'
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
range: BidsEntities
inlined: true
reconcile:
name: reconcile
description: 'How a dataset-sourced target''s nodes are aligned to the model network
before comparison. ``by_label`` selects the shared node labels on both sides
by name (keyed ``.sel``), never by position, so a differing node count or order
cannot silently misalign the comparison. Matching is alias-aware: a target label
matches a model node when it equals that node''s ``label`` or any of its ``alternateName``
entries, so a differing nomenclature reconciles without relabelling either side.
``none`` disables reconciliation (identical node sets).'
from_schema: https://w3id.org/tvbo
ifabsent: by_label
domain_of:
- DataRef
- Observation
range: NodeReconciliation
min_coverage:
name: min_coverage
description: Minimum fraction of the model network's nodes that a ``by_label``
reconciliation must cover, else resolution raises. The realised coverage is
always logged. Absent (``null``) means require full coverage (``1.0``) for a
dataset-sourced target — silently fitting on a partial node subset must be an
explicit opt-in (e.g. ``0.95`` to tolerate a few genuinely-missing empirical
parcels), never the default.
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
range: float
minimum_value: 0.0
maximum_value: 1.0
tail_samples:
name: tail_samples
description: 'Number of samples from the end to use. Takes the last N samples
before aggregation. E.g., tail_samples: 500 means use data[-500:]. Prefer `tail_duration`
when the window means a duration — a sample count silently rescales when the
step size changes.'
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
range: integer
tail_duration:
name: tail_duration
description: Length of the trailing window as a duration, in the same time unit
as the integration step. Converted to a sample count against this observation's
own sample period (its `period`/`downsample_period`, else the integration `step_size`),
so the window stays the same length of simulated time at any step. Mutually
exclusive with `tail_samples`.
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
range: float
aggregation:
name: aggregation
description: How to aggregate over time
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
- Coupling
range: AggregationType
histogram:
name: histogram
description: 'Bin spec (`lo`, `hi`, `n`) for a streaming order-statistic aggregation
(`aggregation: median`). Should span the expected value range of the reduced
per-step quantity; the quantile is linearly interpolated within the crossing
bin. Only used by the streaming-median reduction path.'
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
range: Range
inlined: true
window_size:
name: window_size
description: Number of samples for windowed aggregation
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
range: integer
partition:
name: partition
description: 'Marks a grouped streaming reduction over a node partition (e.g.
per-hemisphere cortical wave metrics): the observer `dynamics` body is vmapped
over the partition axis and folded to per-group scalar metrics. Requires `period`
(the downsample) and an observer whose derived variables produce the per-group
outputs named by the Partition. See Partition.'
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
- WorkflowEngineConfig
range: Partition
inlined: true
pipeline:
name: pipeline
description: Ordered sequence of Functions. Each step has a unique `name` (used
to key step outputs) and transforms input -> output. List form preserves execution
order.
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
range: FunctionCall
multivalued: true
inlined: true
inlined_as_list: true
dynamics:
name: dynamics
description: 'Auxiliary state system co-integrated with the model to compute this
observation online, so the full trajectory need never be held. Its state variables
advance in step with the model, and the observation''s value is the derived
variable this Dynamics marks ``record: true`` — read at the final step for a
reduction (e.g. effective frequency) or, when ``period`` is set, emitted at
that period as a time series for a monitor (e.g. a Balloon-Windkessel hemodynamic
forward model, which then costs O(nodes) instead of O(time x nodes)). A backend
that implements this folds the observer into its own integration, so a batched
parameter sweep carries only the accumulator and not a per-cell trajectory;
``tvboptim`` does. An alternative to the post-scan ``pipeline`` / ``class_reference``
for observations expressible as a time recurrence. Its ``parameters`` are the
observer''s named constants, bound by name in every recurrence expression exactly
as a model Dynamics'' parameters are — scalar or array-valued (``value`` a nested
list, ``shape`` declaring its extent), so a fixed operator the reduction consumes
(a mesh gradient, a template matrix) is declared as data on the observer rather
than hidden inside a backend callable. Its expressions name the observed signal
``x``, bound to whatever this observation''s ``source`` names — the same device
a curated coupling''s ``pre_expression`` uses with ``x_j`` — so an observation
model is curated once and pointed at any model''s state variable. An observer
that declares its own ``x`` (state, parameter or derived variable) means that
``x`` and gets no binding.'
from_schema: https://w3id.org/tvbo
domain_of:
- Network
- Node
- Edge
- Observation
- Continuation
- SimulationExperiment
range: Dynamics
inlined: true
reduce:
name: reduce
description: 'Opt into streaming evaluation of this observation: fold it into
the integrator carry as an (init, update, finalize) reducer via prepare(reduce=...)
instead of computing it post-scan from a materialised trajectory. Byte-identical
to the pipeline value (to f64 rounding) but with O(block) instead of O(n_time)
peak memory, so a fit whose per-stage simulation is too long to hold the trajectory
(e.g. the Schirner 2023 group fit) can still evaluate it. Supported for the
HRF-Volterra BOLD pipeline (the resolver lifts the HRF kernel, downsample stride,
TR stride and Volterra k_1/V_0 from the declared pipeline), for cumulative mean/std/variance
aggregations, and for a matrix co-moment FC (compute_fc as a running covariance
emitted at finalize, never a trajectory). Byte-identical holds noise-off; with
a per-block noise draw the realization shifts with block size (ergodically vanishing).
Absent (the default) keeps the post-scan pipeline unchanged — no other observation
or experiment is affected.'
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
- ExplorationAxis
range: ObservationReductionMode
class_reference:
name: class_reference
description: '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}]}'
from_schema: https://w3id.org/tvbo
rank: 1000
domain_of:
- Observation
range: ClassReference
inlined: true
analysis:
name: analysis
description: Marks this observation as an analysis observable that operates on
the solve/loss rather than a result-data pipeline (autodiff gradient, finite-difference
gradient, or Lyapunov spectrum).
from_schema: https://w3id.org/tvbo
domain_of:
- DataRef
- Observation
range: Analysis
inlined: true
class_uri: tvbo:ObservationInduced
name: Observation
description: 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.
from_schema: https://w3id.org/tvbo
attributes:
functions:
name: functions
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
- Dynamics
- Algorithm
- SimulationExperiment
- PDE
range: Function
multivalued: true
inlined: true
source:
name: source
description: Ordered list of inputs this observation derives from. Each entry
is either a StateVariable reference (raw observation of an integrated trajectory,
e.g. ``S_e``) or an Observation reference (derived observation, e.g. ``bold``).
Codegen checks each source name against ``experiment.observations``; names matching
an existing observation flag the parent as derived.
from_schema: https://w3id.org/tvbo
owner: Observation
domain_of:
- Panel
- Edge
- Observation
- Dynamics
- Parameter
- CouplingInput
- Likelihood
- ResultBinding
range: string
multivalued: true
inlined: false
any_of:
- range: StateVariable
- range: Observation
aux_data:
name: aux_data
description: 'Ordered list of auxiliary inputs the observation pipeline consumes.
Examples: a Surface mesh''s faces array, an empirical FC matrix on a reference
Network, or another Observation''s output. Resolved load-time eagerly; rendered
code is self-contained.'
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
range: Reference
multivalued: true
inlined: true
inlined_as_list: true
dims:
name: dims
description: 'Axis names of this observation''s output, outermost first, e.g.
``[node]`` for a per-region value or ``[time, node]`` for a trajectory. Declare
it when the shape cannot be derived: a standard reduction states its own axes
and needs nothing here, but a ``pipeline`` of user functions has an output shape
only its author knows. Without it the container falls back to positional names
built from the CONTAINER VARIABLE, not from the observation — ``integration__target_peak_frequencies_d0``,
not ``target_peak_frequencies_d0`` — because inferring an axis from a length
is how a four-sample trace in a four-node network comes to be labelled by region.
A declaration that does not match the value it describes is refused by name
rather than ignored.'
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
- Analysis
range: string
multivalued: true
period:
name: period
description: 'Sampling period for monitors (ms). For BOLD: TR in ms.'
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
range: float
downsample_period:
name: downsample_period
description: 'Intermediate downsampling period (ms). For BOLD: typically matches
dt.'
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
range: float
voi:
name: voi
description: 'Variable of interest index (which state variable to monitor). Default:
0.'
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
range: integer
imaging_modality:
name: imaging_modality
description: Type of imaging modality (BOLD, EEG, MEG, etc.)
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
range: ImagingModality
data_source:
name: data_source
description: 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.
from_schema: https://w3id.org/tvbo
owner: Observation
domain_of:
- Parcellation
- Tractogram
- Observation
range: DataSource
inlined: true
query:
name: query
description: 'BIDS entity filter that selects one per-subject file under the experiment''s
``dataset.bids_root`` when ``source`` is dataset-sourced (``dataset.subject.<measure>``).
The active subject fills the ``sub-`` entity at resolution time; the remaining
entities (e.g. ``desc: FCavg, atlas: Schaefer1000, suffix: relmat``) disambiguate
among the subject''s several networks/measurements. The same filter enumerates
the cohort for the per-subject workflow fan-out, so one declaration drives both
discovery and resolution.'
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
range: BidsEntities
inlined: true
reconcile:
name: reconcile
description: 'How a dataset-sourced target''s nodes are aligned to the model network
before comparison. ``by_label`` selects the shared node labels on both sides
by name (keyed ``.sel``), never by position, so a differing node count or order
cannot silently misalign the comparison. Matching is alias-aware: a target label
matches a model node when it equals that node''s ``label`` or any of its ``alternateName``
entries, so a differing nomenclature reconciles without relabelling either side.
``none`` disables reconciliation (identical node sets).'
from_schema: https://w3id.org/tvbo
ifabsent: by_label
owner: Observation
domain_of:
- DataRef
- Observation
range: NodeReconciliation
min_coverage:
name: min_coverage
description: Minimum fraction of the model network's nodes that a ``by_label``
reconciliation must cover, else resolution raises. The realised coverage is
always logged. Absent (``null``) means require full coverage (``1.0``) for a
dataset-sourced target — silently fitting on a partial node subset must be an
explicit opt-in (e.g. ``0.95`` to tolerate a few genuinely-missing empirical
parcels), never the default.
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
range: float
minimum_value: 0.0
maximum_value: 1.0
tail_samples:
name: tail_samples
description: 'Number of samples from the end to use. Takes the last N samples
before aggregation. E.g., tail_samples: 500 means use data[-500:]. Prefer `tail_duration`
when the window means a duration — a sample count silently rescales when the
step size changes.'
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
range: integer
tail_duration:
name: tail_duration
description: Length of the trailing window as a duration, in the same time unit
as the integration step. Converted to a sample count against this observation's
own sample period (its `period`/`downsample_period`, else the integration `step_size`),
so the window stays the same length of simulated time at any step. Mutually
exclusive with `tail_samples`.
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
range: float
aggregation:
name: aggregation
description: How to aggregate over time
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
- Coupling
range: AggregationType
histogram:
name: histogram
description: 'Bin spec (`lo`, `hi`, `n`) for a streaming order-statistic aggregation
(`aggregation: median`). Should span the expected value range of the reduced
per-step quantity; the quantile is linearly interpolated within the crossing
bin. Only used by the streaming-median reduction path.'
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
range: Range
inlined: true
window_size:
name: window_size
description: Number of samples for windowed aggregation
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
range: integer
partition:
name: partition
description: 'Marks a grouped streaming reduction over a node partition (e.g.
per-hemisphere cortical wave metrics): the observer `dynamics` body is vmapped
over the partition axis and folded to per-group scalar metrics. Requires `period`
(the downsample) and an observer whose derived variables produce the per-group
outputs named by the Partition. See Partition.'
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
- WorkflowEngineConfig
range: Partition
inlined: true
pipeline:
name: pipeline
description: Ordered sequence of Functions. Each step has a unique `name` (used
to key step outputs) and transforms input -> output. List form preserves execution
order.
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
range: FunctionCall
multivalued: true
inlined: true
inlined_as_list: true
dynamics:
name: dynamics
description: 'Auxiliary state system co-integrated with the model to compute this
observation online, so the full trajectory need never be held. Its state variables
advance in step with the model, and the observation''s value is the derived
variable this Dynamics marks ``record: true`` — read at the final step for a
reduction (e.g. effective frequency) or, when ``period`` is set, emitted at
that period as a time series for a monitor (e.g. a Balloon-Windkessel hemodynamic
forward model, which then costs O(nodes) instead of O(time x nodes)). A backend
that implements this folds the observer into its own integration, so a batched
parameter sweep carries only the accumulator and not a per-cell trajectory;
``tvboptim`` does. An alternative to the post-scan ``pipeline`` / ``class_reference``
for observations expressible as a time recurrence. Its ``parameters`` are the
observer''s named constants, bound by name in every recurrence expression exactly
as a model Dynamics'' parameters are — scalar or array-valued (``value`` a nested
list, ``shape`` declaring its extent), so a fixed operator the reduction consumes
(a mesh gradient, a template matrix) is declared as data on the observer rather
than hidden inside a backend callable. Its expressions name the observed signal
``x``, bound to whatever this observation''s ``source`` names — the same device
a curated coupling''s ``pre_expression`` uses with ``x_j`` — so an observation
model is curated once and pointed at any model''s state variable. An observer
that declares its own ``x`` (state, parameter or derived variable) means that
``x`` and gets no binding.'
from_schema: https://w3id.org/tvbo
owner: Observation
domain_of:
- Network
- Node
- Edge
- Observation
- Continuation
- SimulationExperiment
range: Dynamics
inlined: true
reduce:
name: reduce
description: 'Opt into streaming evaluation of this observation: fold it into
the integrator carry as an (init, update, finalize) reducer via prepare(reduce=...)
instead of computing it post-scan from a materialised trajectory. Byte-identical
to the pipeline value (to f64 rounding) but with O(block) instead of O(n_time)
peak memory, so a fit whose per-stage simulation is too long to hold the trajectory
(e.g. the Schirner 2023 group fit) can still evaluate it. Supported for the
HRF-Volterra BOLD pipeline (the resolver lifts the HRF kernel, downsample stride,
TR stride and Volterra k_1/V_0 from the declared pipeline), for cumulative mean/std/variance
aggregations, and for a matrix co-moment FC (compute_fc as a running covariance
emitted at finalize, never a trajectory). Byte-identical holds noise-off; with
a per-block noise draw the realization shifts with block size (ergodically vanishing).
Absent (the default) keeps the post-scan pipeline unchanged — no other observation
or experiment is affected.'
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
- ExplorationAxis
range: ObservationReductionMode
class_reference:
name: class_reference
description: '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}]}'
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Observation
range: ClassReference
inlined: true
analysis:
name: analysis
description: Marks this observation as an analysis observable that operates on
the solve/loss rather than a result-data pipeline (autodiff gradient, finite-difference
gradient, or Lyapunov spectrum).
from_schema: https://w3id.org/tvbo
owner: Observation
domain_of:
- DataRef
- Observation
range: Analysis
inlined: true
name:
name: name
description: Globally unique identifier for the entity.
from_schema: https://w3id.org/tvbo/common
slot_uri: schema:name
identifier: true
owner: Observation
domain_of:
- BrainAtlas
- CommonCoordinateSpace
- ParcellationEntity
- StudyLayout
- StudyTemplate
- StudyDirectory
- StudyFile
- DBSProtocol
- ClinicalScale
- ClinicalScore
- SoftwarePackage
- SoftwareRequirement
- SoftwareEnvironment
- Figure
- Event
- Tractogram
- ResultEntity
- Activity
- CachedArray
- MeasureSpec
- NamedArray
- GraphGenerator
- Binding
- ProcedureStep
- File
- StateValue
- Observation
- Dynamics
- StateVariable
- Distribution
- Parameter
- CouplingInput
- Argument
- Function
- FunctionCall
- Callable
- DerivedParameter
- DerivedVariable
- DataSource
- OptimizationStage
- Exploration
- Inference
- Prior
- Likelihood
- UpdateRule
- Algorithm
- Option
- BranchSwitch
- Continuation
- Coupling
- EnvironmentVariable
- SchedulerDirective
- Reducer
range: string
required: true
acronym:
name: acronym
from_schema: https://w3id.org/tvbo
rank: 1000
slot_uri: skos:notation
owner: Observation
domain_of:
- ClinicalScale
- ClinicalScore
- Observation
- Function
- FunctionCall
range: string
label:
name: label
from_schema: https://w3id.org/tvbo
rank: 1000
slot_uri: rdfs:label
owner: Observation
domain_of:
- ParcellationTerminology
- Subject
- Session
- Dataset
- Contact
- SoftwareEnvironment
- Figure
- Panel
- Inset
- Layer
- Colorbar
- Rule
- Equation
- Stimulus
- Event
- Parcellation
- Tractogram
- Matrix
- Phenotype
- Network
- Node
- Edge
- Observation
- Dynamics
- StateVariable
- Parameter
- Function
- FunctionCall
- DerivedVariable
- RandomStream
- DataSource
- OptimizationStage
- Exploration
- ExplorationAxis
- FreeParameter
- Inference
- AlgorithmStage
- TuningObjective
- Continuation
- Coupling
- RegionMapping
- SimulationExperiment
- SimulationStudy
- TimeSeries
- NDArray
- SpatialDomain
- Mesh
- SpatialField
- FieldStateVariable
- DifferentialOperator
- BoundaryCondition
- PDESolver
- PDE
range: string
description:
name: description
from_schema: https://w3id.org/tvbo
rank: 1000
slot_uri: dcterms:description
owner: Observation
domain_of:
- CommonCoordinateSpace
- Dataset
- StudyLayout
- StudyTemplate
- StudyDirectory
- StudyFile
- ClinicalScore
- SoftwarePackage
- SoftwareRequirement
- SoftwareEnvironment
- Figure
- Panel
- Equation
- Stimulus
- Event
- Tractogram
- Matrix
- ResultEntity
- Activity
- Phenotype
- MeasureSpec
- NamedArray
- Network
- GraphGenerator
- ProcedureStep
- File
- Node
- Edge
- Observation
- Dynamics
- StateVariable
- Parameter
- CouplingInput
- Argument
- Function
- FunctionCall
- Callable
- DerivedParameter
- DerivedVariable
- RandomStream
- DataSource
- OptimizationStage
- Exploration
- ExplorationAxis
- FreeParameter
- Inference
- Prior
- Likelihood
- UpdateRule
- AlgorithmStage
- TuningObjective
- Algorithm
- BranchSwitch
- Continuation
- Integrator
- Coupling
- RegionMapping
- SimulationExperiment
- Study
- ResultBinding
- TimeSeries
- NDArray
- SpatialDomain
- Mesh
- SpatialField
- FieldStateVariable
- BoundaryCondition
- PDESolver
- PDE
- Reducer
range: string
iri:
name: iri
description: 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).
from_schema: https://w3id.org/tvbo
rank: 1000
slot_uri: dcterms:identifier
owner: Observation
domain_of:
- DataRef
- Theme
- Parcellation
- Tractogram
- ResultEntity
- Activity
- ReferenceFingerprint
- GraphGenerator
- Reference
- Observation
- Dynamics
- Function
- FunctionCall
- Coupling
range: uriorcurie
equation:
name: equation
from_schema: https://w3id.org/tvbo
rank: 1000
slot_uri: tvbo:Equation
owner: Observation
domain_of:
- Stimulus
- Event
- ProcedureStep
- Observation
- StateVariable
- Parameter
- Function
- FunctionCall
- DerivedParameter
- DerivedVariable
- Noise
- UpdateRule
- DifferentialOperator
- BoundaryCondition
range: Equation
inlined: true
parameters:
name: parameters
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Equation
- Stimulus
- Event
- ExperimentResultSidecar
- Network
- GraphGenerator
- Node
- Edge
- Observation
- Analysis
- Dynamics
- Distribution
- Noise
- Exploration
- Discretization
- BranchSwitch
- Integrator
- Coupling
- PDE
range: Parameter
multivalued: true
inlined: true
environment:
name: environment
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Provenance
- Observation
- SimulationExperiment
- PDESolver
range: SoftwareEnvironment
time_unit:
name: time_unit
description: 'Unit of every time-valued number in this scope — the step size,
any period, and the physical meaning of one model time-step. Declared at whichever
scope owns the clock (network, integrator, observation); `tvbo.utils.units.time_unit_of`
resolves a scope to its effective unit by walking outwards, and states the `ms`
fallback once, at the end of that walk. Deliberately carries no default: a defaulted
slot cannot be inherited through, so `ifabsent: ms` made an unset unit indistinguishable
from one someone wrote, and masked an explicitly declared `s` one scope out.
`time_scale` is accepted as a synonym.'
from_schema: https://w3id.org/tvbo
aliases:
- time_scale
rank: 1000
owner: Observation
domain_of:
- Network
- Observation
- Integrator
range: UnitEnum
record:
name: record
description: Whether to include this element in simulation output files. Applicable
to state variables (default true), derived variables (default false), and network
nodes (default true). On an observation it forces (true) or suppresses (false)
persistence in the result; left unset, a terminal observation (one not consumed
by another observation or a loss) is recorded and an intermediate one is not.
Set false to suppress recording.
from_schema: https://w3id.org/tvbo
rank: 1000
owner: Observation
domain_of:
- Node
- Observation
- StateVariable
- DerivedVariable
- Exploration
range: boolean
unit:
name: unit
description: 'Physical unit of measurement. `UnitEnum` is the curated vocabulary
— each of its values is vendored from QUDT (`ontology/tvb-o-units.ttl`) and
can be reasoned about dimensionally. The range is deliberately open beyond it:
a unit nobody has curated yet is recorded as written and reported `uncurated`,
because a closed range forces the author to either misdeclare the quantity or
leave it undeclared, and both lose more than an unrecognised string does. An
uncurated unit carries no dimensional claim, so a check involving it reports
`underdetermined` rather than guessing. Promote one with `tvbo units add <unit>`,
which pulls its QUDT record into the vendored module — so every unit TVBO *reasons*
about stays authoritative, and only what it *records* is open.'
from_schema: https://w3id.org/tvbo
rank: 1000
slot_uri: qudt:unit
owner: Observation
domain_of:
- CommonCoordinateSpace
- ToolUnit
- MeasureSpec
- NamedArray
- Edge
- Observation
- StateVariable
- Parameter
- Argument
- DerivedParameter
- DerivedVariable
- ExplorationAxis
- Integrator
- TimeSeries
- NDArray
- SpatialField
range: string
any_of:
- range: UnitEnum
- range: string
references:
name: references
from_schema: https://w3id.org/tvbo
rank: 1000
slot_uri: dcterms:references
owner: Observation
domain_of:
- Provenance
- Observation
- Dynamics
- SimulationExperiment
- SimulationStudy
range: string
multivalued: true
class_uri: tvbo:Observation