Summary of what happened:
I’m performing a multimodal analysis that includes both fMRI and DTI scans. I’m using fMRIPrep and QSIPrep for the respective modalities. While not imperative, it would be nice if the parcellations of both modalities were identical. I read that QSIPrep reconstruction uses atlases from AtlasPack (GitHub - PennLINC/AtlasPack: Combined cortical/subcortical atlases for xcp-d and qsiprep). So I used fMRIPrep for the fMRI scans, requesting a cifti output in the fsLR space, and then parcellated the results using AtlasPack’s tpl-fsLR_atlas-4S456Parcels_den-91k_dseg.dlabel.nii. On the DTI side, after construction of the connectomes via qsiprep --recon-only, I fish out schaefer400.sift.radius2.count.connectivity along with
schaefer400.region.ids and schaefer400.region.labels from sub-*_ses-01_run-01_space-T1w_desc-preproc_connectivity.mat to produce my specific connectome of interest.
While the labeling between the AtlasPack and QSIPrep largely matches, there are some discrepancies. I have some questions about reconciling QSIPrep’s labels to match those of AtlasPack. (See Atlas agreement between qsiprep and xcp_d for a related discussion.)
I’m assuming that the underlying physical parcels are identical between the two (save for amygdala and hippocampus, which are only present in AtlasPack), and that only the label names differ. Here are the modifications the the QSIPrep labels I’ve made so far, with increasing levels of uncertainty, in order to reconcile them to the AtlasPack names:
- removed the
CIT168SubcorticalandThalamusprefixes - replaced
CerebellumwithCerebellar - moved trailing
lrandrhto the beginning of the label where applicable - replaced
FrOperwithFrOperIns - replaced
PCCwithpCunPCC - replaced
PFCmwithPFCdPFCm
If I paste AtlasPack indices and labels side-by-side with the QSIPrep indices and the updated labels (with making the adjustments noted above), and then eliminate rows where the AtlasPack labels do match the updated QSIPrep labels, we get the following labels that do not match:
| AtlasPack_index | QSIPrep_index | AtlasPack_label | QSIPrep_label_updated | QSIPrep_label | match |
|---|---|---|---|---|---|
| 134 | 134 | LH_Cont_OFC_1 | LH_Cont_PFCl_1 | LH_Cont_PFCl_1 | FALSE |
| 135 | 135 | LH_Cont_PFCl_1 | LH_Cont_PFCl_2 | LH_Cont_PFCl_2 | FALSE |
| 136 | 136 | LH_Cont_PFCl_2 | LH_Cont_PFCl_3 | LH_Cont_PFCl_3 | FALSE |
| 137 | 137 | LH_Cont_PFCl_3 | LH_Cont_PFCl_4 | LH_Cont_PFCl_4 | FALSE |
| 138 | 138 | LH_Cont_PFCl_4 | LH_Cont_PFCl_5 | LH_Cont_PFCl_5 | FALSE |
| 139 | 139 | LH_Cont_PFCl_5 | LH_Cont_PFCl_6 | LH_Cont_PFCl_6 | FALSE |
| 140 | 140 | LH_Cont_PFCl_6 | LH_Cont_PFCl_7 | LH_Cont_PFCl_7 | FALSE |
| 141 | 141 | LH_Cont_PFCl_7 | LH_Cont_PFCl_8 | LH_Cont_PFCl_8 | FALSE |
| 142 | 142 | LH_Cont_PFCl_8 | LH_Cont_PFCl_9 | LH_Cont_PFCl_9 | FALSE |
| 159 | 159 | LH_Default_Par_1 | LH_Default_Temp_11 | LH_Default_Temp_11 | FALSE |
| 160 | 160 | LH_Default_Par_2 | LH_Default_Temp_12 | LH_Default_Temp_12 | FALSE |
| 161 | 161 | LH_Default_Par_3 | LH_Default_Temp_13 | LH_Default_Temp_13 | FALSE |
| 162 | 162 | LH_Default_Par_4 | LH_Default_Temp_14 | LH_Default_Temp_14 | FALSE |
| 163 | 163 | LH_Default_Par_5 | LH_Default_Temp_15 | LH_Default_Temp_15 | FALSE |
| 164 | 164 | LH_Default_Par_6 | LH_Default_Temp_16 | LH_Default_Temp_16 | FALSE |
| 165 | 165 | LH_Default_Par_7 | LH_Default_Temp_17 | LH_Default_Temp_17 | FALSE |
| 401 | 402 | LH-Pu | RH-Pu | CIT168Subcortical_Pu_rh | FALSE |
| 402 | 403 | LH-Ca | RH-Ca | CIT168Subcortical_Ca_rh | FALSE |
| 403 | 404 | LH-NAC | RH-NAC | CIT168Subcortical_NAC_rh | FALSE |
| 404 | 405 | LH-EXA | RH-EXA | CIT168Subcortical_EXA_rh | FALSE |
| 405 | 406 | LH-GPe | RH-GPe | CIT168Subcortical_GPe_rh | FALSE |
| 406 | 407 | LH-GPi | RH-GPi | CIT168Subcortical_GPi_rh | FALSE |
| 407 | 408 | LH-SNc_PBP_VTA | RH-SNc_PBP_VTA | CIT168Subcortical_SNc_CIT168Subcortical_PBP_CIT168Subcortical_VTA_rh | FALSE |
| 408 | 409 | LH-RN | RH-RN | CIT168Subcortical_RN_rh | FALSE |
| 409 | 410 | LH-SNr | RH-SNr | CIT168Subcortical_SNr_rh | FALSE |
| 410 | 411 | LH-VeP | RH-VeP | CIT168Subcortical_VeP_rh | FALSE |
| 411 | 412 | LH-HN | RH-HN | CIT168Subcortical_HN_rh | FALSE |
| 412 | 413 | LH-HTH | RH-HTH | CIT168Subcortical_HTH_rh | FALSE |
| 413 | 414 | LH-MN | RH-MN | CIT168Subcortical_MN_rh | FALSE |
| 414 | 415 | LH-STH | RH-STH | CIT168Subcortical_STH_rh | FALSE |
| 415 | 416 | RH-Pu | LH-Pu | CIT168Subcortical_Pu_lh | FALSE |
| 416 | 417 | RH-Ca | LH-Ca | CIT168Subcortical_Ca_lh | FALSE |
| 417 | 418 | RH-NAC | LH-NAC | CIT168Subcortical_NAC_lh | FALSE |
| 418 | 419 | RH-EXA | LH-EXA | CIT168Subcortical_EXA_lh | FALSE |
| 419 | 420 | RH-GPe | LH-GPe | CIT168Subcortical_GPe_lh | FALSE |
| 420 | 421 | RH-GPi | LH-GPi | CIT168Subcortical_GPi_lh | FALSE |
| 421 | 422 | RH-SNc_PBP_VTA | LH-SNc_PBP_VTA | CIT168Subcortical_SNc_CIT168Subcortical_PBP_CIT168Subcortical_VTA_lh | FALSE |
| 422 | 423 | RH-RN | LH-RN | CIT168Subcortical_RN_lh | FALSE |
| 423 | 424 | RH-SNr | LH-SNr | CIT168Subcortical_SNr_lh | FALSE |
| 424 | 425 | RH-VeP | LH-VeP | CIT168Subcortical_VeP_lh | FALSE |
| 425 | 426 | RH-HN | LH-HN | CIT168Subcortical_HN_lh | FALSE |
| 426 | 427 | RH-HTH | LH-HTH | CIT168Subcortical_HTH_lh | FALSE |
| 427 | 428 | RH-MN | LH-MN | CIT168Subcortical_MN_lh | FALSE |
| 428 | 429 | RH-STH | LH-STH | CIT168Subcortical_STH_lh | FALSE |
There are a total of 44 labels that do not match. The unmatched labels fall into three blocks:
-
- AtlasPack Indices 134–142: If we match by order, QSIPrep’s
LH_Cont_PFCl_1becomes
LH_Cont_OFC_1, and the remainingLH_Cont_PFClfrom_2to_9get shifted toLH_Cont_PFClfrom_1to_8. The alternative would be to match by name, leaving an unmatchedLH_Cont_OFC_1in AtlasPack to link with QSIPrep’sLH_PFCl_9?
- AtlasPack Indices 134–142: If we match by order, QSIPrep’s
-
- AtlasPack indices 159–165: It looks as if QSIPrep’s
LH_Default_Tempfrom_11to_17should be renamed asLH_Default_Parfrom_1to_7. There is no such discrepancy on the right hand hemisphere, where there is a mix of fiveRH_Default_Parand eightRH_Default_Tempregions. In contrast, there are noLH_Default_Parlabels in QSIPrep’s list of labels; only seventeenLH_Default_Tempones.
- AtlasPack indices 159–165: It looks as if QSIPrep’s
-
- AtlasPack indices 401–428: the ordering of the subcortical ROIs differs from AtlasPack and QSIPrep. In AtlasPack, the left-hand structures come first, followed by the right-hand structures. For QSIPrep, the ordering of the hemispheres are reversed: right-hand first, then left-hand. Should I trust the label names? Or assume that the ordering matches AtlasPack and match them up that way? Also, note that starting after AtlasPack index 400 (the end of the Schaefer cortical regions), there is a difference of one between AtlasPack indices and those of QSIPrep. It turns out that the QSIPrep indices jump from 400 to 402.
In summary, I’m not certain how to correctly reconcile the labels between the two packages, or what might have led to the discrepancies. Any insight you might have would be much appreciated.
Thank you!
- Daniel
Command used (and if a helper script was used, a link to the helper script or the command generated):
PASTE CODE HERE
Version:
qsiprep 0.22.0
Environment (Docker, Singularity / Apptainer, custom installation):
Data formatted according to a validatable standard? Please provide the output of the validator:
PASTE VALIDATOR OUTPUT HERE
Relevant log outputs (up to 20 lines):
PASTE LOG OUTPUT HERE