multi_pld
multi_pld
¶
Multi-PLD ASL quantification with ATT estimation.
This module implements CBF and ATT (arterial transit time) estimation from multi-PLD ASL data using the Buxton general kinetic model. Parameter naming follows the OSIPI ASL Lexicon conventions: CBF in mL/100g/min and ATT in ms.
GPU/CPU agnostic using the xp array module pattern. NO scipy dependency - uses custom Levenberg-Marquardt implementation.
References
.. [1] OSIPI ASL Lexicon, https://osipi.github.io/ASL-Lexicon/ .. [2] Buxton RB et al. (1998). A general kinetic model for quantitative perfusion imaging with arterial spin labeling. Magn Reson Med 40(3):383-396. .. [3] Dai W et al. (2012). Reduced resolution transit delay prescan for quantitative continuous arterial spin labeling perfusion imaging. Magn Reson Med 67(5):1252-1265. .. [4] Suzuki Y et al. (2024). MRM 91(4):1411-1421.
MultiPLDParams
dataclass
¶
MultiPLDParams(
labeling_scheme=PCASL,
plds=None,
label_duration=1800.0,
t1_blood=1650.0,
t1_tissue=1330.0,
partition_coefficient=0.9,
labeling_efficiency=0.85,
)
Parameters for multi-PLD ASL quantification.
| ATTRIBUTE | DESCRIPTION |
|---|---|
labeling_scheme |
Type of labeling (PASL, CASL, pCASL).
TYPE:
|
plds |
Array of post-labeling delays in milliseconds.
TYPE:
|
label_duration |
Labeling duration in milliseconds (for pCASL/CASL).
TYPE:
|
t1_blood |
T1 of arterial blood in milliseconds.
TYPE:
|
t1_tissue |
T1 of gray matter tissue in milliseconds.
TYPE:
|
partition_coefficient |
Blood-brain partition coefficient (λ).
TYPE:
|
labeling_efficiency |
Labeling efficiency (α).
TYPE:
|
MultiPLDResult
dataclass
¶
Result of multi-PLD ASL quantification.
| ATTRIBUTE | DESCRIPTION |
|---|---|
cbf_map |
CBF map in mL/100g/min (OSIPI ASL Lexicon).
TYPE:
|
att_map |
Arterial transit time (ATT) map in ms (OSIPI ASL Lexicon).
TYPE:
|
quality_mask |
Mask of reliable voxels.
TYPE:
|
r_squared |
Goodness of fit (R-squared) map.
TYPE:
|
BuxtonMultiPLDModel
¶
Bases: BaseASLModel
Buxton general kinetic model for multi-PLD ATT estimation.
Estimates CBF (mL/100g/min) and ATT (seconds) from multi-PLD ASL.
References
.. [1] OSIPI ASL Lexicon, https://osipi.github.io/ASL-Lexicon/ .. [2] Buxton RB et al. MRM 1998;40(3):383-396.
quantify_multi_pld
¶
Quantify CBF and ATT from multi-PLD ASL data.
Uses voxel-wise fitting of the Buxton general kinetic model
to simultaneously estimate CBF and ATT via fit_image().
Output units follow the OSIPI ASL Lexicon: CBF in mL/100g/min,
ATT in ms.
| PARAMETER | DESCRIPTION |
|---|---|
delta_m
|
Difference magnetization at each PLD, shape (..., n_plds). Last dimension corresponds to PLDs.
TYPE:
|
m0
|
Equilibrium magnetization (M0, a.u.) from calibration.
TYPE:
|
params
|
Quantification parameters.
TYPE:
|
mask
|
Brain mask.
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
MultiPLDResult
|
CBF map (mL/100g/min) and ATT map (ms) with quality metrics. |
Examples:
>>> import numpy as np
>>> from osipy.asl.quantification.multi_pld import quantify_multi_pld, MultiPLDParams
>>> delta_m = np.random.rand(64, 64, 20, 6) * 50
>>> params = MultiPLDParams(plds=np.array([200, 500, 1000, 1500, 2000, 2500]))
>>> result = quantify_multi_pld(delta_m, m0=1000.0, params=params)
References
.. [1] OSIPI ASL Lexicon, https://osipi.github.io/ASL-Lexicon/