Skip to content

dsc_pipeline

dsc_pipeline

DSC-MRI analysis pipeline.

This module provides an end-to-end DSC-MRI analysis pipeline, integrating signal conversion, leakage correction, deconvolution, and perfusion parameter estimation.

The pipeline produces OSIPI CAPLEX-compliant perfusion maps (CBF, CBV, MTT) via SVD-based deconvolution.

References

.. [1] OSIPI CAPLEX, https://osipi.github.io/OSIPI_CAPLEX/ .. [2] Dickie BR et al. A community-endorsed open-source lexicon for contrast agent-based perfusion MRI: A consensus guidelines report from the ISMRM Open Science Initiative for Perfusion Imaging (OSIPI). MRM 2024;91(5):1761-1773. doi:10.1002/mrm.29840

DSCPipelineConfig dataclass

DSCPipelineConfig(te=30.0, baseline_frames=10, hematocrit_ratio=0.73, apply_leakage_correction=True, deconvolution=OSVDConfig(), output_dir=None)

Configuration for DSC-MRI pipeline.

ATTRIBUTE DESCRIPTION
te

Echo time in milliseconds.

TYPE: float

baseline_frames

Number of pre-bolus baseline frames for signal-to-ΔR2* conversion.

TYPE: int

hematocrit_ratio

Large-to-small-vessel hematocrit ratio for CBV correction.

TYPE: float

apply_leakage_correction

Whether to apply leakage correction.

TYPE: bool

deconvolution

Deconvolution method config (discriminated by method: sSVD/cSVD/oSVD), carrying that method's parameters.

TYPE: MethodConfig

output_dir

Output directory for results.

TYPE: Path | None

DSCPipelineResult dataclass

DSCPipelineResult(perfusion_maps, delta_r2, aif, config)

Result of DSC pipeline.

ATTRIBUTE DESCRIPTION
perfusion_maps

Computed perfusion parameter maps.

TYPE: DSCPerfusionMaps

delta_r2

ΔR2* data (original or leakage-corrected).

TYPE: NDArray

aif

AIF used for analysis.

TYPE: NDArray

config

Pipeline configuration used.

TYPE: DSCPipelineConfig

DSCPipeline

DSCPipeline(config=None)

End-to-end DSC-MRI analysis pipeline.

This pipeline performs: 1. Signal to ΔR2* conversion 2. AIF extraction 3. Leakage correction (optional) 4. SVD deconvolution 5. Perfusion parameter estimation (CBF, CBV, MTT)

Examples:

>>> from osipy.pipeline import DSCPipeline, DSCPipelineConfig
>>> config = DSCPipelineConfig(te=25.0, apply_leakage_correction=True)
>>> pipeline = DSCPipeline(config)
>>> result = pipeline.run(dsc_signal, time, aif_signal)

Initialize DSC pipeline.

PARAMETER DESCRIPTION
config

Pipeline configuration.

TYPE: DSCPipelineConfig | None DEFAULT: None

run

run(dsc_signal, time, aif_signal=None, aif_voxels=None, mask=None, progress_callback=None)

Run DSC-MRI analysis pipeline.

PARAMETER DESCRIPTION
dsc_signal

DSC-MRI signal data, shape (..., n_timepoints).

TYPE: PerfusionDataset or NDArray

time

Time points in seconds.

TYPE: NDArray

aif_signal

Pre-extracted AIF signal. If None, extracts from data.

TYPE: NDArray DEFAULT: None

aif_voxels

Mask of AIF voxels for extraction.

TYPE: NDArray DEFAULT: None

mask

Brain mask.

TYPE: NDArray DEFAULT: None

progress_callback

Callback for progress updates.

TYPE: Callable DEFAULT: None

RETURNS DESCRIPTION
DSCPipelineResult

Pipeline results.