Iām working with the Schaefer 2018 400-parcel atlas and have noticed a potential discrepancy in label ordering. Hereās my workflow:
- I read the labels and extract their names:
labels2use = 'Schaefer2018_400Parcels_7Networks_order'
labels_schaefer = mne.read_labels_from_annot(subject, parc=labels2use,
subjects_dir=fs_directories, verbose=False)
labels_names = []
for xx in range(len(labels_schaefer)):
labels_names.append(labels_schaefer[xx].name)
labels_names = labels_names[1:-1]
for xx in range(len(labels_names)):
labels_names[xx] = labels_names[xx].split('7Networks_')[1].split('-')[0]
- Then extract time courses:
label_ts = mne.extract_label_time_course(stc, labels_schaefer, src,
mode="mean", allow_empty=True, verbose=False)[1:-1]
When I compare the label ordering (variable labels_names
) I get from mne.read_labels_from_annot()
with the canonical Schaefer ordering (please see here): https://github.com/ThomasYeoLab/CBIG/blob/master/stable_projects/brain_parcellation/Schaefer2018_LocalGlobal/Parcellations/MNI/Centroid_coordinates/Schaefer2018_400Parcels_7Networks_order_FSLMNI152_2mm.Centroid_RAS.csv), I notice they donāt match.
Questions:
- Why does the order of labels from
read_labels_from_annot
match the canonical Schaefer ordering? - Shall I reorder the extracted time courses to match the canonical order?
- Could this affect network-based analyses if not addressed?
- When I extract label time courses using
mne.extract_label_time_course()
, does the output maintain the same order as the input labels fromread_labels_from_annot
? - Is the [1:-1] slicing when getting both label names and time courses the correct approach to match the 400 parcels?
Thank you for any clarification!
Dave