mrsiprep.tissue.fuzzy_cmeans

MIDAS-style fuzzy c-means tissue segmentation.

Replicates the tissue-segmentation approach of Maudsley et al. 2006 ("Comprehensive processing, display and analysis for in vivo MR spectroscopic imaging", NMR Biomed 19:492-503), which applies a fuzzy c-means clustering algorithm (their ref. 24, Cheng/Goldof/Hall) to classify voxels into more groups than tissue classes, then merges them into GM/WM/CSF by intensity ordering rules.

The paper uses T1-, T2- and PD-weighted MRIs as multi-channel input; here only the T1w is available, so clustering runs on T1w intensity alone. This is a documented simplification -- the MIDAS-mode-only path in mrsiprep.

Functions

fuzzy_cmeans_segment(t1_data, brain_mask[, ...])

Fuzzy c-means on T1w intensities within brain_mask.

mrsiprep.tissue.fuzzy_cmeans.fuzzy_cmeans_segment(t1_data, brain_mask, n_clusters=3, m=2.0, max_iter=100, tol=1e-05, seed=0)[source]

Fuzzy c-means on T1w intensities within brain_mask.

Clusters brain voxels into n_clusters groups and merges them into {'GM', 'WM', 'CSF'} soft-membership maps at the input resolution (non-brain voxels are 0 in all three). The paper over-clusters on multi-channel T1/T2/PD data; with a single T1w channel, direct 3-cluster segmentation (the default) maps cleanly onto the three tissue classes and gives anatomically sensible GM/WM/CSF volume ratios, whereas over-clustering on one channel tends to inflate the middle (GM) class. n_clusters > 3 is still supported (clusters are grouped to the nearest CSF/GM/WM intensity archetype) for experimentation.

Parameters:
  • t1_data (ndarray)

  • brain_mask (ndarray)

  • n_clusters (int)

  • m (float)

  • max_iter (int)

  • tol (float)

  • seed (int)

Return type:

dict[str, ndarray]