dataset
dataset
¶
PerfusionDataset container for imaging data and metadata.
This module provides the core data container for perfusion imaging data, supporting 3D and 4D arrays with associated acquisition metadata.
PerfusionDataset
dataclass
¶
PerfusionDataset(
data,
affine,
modality,
time_points=None,
acquisition_params=AcquisitionParams(),
source_path=None,
source_format="unknown",
quality_mask=None,
)
Container for perfusion imaging data and metadata.
This dataclass holds the loaded imaging data along with spatial transformation, temporal information, and acquisition parameters.
| ATTRIBUTE | DESCRIPTION |
|---|---|
data |
3D or 4D array of image data with shape (x, y, z) or (x, y, z, t).
TYPE:
|
affine |
4x4 affine transformation matrix mapping voxel to world coordinates.
TYPE:
|
modality |
Perfusion imaging modality (DCE, DSC, ASL, IVIM).
TYPE:
|
time_points |
Time vector in seconds for dynamic (4D) data. Must have length equal to data.shape[3] if data is 4D.
TYPE:
|
acquisition_params |
Modality-specific acquisition parameters.
TYPE:
|
source_path |
Original file path if loaded from disk.
TYPE:
|
source_format |
Source file format ('nifti', 'dicom', 'bids').
TYPE:
|
quality_mask |
Boolean mask of valid voxels. Shape must match spatial dimensions.
TYPE:
|
| RAISES | DESCRIPTION |
|---|---|
ValueError
|
If data is not 3D or 4D, if affine is not 4x4, or if time_points length does not match 4th dimension. |
Examples:
>>> import numpy as np
>>> from osipy.common.dataset import PerfusionDataset
>>> from osipy.common.types import Modality, DCEAcquisitionParams
>>> data = np.random.rand(64, 64, 20, 30)
>>> affine = np.eye(4)
>>> time = np.linspace(0, 300, 30)
>>> params = DCEAcquisitionParams(tr=5.0, te=2.0, flip_angles=[2, 5, 10, 15])
>>> dataset = PerfusionDataset(
... data=data,
... affine=affine,
... modality=Modality.DCE,
... time_points=time,
... acquisition_params=params,
... )