Skip to content

report

report

ValidationReport dataclass for DRO comparison results.

This module provides the data container for storing validation comparison results against OSIPI Digital Reference Objects or other reference datasets.

References

QIBA DCE Profile v2.0 OSIPI Task Force 4.1/4.2 publications

ValidationReport dataclass

ValidationReport(
    reference_name,
    reference_parameters,
    computed_parameters,
    absolute_errors=dict(),
    relative_errors=dict(),
    tolerances=dict(),
    within_tolerance=dict(),
    pass_rate=dict(),
    overall_pass=False,
)

Validation comparison against reference values.

This dataclass contains the results of comparing computed parameter maps against reference (ground truth) values from OSIPI DROs or other validation datasets.

ATTRIBUTE DESCRIPTION
reference_name

Name of reference dataset (e.g., 'OSIPI_DRO_v10').

TYPE: str

reference_parameters

Ground truth parameter values.

TYPE: dict[str, NDArray[floating]]

computed_parameters

osipy computed parameter values.

TYPE: dict[str, NDArray[floating]]

absolute_errors

Absolute errors |computed - reference|.

TYPE: dict[str, NDArray[floating]]

relative_errors

Relative errors |computed - reference| / reference.

TYPE: dict[str, NDArray[floating]]

tolerances

Tolerance thresholds for each parameter. Format: {'Ktrans': {'absolute': 0.005, 'relative': 0.01}}

TYPE: dict[str, dict[str, float]]

within_tolerance

Boolean mask indicating voxels within tolerance.

TYPE: dict[str, NDArray[bool_]]

pass_rate

Fraction of voxels within tolerance per parameter.

TYPE: dict[str, float]

overall_pass

True if all parameters meet their tolerance criteria.

TYPE: bool

Examples:

>>> import numpy as np
>>> from osipy.common.validation.report import ValidationReport
>>> ref = {"Ktrans": np.array([0.1, 0.2, 0.3])}
>>> comp = {"Ktrans": np.array([0.105, 0.195, 0.31])}
>>> report = ValidationReport(
...     reference_name="OSIPI_DRO_v10",
...     reference_parameters=ref,
...     computed_parameters=comp,
...     absolute_errors={"Ktrans": np.abs(comp["Ktrans"] - ref["Ktrans"])},
...     relative_errors={"Ktrans": np.abs(comp["Ktrans"] - ref["Ktrans"]) / ref["Ktrans"]},
...     tolerances={"Ktrans": {"absolute": 0.01, "relative": 0.05}},
...     within_tolerance={"Ktrans": np.array([True, True, True])},
...     pass_rate={"Ktrans": 1.0},
...     overall_pass=True,
... )

parameters property

parameters

Return list of validated parameter names.

n_parameters property

n_parameters

Return number of validated parameters.

summary

summary()

Generate human-readable summary of validation results.

RETURNS DESCRIPTION
str

Formatted summary string.

get_statistics

get_statistics(parameter)

Get error statistics for a specific parameter.

PARAMETER DESCRIPTION
parameter

Parameter name.

TYPE: str

RETURNS DESCRIPTION
dict[str, float]

Statistics including mean/std/max absolute and relative errors.

to_dict

to_dict()

Serialize report to a dictionary.

RETURNS DESCRIPTION
dict[str, Any]

Dict with keys: reference_name, overall_pass, parameters (dict of param -> {pass_rate, statistics}), tolerances, timestamp, version.

to_json

to_json(path=None)

Serialize report to JSON string.

PARAMETER DESCRIPTION
path

Optional file path. If given, writes JSON to file.

TYPE: str | Path | None DEFAULT: None

RETURNS DESCRIPTION
str

JSON string.