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.

ATTRIBUTE DESCRIPTION
labeling_scheme

ASL labeling scheme.

TYPE: LabelingScheme

pld

Post-labeling delay in milliseconds.

TYPE: float

label_duration

Labeling duration in milliseconds (for pCASL/CASL).

TYPE: float

t1_blood

Blood T1 in milliseconds.

TYPE: float

labeling_efficiency

Labeling efficiency.

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.