External Email - Use Caution
Hello,
I have an fsaverage5 parcellation/annotation based on Schaefer 200 (attached). The parcel boundaries are supposed to be adjusted iteratively resulting in 200 contiguous parcels with new boundaries. In this person, it is clear from plotting in freeview that 1 vertex from a visual parcel migrated to be surrounded by the SOM (blue) and VAN (violet) network on the lateral side (same hemisphere). This doesn’t happen in all subjects, so I’d like to write a function to find this and similar parcels that are not contiguous in a more automated fashion.
So far, I’ve used the matlab read_annotation.m function to count vertices per parcel but that’s not quite right because it treats all vertices with the same label as the same thing. Not sure if there is a way to identify neighboring vertices so I can see if any have the same label (contiguous) or not.
I investigated mri_surfcluster but I’m not sure how to make it treat the annotation as the input. Perhaps there is a way to project the values (1-200) associated with each label to their vertices. And then mri_surfcluster requires contiguity so it may identify if there is a mismatch between the expected # of parcels and observed # of clusters.
I am using freesurfer 7.3.2, Matlab 2020a, M1 iMac.
Any thoughts on how to identify non-contiguous vertices within a parcellation?
Thank you, Colleen
-- Colleen Hughes, PhD Postdoctoral Researcher Laboratory of Brain and Cognition Montreal Neurological Institute-Hospital McGill University
With the dev version, you can convert the annoation to a simple surface segmentation, like, mri_convert lh.somthing.annot lh.something.mgz Then binarize it like mri_binarize --i lh.somthing.mgz --match SegId ... --o lh.binary.mgz Then run mri_surfcluster on lh.binar.mgz setting the --thmin to 0.5 In the summary file, you will have the number of clusters, which I assume you want to be 1 Above, SegId is the index of the label you are looking for. You can load lh.something.mgz into freeview as an overlay to see what the indices are for you desired label.
On 3/31/2023 3:27 PM, Colleen Hughes wrote:
External Email - Use Caution
Hello,
I have an fsaverage5 parcellation/annotation based on Schaefer 200 (attached). The parcel boundaries are supposed to be adjusted iteratively resulting in 200 contiguous parcels with new boundaries. In this person, it is clear from plotting in freeview that 1 vertex from a visual parcel migrated to be surrounded by the SOM (blue) and VAN (violet) network on the lateral side (same hemisphere). This doesn’t happen in all subjects, so I’d like to write a function to find this and similar parcels that are not contiguous in a more automated fashion.
So far, I’ve used the matlab read_annotation.m function to count vertices per parcel but that’s not quite right because it treats all vertices with the same label as the same thing. Not sure if there is a way to identify neighboring vertices so I can see if any have the same label (contiguous) or not.
I investigated mri_surfcluster but I’m not sure how to make it treat the annotation as the input. Perhaps there is a way to project the values (1-200) associated with each label to their vertices. And then mri_surfcluster requires contiguity so it may identify if there is a mismatch between the expected # of parcels and observed # of clusters.
I am using freesurfer 7.3.2, Matlab 2020a, M1 iMac.
Any thoughts on how to identify non-contiguous vertices within a parcellation?
Thank you,
Colleen
--
*Colleen Hughes, PhD*
Postdoctoral Researcher
Laboratory of Brain and Cognition
Montreal Neurological Institute-Hospital
McGill University
Freesurfer mailing list Freesurfer@nmr.mgh.harvard.edu https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
freesurfer@nmr.mgh.harvard.edu