Skip to content

asl_pipeline

asl_pipeline

ASL analysis pipeline.

This module provides an end-to-end ASL analysis pipeline, integrating M0 calibration and CBF quantification following the OSIPI ASL Lexicon conventions.

References

.. [1] OSIPI ASL Lexicon, https://osipi.github.io/ASL-Lexicon/ .. [2] Suzuki Y et al. MRM 2024;91(4):1411-1421.

ASLPipelineConfig dataclass

ASLPipelineConfig(labeling_scheme=PCASL, pld=1800.0, label_duration=1800.0, t1_blood=1650.0, labeling_efficiency=0.85, m0_method='single', output_dir=None)

Configuration for ASL pipeline.

Defaults match the ISMRM ASL consensus paper (Alsop et al., MRM 2015;73:102, PMC4190138) for healthy adults under 70 years. For older adults or clinical-population studies, Alsop Table 1 recommends PLD=2000 ms; override pld accordingly.

ATTRIBUTE DESCRIPTION
labeling_scheme

ASL labeling scheme.

TYPE: LabelingScheme

pld

Post-labeling delay in milliseconds. Default 1800 ms (Alsop 2015 healthy-adult value; use 2000 for clinical adults).

TYPE: float

label_duration

Labeling duration in milliseconds (for pCASL/CASL). Default 1800 ms (Alsop 2015 recommendation).

TYPE: float

t1_blood

Blood T1 in milliseconds. Default 1650 ms (Alsop 2015 at 3T).

TYPE: float

labeling_efficiency

Labeling efficiency. Default 0.85 for PCASL (Alsop 2015).

TYPE: float

m0_method

M0 calibration method: 'single', 'voxelwise', or 'reference_region'.

TYPE: str

output_dir

Output directory for results.

TYPE: Path | None

ASLPipelineResult dataclass

ASLPipelineResult(cbf_result, m0_map, config)

Result of ASL pipeline.

ATTRIBUTE DESCRIPTION
cbf_result

CBF quantification results.

TYPE: ASLQuantificationResult

m0_map

M0 values used.

TYPE: NDArray | None

config

Pipeline configuration used.

TYPE: ASLPipelineConfig

ASLPipeline

ASLPipeline(config=None)

End-to-end ASL analysis pipeline.

This pipeline performs: 1. ASL difference computation (label - control) 2. M0 calibration 3. CBF quantification

Examples:

>>> from osipy.pipeline import ASLPipeline, ASLPipelineConfig
>>> from osipy.asl import LabelingScheme
>>> config = ASLPipelineConfig(
...     labeling_scheme=LabelingScheme.PCASL,
...     pld=1800.0,
... )
>>> pipeline = ASLPipeline(config)
>>> result = pipeline.run(label_images, control_images, m0_image)

Initialize ASL pipeline.

PARAMETER DESCRIPTION
config

Pipeline configuration.

TYPE: ASLPipelineConfig | None DEFAULT: None

run

run(label_data, control_data, m0_data, mask=None, progress_callback=None)

Run ASL analysis pipeline.

PARAMETER DESCRIPTION
label_data

Label images, shape (...) or (..., n_averages).

TYPE: NDArray

control_data

Control images, shape (...) or (..., n_averages).

TYPE: NDArray

m0_data

M0 calibration image or single value.

TYPE: NDArray or float

mask

Brain mask.

TYPE: NDArray DEFAULT: None

progress_callback

Callback for progress updates.

TYPE: Callable DEFAULT: None

RETURNS DESCRIPTION
ASLPipelineResult

Pipeline results.

run_from_alternating

run_from_alternating(asl_data, m0_data, label_control_order='label_first', mask=None, progress_callback=None)

Run ASL pipeline from interleaved label/control data.

PARAMETER DESCRIPTION
asl_data

Interleaved ASL data, shape (..., n_pairs*2).

TYPE: NDArray

m0_data

M0 calibration data.

TYPE: NDArray or float

label_control_order

Order: 'label_first' or 'control_first'.

TYPE: str DEFAULT: 'label_first'

mask

Brain mask.

TYPE: NDArray DEFAULT: None

progress_callback

Progress callback.

TYPE: Callable DEFAULT: None

RETURNS DESCRIPTION
ASLPipelineResult

Pipeline results.