How to correctly mapping SourceEstimate to brain atlas?

  • MNE version:1.3.0
  • operating system: Ubuntu 18.04
    Hi all,
    I have a problem with mapping SourceEstimate to HCP-MMP atlas. I already got the SourceEstimate(subject=‘fsaverage’,source_spaces from fsaverage-ico-5-src.fif)

stc_fs = mne.read_source_estimate(stc_fs_fname, subject=‘fsaverage’)
fname_src_fsaverage_sur = ‘/usr/local/freesurfer/subjects/fsaverage/bem/fsaverage-ico-5-src.fif’
src_fs_sur = mne.read_source_spaces(fname_src_fsaverage_sur)
stc_fs.plot(hemi=‘both’, views=‘axial’, subjects_dir=fs_root,subject=‘fsaverage’)

This is the plot above:

then I try to run the following code to mapping SourceEstimate to HCP-MMP atlas:

mne.datasets.fetch_hcp_mmp_parcellation(subjects_dir=fs_root,verbose=True)
labels = mne.read_labels_from_annot(‘fsaverage’, parc=‘HCPMMP1’, subjects_dir=fs_root)
course_mean_flip = mne.extract_label_time_course(stc_fs, labels, src_fs_sur, mode=‘mean_flip’, allow_empty=True)

The course_mean_flip is a numpy.ndarray with size of (360, 1).I plot the course_mean_flip find it is very different from stc_fs :

Is the method I used to map SourceEstimate to MMP atlas correct? Why do the results differ so much? I also checked the course_mean_flip data, all 360 values are not zero, which will activate the entire brain. But why are all 20484 values of stc_fs.data not 0, and the plot result values only showing few activation?

One more question, I don’t know the [‘vertno’] meaning in the fsaverage-ico-5-src.fif source space file used by fsaverage. I use mne.read_source_spaces to read this file and get:

<SourceSpaces: [<surface (lh), n_vertices=163842, n_used=10242>, <surface (rh), n_vertices=163842, n_used=10242>] MRI (surface RAS) coords, subject ‘fsaverage’, ~21.9 MB>

SourceSpaces[‘vertno’] is the array([ 0, 1, 2, …, 10239, 10240, 10241]),Why is this index sequential? Why is it not the mapping between 10242 n_vertices vertices to 163842 vertices?
Because I check

labels = mne.read_labels_from_annot(‘fsaverage’, parc=‘HCPMMP1’, subjects_dir=fs_root),

labels[0].vertices is the array([8,23,36, …, 163617, 163618, 163619]). I dont know why the vertno from fsaverage source space and the vertices in fsaverage atlas are inconsistent

I hope someone can help me, I have been troubled for a very long time, thank you very much!

@jshlyz unfortunately, your description is quite volatile and its rather difficult to understand what exactly you are trying to do.

To understand the structure of the SourceEstimate file (.stc), have a look here:
https://mne.tools/dev/auto_tutorials/inverse/10_stc_class.html

To know more about mne.extract_label_time_course, see the following use case:
https://mne.tools/stable/auto_examples/inverse/label_source_activations.html#sphx-glr-auto-examples-inverse-label-source-activations-py

To visualize the SourceEstimate object, have a look here:
https://mne.tools/stable/auto_tutorials/inverse/60_visualize_stc.html

To plot the parcellation (HCPMMP1), have a look here:
https://mne.tools/dev/auto_examples/visualization/parcellation.html

I hope this will help you to navigate your issues in general.

best,
Dip

1 Like