Skip to content

biexponential

biexponential

IVIM bi-exponential signal model.

This module implements the IVIM bi-exponential model for separating diffusion and perfusion contributions in DWI data, following the OSIPI CAPLEX definitions for IVIM quantities.

IVIM parameters:

  • D (diffusion coefficient): True tissue diffusion coefficient, units mm^2/s.
  • D* (pseudo-diffusion coefficient): Perfusion-related incoherent motion coefficient, units mm^2/s.
  • f (perfusion fraction): Fraction of signal arising from the perfusion (microvascular) compartment, dimensionless [0, 1].
References

.. [1] Le Bihan D et al. (1988). Separation of diffusion and perfusion in intravoxel incoherent motion MR imaging. Radiology 168(2):497-505. .. [2] Lemke A et al. (2010). An in vivo verification of the intravoxel incoherent motion effect in diffusion-weighted imaging of the abdomen. Magn Reson Med 64(6):1580-1585. .. [3] OSIPI CAPLEX, https://osipi.github.io/OSIPI_CAPLEX/ .. [4] Dickie BR et al. MRM 2024. doi:10.1002/mrm.30101

IVIMParams dataclass

IVIMParams(s0=1.0, d=0.001, d_star=0.01, f=0.1)

Parameters for IVIM model.

All diffusion parameters are stored in SI-consistent units (mm^2/s).

ATTRIBUTE DESCRIPTION
s0

Signal intensity at b=0 (arbitrary units).

TYPE: float

d

Tissue diffusion coefficient (D) in mm^2/s. Typical range: 0.5e-3 to 2.0e-3 mm^2/s.

TYPE: float

d_star

Pseudo-diffusion coefficient (D*) in mm^2/s. Represents perfusion contribution. Typical range: 5e-3 to 20e-3 mm^2/s (much higher than D).

TYPE: float

f

Perfusion fraction (f), dimensionless [0, 1]. Fraction of signal from perfusion compartment. Typical range: 0.05-0.30.

TYPE: float

References

.. [1] OSIPI CAPLEX, https://osipi.github.io/OSIPI_CAPLEX/

IVIMModel

Bases: BaseSignalModel, ABC

Abstract base class for IVIM models.

name abstractmethod property

name

Return model name.

parameters abstractmethod property

parameters

Return parameter names.

predict

predict(b_values, params, xp=None)

Predict signal at given b-values.

Accepts both dict/dataclass and array parameters transparently.

PARAMETER DESCRIPTION
b_values

Diffusion weighting values in s/mm².

TYPE: NDArray[floating]

params

Parameter array (n_params,) / (n_params, n_voxels), or a dict / dataclass that will be converted automatically.

TYPE: NDArray or dict or IVIMParams

xp

Array module (numpy or cupy). Inferred from b_values when omitted.

TYPE: module DEFAULT: None

RETURNS DESCRIPTION
NDArray[floating]

Predicted signal intensity.

predict_batch

predict_batch(b_values, params_batch, xp)

Predict signal for multiple voxels simultaneously.

Reshapes b_values to a column vector and delegates to :meth:_predict, which handles broadcasting.

PARAMETER DESCRIPTION
b_values

b-values in s/mm², shape (n_b,).

TYPE: NDArray[floating]

params_batch

Parameter values, shape (n_params, n_voxels).

TYPE: NDArray[floating]

xp

Array module (numpy or cupy).

TYPE: module

RETURNS DESCRIPTION
NDArray[floating]

Predicted signal, shape (n_b, n_voxels).

get_bounds abstractmethod

get_bounds()

Return physiological parameter bounds.

IVIMBiexponentialModel

Bases: IVIMModel

IVIM bi-exponential model.

The bi-exponential model describes the DWI signal as:

S(b) = S0 * [(1-f) * exp(-b*D) + f * exp(-b*D*)]

where: - S0 is the signal at b=0 - f is the perfusion fraction - D is the tissue diffusion coefficient - D* is the pseudo-diffusion coefficient

This model assumes that D* >> D, so the perfusion component decays rapidly at low b-values.

References

.. [1] Le Bihan D et al. (1988). Radiology 168(2):497-505. .. [2] OSIPI CAPLEX, https://osipi.github.io/OSIPI_CAPLEX/

name property

name

Return model name.

parameters property

parameters

Return parameter names.

parameter_units property

parameter_units

Return parameter units.

reference property

reference

Return primary literature citation.

params_to_array

params_to_array(params)

Convert IVIMParams or dict to array.

Handles the D*d_star field mapping.

get_bounds

get_bounds()

Return physiological parameter bounds.

Bounds follow OSIPI TF2.4 recommendations for IVIM parameters. f upper bound of 0.7 accommodates tissues with high perfusion fraction such as liver and intestine.

IVIMSimplifiedModel

IVIMSimplifiedModel(b_threshold=200.0)

Bases: IVIMModel

Simplified IVIM model.

Assumes D >> D, so exp(-bD*) is approximately 0 for b > b_threshold:

S(b) = S0 * (1-f) * exp(-b*D)    for b > b_threshold
S(0) = S0

This allows two-step fitting: 1. Fit mono-exponential at high b-values to get D 2. Fit f from low b-values

References

.. [1] Le Bihan D et al. (1988). Radiology 168(2):497-505. .. [2] OSIPI CAPLEX, https://osipi.github.io/OSIPI_CAPLEX/

Initialize simplified model.

PARAMETER DESCRIPTION
b_threshold

b-value threshold above which perfusion contribution is negligible (s/mm²).

TYPE: float DEFAULT: 200.0

name property

name

Return model name.

parameters property

parameters

Return parameter names.

parameter_units property

parameter_units

Return parameter units.

reference property

reference

Return primary literature citation.

get_bounds

get_bounds()

Return parameter bounds.