External Email - Use Caution        

Hello FreeSurfer Developers,

 

I’m attempting to create annotation files from label files which have been estimated at the level of the individual. Therefore, some subjects may not have all ROIs. When attempting to take those label files and concatenate them into individual subject-specific annotation files I run into a few issues.

 

The command I have used previously:

mris_label2annot  --s sub-DAEK --hemi lh \

--ctab /mnt/c/Users/Ben/Documents/GitHub/parcellationPipeline/li2019_to_dti/yeo2011nodesLUT.txt \

--a yeo2011nodes \

--surf orig \

--maxstatwinner \

--ldir-default

 

stdout:

subject sub-DAEK

hemi    lh

SUBJECTS_DIR /mnt/c/Users/Ben/freesurfer/subjects

ColorTable /mnt/c/Users/Ben/Documents/GitHub/parcellationPipeline/li2019_to_dti/yeo2011nodesLUT.txt

AnnotName  yeo2011nodes

nlables 0

 

  1. The first issue is that –ldir and –ldir-default don’t seem to work as anticipated. After reading many threads on the FS mailing list  archives I saw that the LUT should have identical ROI IDs as the file names with the exception of the label file extension. Thus, my LUT looks like the following:
    1. 0  Unknown                                 0   0   0   0

1  lh.Net_2_ROIs_1_lh                       25  5   25  0

2  rh.Net_2_ROIs_1_rh                         25  100 40  0

3  lh.Net_2_ROIs_2_lh                         70  130 180 0

4  rh.Net_2_ROIs_2_rh                         100 100 0   0

5  lh.Net_3_ROIs_1_lh                         196 58  250 0

6  rh.Net_3_ROIs_1_rh                         100 25  0   0

7  lh.Net_3_ROIs_2_lh                         120 70  50  0

8  rh.Net_3_ROIs_2_rh                         220 20  10  0

9  lh.Net_3_ROIs_3_lh                         220 20  100 0

10 rh.Net_3_ROIs_3_rh                         180 40  120 0

11 lh.Net_4_ROIs_1_lh                         122 186 220 0

-----------------and so on.

    1. When I list the dir from my subject’s label directory the following is presented:

                                                               i.      lh.Net_10_ROIs_1_lh.label 

lh.Net_2_ROIs_1_lh.label

lh.Net_13_ROIs_3_lh.label 

lh.Net_5_ROIs_1_lh.label

rh.Net_2_ROIs_1_rh.label 

rh.Net_3_ROIs_3_rh.label

------------and so on.

    1. However, when I provide the –l arg with the full path, the file is found and the nlabels arg in stdout is the number of –l args I supply.

 

 

  1. The next issues is that if I go the route of –l args  (there are 116 ROIs so this is not desirable) I receive issues because not all subjects have all the label files that the LUT file expects. Therefore the resulting annotation file has mislabeled ROIs.
    1. Is there a way to force the unfound labels to unknown or a way to bypass this issue?
    2. I recognize the one way to do this may be to create individual specific LUT files but that seems tedious and unnecessary if there is a better way that you all may be wiser to.

 

 

  1. Another issue I have been running into is that if I even attempt to just remove the –l args where labels do not correspond exactly with the LUT file I have a number of overlapping label file vertices issues.
    1. How do you recommend correcting for this, my best guess is some sort of thresholding scheme. However, these are functional networks so I am unsure what the best route for thresholding would be.

 

Thanks so much for your help in advance!

Ben