Question about Label Order in Schaefer Atlas Parcellation and Time Course Extraction

Iā€™m working with the Schaefer 2018 400-parcel atlas and have noticed a potential discrepancy in label ordering. Hereā€™s my workflow:

  1. 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]
  1. 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:

  1. Why does the order of labels from read_labels_from_annot match the canonical Schaefer ordering?
  2. Shall I reorder the extracted time courses to match the canonical order?
  3. Could this affect network-based analyses if not addressed?
  4. When I extract label time courses using mne.extract_label_time_course(), does the output maintain the same order as the input labels from read_labels_from_annot?
  5. 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