Skip to content

patlak

patlak

Patlak pharmacokinetic model (OSIPI: M.IC1.006).

This module implements the Patlak graphical analysis model for DCE-MRI, which assumes unidirectional transfer from plasma to tissue.

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] Patlak CS et al. J Cereb Blood Flow Metab 1983;3(1):1-7.

PatlakParams dataclass

PatlakParams(ktrans=0.1, vp=0.02)

Bases: ModelParameters

Parameters for Patlak model (OSIPI: M.IC1.006).

ATTRIBUTE DESCRIPTION
ktrans

Volume transfer constant (OSIPI: Q.PH1.008) in 1/min. Represents unidirectional influx rate.

TYPE: float

vp

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

TYPE: float

PatlakModel

Bases: BasePerfusionModel[PatlakParams]

Patlak graphical analysis model (OSIPI: M.IC1.006).

Implements the Patlak model for indicator concentration in tissue assuming unidirectional transfer from blood to tissue.

ATTRIBUTE DESCRIPTION
Ktrans

Volume transfer constant (OSIPI: Q.PH1.008), 1/min.

TYPE: float

vp

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

TYPE: float

Notes

Model equation: Ct(t) = vp*Cp(t) + Ktrans * integral_0^t Cp(tau) dtau

Assumptions: - No backflux from tissue to plasma (kep = 0) - Valid for early time points only - Linear accumulation over time

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] Patlak CS et al. J Cereb Blood Flow Metab 1983;3(1):1-7.

time_unit property

time_unit

Return time unit (minutes for Patlak).

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 using Patlak graphical analysis.

Falls back to the base class per-voxel loop since the graphical analysis involves per-voxel valid-point masks that are difficult to vectorize efficiently.

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 (2, n_voxels).

get_bounds

get_bounds()

Return physiological parameter bounds.

get_initial_guess

get_initial_guess(ct, aif, t)

Compute initial parameter guess using graphical analysis.

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
PatlakParams

Initial parameter estimates.