HCP-MMP1.0 volumetric (NIfTI) masks in native structural space

2018-10-22T12:08:15Z (GMT) by CJ Neurolab

We in our group received with great interest the publication of the HCP-MMP 1.0 parcellation by Glasser et al. (Nature) created using data from the Human Connectome Project earlier this year. Often in our connectivity pipelines we use volume files for parcellation in native space, so we decided to try and convert the Connectome Workbench files to volume masks in native structural space to try out in future studies.

We were happy to find that someone had already gone through the trouble of generating FreeSurfer annotation files projected on fsaverage, so all we had to do was find a way to transform these annot files to each subject’s space and convert them to volume masks.

So we wrote this Linux shell script that performs a series of conversion and transformation steps using only FreeSurfer commands. It first converts the annotation files (lh.HCPMMP1.annot and rh.HCPMMP1.annot, downloaded from https://figshare.com/articles/HCP-MMP1_0_projected_on_fsaverage/3498446) to labels using mri_annotation2label, then takes each label from fsaverage to each subject’s space with mri_label2label, converts transformed labels back to annotation with mri_label2annot, and finally converts these to volume files (nii.gz) with mris_label2annot. Seems like too many steps, but this is how we (who are not FreeSurfer experts) got satisfactory results.

The default final file consists of a single .nii.gz volume containing the cortical HCP-MMP1.0 regions plus the subcortical regions from the FreeSurfer segmentation, each region assigned a unique voxel value. It should be noted that the HCP-MMP1.0 parcellation includes 180 regions per hemisphere - 179 cortical and one subcortical (hippocampus). In the final volume file, left-hemisphere cortical HCP-MMP1.0 regions will have values between 1001 and 1181, whereas right-sided regions will have values between 2001 and 2181. The correspondence between each specific region and its voxel value is given in a look-up table that is saved in each subject’s output folder. To identify the hippocampi (and other subcortical structures), one needs to check the corresponding voxel value given in the FreeSurferColorLUT.txt file provided with FreeSurfer (https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/AnatomicalROI/FreeSurferColorLUT), as they are generated based on the original aseg parcellation*.

*In the previous version of the script, a few perihippocampal cortical voxels were ascribed values (1121 and 2121) that should correspond to the hippocampus in the HCPMMP1.0 parcellation. Since only the cortical regions from this parcellation are generated, these voxels are now assigned the values corresponding to the hippocampus as defined by the automatic FreeSurfer subcortical segmentation (17 and 53).

Optionally, one can choose to also generate individual volume files for each cortical and/or subcortical parcellation region. This option requires FSL. If the user chooses to create individual subcortical masks, the FreeSurferColorLUT.txt must also be available in the base ($SUBJECTS_DIR/) folder.


By default, the script also generates tables with anatomical information for each cortical region (number of vertices, area, volume, mean thickness, etc.).

Instructions on how to use the script can be found in the script itself, or here:
https://cjneurolab.org/2016/11/22/hcp-mmp1-0-volumetric-nifti-masks-in-native-structural-space/

Hope this can be of use!