Freesurfer Subparcellation

From CCN Wiki
Revision as of 15:12, 21 December 2016 by Chris (talk | contribs)
Jump to navigation Jump to search

Freesurfer annotations and labels describe swaths of cortical regions, defined anatomically during the recon-all process, or functionally or statistically (e.g., significant GLM clusters). Tools exist to further subdivide these regions to the desired level of granularity.

Using mris_divide_parcellation

This program divides one or more parcellations into divisions perpendicular to the long axis of the label. The number of divisions can be specified in one of two ways, depending upon the nature of the fourth argument.

First, a splitfile can be specified as the fourth argument. The splitfile is a text file with two columns. The first column is the name of the label in the source annotation, and the second column is the number of units that label should be divided into. The names of the labels depends upon the source parcellation. For aparc.annot and aparc.a2005.annot, the names can be found in $FREESURFER_HOME/FreeSurferColorLUT.txt. For aparc.annot, the labels are between the ranges of 1000-1034. For aparc.a2005s.annot, the labels are between the ranges of 1100-1181. The name for the label is the name of the segmentation without the 'ctx-lh'. Note that the name included in the splitfile does not indicate the hemisphere. For example, 1023 is 'ctx-lh-posteriorcingulate'. You should put 'posteriorcingulate' in the splitfile. Eg, to divide it into three segments, the following line should appear in the splitfile:

posteriorcingulate 3

Only labels that should be split need be specified in the splitfile.

The second method is to specify an area threshold (in mm^2) as the fourth argument, in which case each label is divided until each subdivision is smaller than the area threshold.

The output label name will be the original name with _divN appended, where N is the division number. N will go from 2 to the number of divisions. The first division has the same name as the original label.

Sample Split File (Functional Clusters)

In this example, I have carried out a one-sample group mean (OSGM) analysis and did a cluster-size threshold. This saved a number of clusters in two .annot files (one in each hemisphere). There are also some *.cluster.summary files in this directory. Reading these files, I see the smallest clusters are about 120mm2. I would like to subdivide the larger clusters so that they are all between about 100-150mm2. I load the corresponding .annot file in Freesurfer just to verify the cluster names (the summary file lists 10 clusters, but the names do not follow a consistent naming convention). From the file, I see that clusters 1,2,3,4,6 and 8 need to be subdivided. Simple division by the desired cluster size tells me the number of divisions I want for each cluster:

echo cluster-001 6 > splittable.txt
echo cluster-002 7 >> splittable.txt
echo cluster-003 5 >> splittable.txt
echo cluster-004 5 >> splittable.txt
echo cluster-006 2 >> splittable.txt
echo cluster-008 2 >> splittable.txt
mris_divide_parcellation fsaverage rh \ 
cache.th30.abs.sig.ocn.annot splittable.txt \
rh.functional_subclusters