Skip to content

two_compartment_uptake

two_compartment_uptake

Two-Compartment Uptake Model (2CUM).

This module implements the Two-Compartment Uptake Model for DCE-MRI, a simplification of 2CXM with unidirectional uptake (no backflux from EES). 3 parameters: Fp, PS, vp (no ve).

GPU/CPU agnostic using the xp array module pattern. NO scipy dependency - uses xp.linalg operations.

References

.. [1] OSIPI CAPLEX, https://osipi.github.io/OSIPI_CAPLEX/ .. [2] Dickie BR et al. MRM 2024. doi:10.1002/mrm.30101 .. [3] Sourbron SP, Buckley DL. MRM 2011;66(3):735-745.

TwoCompartmentUptakeParams dataclass

TwoCompartmentUptakeParams(fp=15.0, ps=2.0, vp=0.02)

Bases: ModelParameters

Parameters for Two-Compartment Uptake Model (2CUM).

ATTRIBUTE DESCRIPTION
fp

Plasma flow (OSIPI: Q.PH1.002) in mL/min/100mL.

TYPE: float

ps

Permeability-surface area product (OSIPI: Q.PH1.004) in mL/min/100mL.

TYPE: float

vp

Plasma volume fraction (OSIPI: Q.PH1.001), mL/100mL.

TYPE: float

TwoCompartmentUptakeModel

Bases: BasePerfusionModel[TwoCompartmentUptakeParams]

Two-Compartment Uptake Model (2CUM).

Implements the 2CUM with unidirectional uptake from plasma to EES (no backflux). This is a simplification of the 2CXM with 3 parameters instead of 4.

ATTRIBUTE DESCRIPTION
Fp

Plasma flow (OSIPI: Q.PH1.002), mL/min/100mL.

TYPE: float

PS

Permeability-surface area product (OSIPI: Q.PH1.004), mL/min/100mL.

TYPE: float

vp

Plasma volume fraction (OSIPI: Q.PH1.001), mL/100mL.

TYPE: float

Notes

The tissue concentration is: E = PS / (Fp + PS) (extraction fraction) T = vp / (Fp + PS) (time constant) Ct(t) = Fp * [(1-E) * exp(-t/T) ⊛ Ca(t) + E * ∫₀ᵗ Ca(τ)dτ]

where: - Ca is arterial concentration (AIF) - Fp is plasma flow (OSIPI: Q.PH1.002) - PS is permeability-surface area product (OSIPI: Q.PH1.004) - vp is plasma volume fraction (OSIPI: Q.PH1.001) - ⊛ denotes convolution

GPU/CPU agnostic - operates on same device as input arrays.

References

.. [1] OSIPI CAPLEX, https://osipi.github.io/OSIPI_CAPLEX/ .. [2] Dickie BR et al. MRM 2024. doi:10.1002/mrm.30101 .. [3] Sourbron SP, Buckley DL. MRM 2011;66(3):735-745.

time_unit property

time_unit

Return time unit (minutes for 2CUM).

name property

name

Return model name.

parameters property

parameters

Return parameter names.

parameter_units property

parameter_units

Return parameter units.

reference property

reference

Return literature citation.

get_initial_guess_batch

get_initial_guess_batch(ct_batch, aif, t, xp)

Compute vectorized initial guesses for a batch of voxels.

PARAMETER DESCRIPTION
ct_batch

Tissue concentration curves, shape (n_timepoints, n_voxels).

TYPE: NDArray[floating]

aif

Arterial input function, shape (n_timepoints,).

TYPE: NDArray[floating]

t

Time points in seconds, shape (n_timepoints,).

TYPE: NDArray[floating]

xp

Array module (numpy or cupy).

TYPE: module

RETURNS DESCRIPTION
NDArray[floating]

Initial parameter guesses, shape (3, n_voxels).

get_bounds

get_bounds()

Return physiological parameter bounds.

get_initial_guess

get_initial_guess(ct, aif, t)

Compute initial parameter guess.

GPU/CPU agnostic - converts to numpy for scalar extraction.

PARAMETER DESCRIPTION
ct

Tissue concentration curve.

TYPE: NDArray[floating]

aif

Arterial input function.

TYPE: NDArray[floating]

t

Time points in seconds.

TYPE: NDArray[floating]

RETURNS DESCRIPTION
TwoCompartmentUptakeParams

Initial parameter estimates.