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
CIT168Subcortical
andThalamus
prefixes - replaced
Cerebellum
withCerebellar
- moved trailing
lr
andrh
to the beginning of the label where applicable - replaced
FrOper
withFrOperIns
- replaced
PCC
withpCunPCC
- replaced
PFCm
withPFCdPFCm
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_1
becomes
LH_Cont_OFC_1
, and the remainingLH_Cont_PFCl
from_2
to_9
get shifted toLH_Cont_PFCl
from_1
to_8
. The alternative would be to match by name, leaving an unmatchedLH_Cont_OFC_1
in 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_Temp
from_11
to_17
should be renamed asLH_Default_Par
from_1
to_7
. There is no such discrepancy on the right hand hemisphere, where there is a mix of fiveRH_Default_Par
and eightRH_Default_Temp
regions. In contrast, there are noLH_Default_Par
labels in QSIPrep’s list of labels; only seventeenLH_Default_Temp
ones.
- 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