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
¶
Bases: ModelParameters
Parameters for Two-Compartment Uptake Model (2CUM).
| ATTRIBUTE | DESCRIPTION |
|---|---|
fp |
Plasma flow (OSIPI: Q.PH1.002) in mL/min/100mL.
TYPE:
|
ps |
Permeability-surface area product (OSIPI: Q.PH1.004) in mL/min/100mL.
TYPE:
|
vp |
Plasma volume fraction (OSIPI: Q.PH1.001), mL/100mL.
TYPE:
|
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:
|
PS |
Permeability-surface area product (OSIPI: Q.PH1.004), mL/min/100mL.
TYPE:
|
vp |
Plasma volume fraction (OSIPI: Q.PH1.001), mL/100mL.
TYPE:
|
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.
get_initial_guess_batch
¶
Compute vectorized initial guesses for a batch of voxels.
| PARAMETER | DESCRIPTION |
|---|---|
ct_batch
|
Tissue concentration curves, shape (n_timepoints, n_voxels).
TYPE:
|
aif
|
Arterial input function, shape (n_timepoints,).
TYPE:
|
t
|
Time points in seconds, shape (n_timepoints,).
TYPE:
|
xp
|
Array module (numpy or cupy).
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
NDArray[floating]
|
Initial parameter guesses, shape (3, n_voxels). |
get_initial_guess
¶
Compute initial parameter guess.
GPU/CPU agnostic - converts to numpy for scalar extraction.
| PARAMETER | DESCRIPTION |
|---|---|
ct
|
Tissue concentration curve.
TYPE:
|
aif
|
Arterial input function.
TYPE:
|
t
|
Time points in seconds.
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
TwoCompartmentUptakeParams
|
Initial parameter estimates. |