mrsiprep.parcellation.tissue_regression
MIDAS-style (Maudsley et al. 2006, Eq. 4-5) tissue-fraction regression.
For each parcel, solve across its MRSI voxels
Y_n = beta_GM * W_GM_n + beta_WM * W_WM_n + bias + eps
by ordinary least squares, where Y_n is the metabolite signal at voxel
n and W_GM_n/W_WM_n are that voxel's GM/WM tissue fractions. The
fitted beta_GM/beta_WM are direct estimates of the pure-GM and pure-WM
metabolite concentration in the parcel -- the paper's tissue-based
quantification. This is the MIDAS-mode-only alternative to the weighted-mean
regional extraction, which reports tissue fractions only as covariates.
Eq. 5's mixed-effects multi-subject extension is out of scope for a single recording; this module implements the single-subject Eq. 4 model.
Functions
|
Ordinary least squares fit of Y = beta_GM*W_GM + beta_WM*W_WM + bias. |
|
Per-parcel, per-metabolite MIDAS Eq. |
Classes
|
- class mrsiprep.parcellation.tissue_regression.RegressionResult(beta_gm: 'float', beta_wm: 'float', bias: 'float', se_gm: 'float', se_wm: 'float', r_squared: 'float', condition_number: 'float', n_voxels: 'int', rank_deficient: 'bool')[source]
Bases:
object- Parameters:
beta_gm (float)
beta_wm (float)
bias (float)
se_gm (float)
se_wm (float)
r_squared (float)
condition_number (float)
n_voxels (int)
rank_deficient (bool)
- beta_gm: float
- beta_wm: float
- bias: float
- condition_number: float
- n_voxels: int
- r_squared: float
- rank_deficient: bool
- se_gm: float
- se_wm: float
- mrsiprep.parcellation.tissue_regression.fit_tissue_regression(values, gm_fraction, wm_fraction, min_voxels=10, min_fraction_range=0.2, condition_number_max=30.0)[source]
Ordinary least squares fit of Y = beta_GM*W_GM + beta_WM*W_WM + bias.
Sets
rank_deficient=True(and betas/SEs to NaN) when the region has too few voxels, too little GM/WM fraction variation to separate the tissue contributions, or an ill-conditioned design matrix. Without this guard,lstsqon a near-homogeneous region (e.g. deep WM, W_GM ~ 0 everywhere) would return numerically unstable, misleading betas.- Parameters:
values (ndarray)
gm_fraction (ndarray)
wm_fraction (ndarray)
min_voxels (int)
min_fraction_range (float)
condition_number_max (float)
- Return type:
- mrsiprep.parcellation.tissue_regression.regional_tissue_regression(config, subject, session, metabolite_maps, parcels, qcmasks, tissue_mrsi)[source]
Per-parcel, per-metabolite MIDAS Eq. 4 regression; writes a TSV.
- Parameters:
subject (str)
session (str | None)
metabolite_maps (dict[str, Path])
parcels (ParcellationResult)
qcmasks (dict[str, Path])
tissue_mrsi (dict[str, Path])
- Return type:
Path