Skip to content

ivim_pipeline

ivim_pipeline

IVIM analysis pipeline.

This module provides an end-to-end IVIM-DWI analysis pipeline, integrating preprocessing and bi-exponential model fitting.

The pipeline produces parameter maps: D, D*, and f.

References

.. [1] OSIPI CAPLEX, https://osipi.github.io/OSIPI_CAPLEX/ .. [2] Le Bihan D et al. (1988). Radiology 168(2):497-505. .. [3] Dickie BR et al. MRM 2024. doi:10.1002/mrm.30101

IVIMPipelineConfig dataclass

IVIMPipelineConfig(
    fitting_method=SEGMENTED,
    b_threshold=200.0,
    normalize_signal=True,
    output_dir=None,
    bounds=None,
    initial_guess=None,
    max_iterations=500,
    tolerance=1e-06,
    bayesian_params=None,
)

Configuration for IVIM pipeline.

ATTRIBUTE DESCRIPTION
fitting_method

IVIM fitting method.

TYPE: FittingMethod

b_threshold

b-value threshold for segmented fitting (s/mm²).

TYPE: float

normalize_signal

Whether to normalize signal by b=0.

TYPE: bool

output_dir

Output directory for results.

TYPE: Path | None

bounds

Custom parameter bounds, e.g. {"D": (1e-4, 5e-3)}.

TYPE: dict[str, tuple[float, float]] | None

initial_guess

Custom initial parameter estimates, e.g. {"D": 1e-3}.

TYPE: dict[str, float] | None

max_iterations

Maximum iterations for optimization.

TYPE: int

tolerance

Convergence tolerance.

TYPE: float

bayesian_params

Bayesian-specific parameters (keys: prior_std, noise_std, compute_uncertainty). Only used when fitting_method is FittingMethod.BAYESIAN.

TYPE: dict | None

IVIMPipelineResult dataclass

IVIMPipelineResult(fit_result, config)

Result of IVIM pipeline.

ATTRIBUTE DESCRIPTION
fit_result

IVIM fitting results.

TYPE: IVIMFitResult

config

Pipeline configuration used.

TYPE: IVIMPipelineConfig

IVIMPipeline

IVIMPipeline(config=None)

End-to-end IVIM-DWI analysis pipeline.

This pipeline performs: 1. Signal normalization (optional) 2. IVIM bi-exponential model fitting 3. Parameter map generation (D, D*, f)

Examples:

>>> from osipy.pipeline import IVIMPipeline, IVIMPipelineConfig
>>> config = IVIMPipelineConfig(fitting_method=FittingMethod.SEGMENTED)
>>> pipeline = IVIMPipeline(config)
>>> result = pipeline.run(dwi_data, b_values)

Initialize IVIM pipeline.

PARAMETER DESCRIPTION
config

Pipeline configuration.

TYPE: IVIMPipelineConfig | None DEFAULT: None

run

run(dwi_data, b_values, mask=None, progress_callback=None)

Run IVIM analysis pipeline.

PARAMETER DESCRIPTION
dwi_data

DWI signal data, shape (..., n_b_values).

TYPE: PerfusionDataset or NDArray

b_values

b-values in s/mm².

TYPE: NDArray

mask

Brain/tissue mask.

TYPE: NDArray DEFAULT: None

progress_callback

Callback for progress updates.

TYPE: Callable DEFAULT: None

RETURNS DESCRIPTION
IVIMPipelineResult

Pipeline results.