Mapping Electrodes to Atlases


Tutorial Data:

You can download the data used in the tutorial below from here. These data consists of a FreeSurfer folder for PT001. Place the PT001 folder in your FreeSurfer subjects directory and you should be able to run the commands below after you've run the localization tutorial commands.

 

A.  FreeSurfer Atlases

Currently we support three FreeSurfer based pial surface anatomical atlases. The first two are automatically produced by FreeSurfer's recon-all command. The third is more recent and requires you to run to an additional MATLAB function for each patient to create the mapping to the atlas.  The anatomical location of depth electrodes are derived from FreeSurfer's volumetric brain segmentation that is produced as part of recon all, using the file aparc+aseg.mgz, regardless of what surface atlas you use.

 

1. Desikan-Killiany Atlas

The Desikan-Killiany Atlas (Desikan et al., 2006) is a 35 area cortical atlas that is based on gyral morphology. To view an individual's pial surface color coded according to the atlas, you can do something like this:

>>cfg=[];
>>cfg.view='l';
>>cfg.overlayParcellation='DK';

>>cfg.title='PT001: DK Atlas'; 

>>cfgOut=plotPialSurf('PT001',cfg);

 

which colors the pial surface according to FreeSurfer's Desikan-Killiany atlas to produce this image:

Here's a key that specifies the label of each area in the atlas:

 

This comma-separated text file lists the names of all 35 areas along with their RGB color code:

desikanKillianyAreas.csv

 

To get the Desikan-Killiany area that is closest to each subdural electrode, run the function parcOut.m:

>>parcOut=elec2Parc('PT001','DK');

 

Note that elec2Parc always labels the anatomical locations of depths via FreeSurfer's aparc+aseg.mgz file.

 

For more information see the publication that introduced the atlas (referenced below) and the official FreeSurfer page on the Desikan-Killiany atlas:

https://surfer.nmr.mgh.harvard.edu/fswiki/CorticalParcellation

 

 

2. Destrieux Atlas

The Destrieux Atlas (Destrieux et al., 2010) is also a gyral morphology based atlas, like Desikan-Killiany. However, it divides the cortical surface into 75 areas. To view an individual's pial surface color coded according to the atlas, you can do something like this:

>>cfg=[];
>>cfg.view='l';
>>cfg.overlayParcellation='D';

>>cfg.title='PT001: Destrieux Atlas';

>>cfgOut=plotPialSurf('PT001',cfg);

 

which produces an image like this:

The below are the Destrieux areas on an average brain:

Here is the key to numbers in the above figure, which provides the area names: destrieuxTable.pdf

This comma-separated text file also lists all 75 areas and their RGB color code: destrieuxAreas.csv

 

To get the Destrieux area that is closest to each subdural electrode, run the function elec2Parc.m:

>>parcOut=elec2Parc('PT001','D');

 

Note that elec2Parc always labels the anatomical locations of depths via FreeSurfer's aparc+aseg.mgz file.

 

For more information see the publication that introduced the atlas (referenced below) and the official FreeSurfer page on the the Destrieux atlas:

https://surfer.nmr.mgh.harvard.edu/fswiki/CorticalParcellation

 

 

3. Yeo et al. resting-state fMRI Atlas

This atlas was produced by Yeo et al. (2011) based on resting state fMRI connectivity and cluster analysis. You can download the atlas for the FreeSurfer average brain from FreeSurfer's website (see link below)

To use this atlas with individual subject brains, you need to

   A) Download the atlas for the FreeSurfer average brain via this link:

ftp://surfer.nmr.mgh.harvard.edu/pub/data/Yeo_JNeurophysiol11_FreeSurfer.zip

 

After you unzip the file, replace FreeSurfer's default fsaverage, fsaverage5, and fsaverage6 with the directories in the zipped file.

 

   B) map the atlas to the individual brain using createIndivYeoMapping.m like so:

>>createIndivYeoMapping('PT001');

 

Then you can use plotPialSurf to show the parcellation for an individual subject like this:

>>cfg=[];
>>cfg.view='l';
>>cfg.overlayParcellation='Y17';

>>cfg.title='PT001: Yeo 17-Area';

>>cfgOut=plotPialSurf('PT001',cfg);

which produces an image like this:

 

To get the Yeo atlas area that is closest to each subdural electrode, run the function elec2Parc.m:

>>parcOut=elec2Parc('PT001','Y7');

 

Note that elec2Parc always labels the anatomical locations of depths via FreeSurfer's aparc+aseg.mgz file.

 

Here are the medial and lateral views of the 7-area atlas on the inflated FreeSurfer average brain:

 

Here's the same thing for the 17-area atlas:

 

Note, that the 17 area atlas does not yet have canonical names for each area. They simply have generic names like "Network10."

 

These text files list all the areas of the two Yeo atlases and their RGB colors:

 

The official FreeSurfer page on the Yeo et al. atlas is:

https://surfer.nmr.mgh.harvard.edu/fswiki/CorticalParcellation_Yeo2011

 

4. HCP MMP 1.0 (Glasser Atlas)

 

The Human Connectome Project Multi-Modal Parcellation Atlas was constructed by The Human Connectome Project (Glasser et. al 2016) using T1w, T2w, task-based fMRI and resting-state fMRI data. It consists of 180 areas per hemisphere. Due to the large number of areas the labeling of each region is not intuitive. For details regarding each region and the general naming convention check out the published paper here as well as the neuroanatomical supplementary results

 

 

To use this atlas with individual subject's brain you need to

     A) Download the atlas. You can do this either by

          1. Using the command downloadHCPatlas that ships with iELVis (recommended)

          2. Downloading the atlas yourself from this link and moving the .annot files into the fsaverage/label folder (the fsaverage folder should be in the directory referenced with globalFsDir)

 

   B) map the atlas to the individual brain using createIndivYeoMapping.m like so:

>>createIndivHCPMapping('PT001');

 

Then you can use plotPialSurf to show the parcellation for an individual subject like this:

>>cfg=[];
>>cfg.view='l';
>>cfg.overlayParcellation='HCP';

>>cfg.title='PT001: HCP Atlas';

>>cfgOut=plotPialSurf('PT001',cfg);

which produces an image like this:

 

To get the Yeo atlas area that is closest to each subdural electrode, run the function elec2Parc.m:

>>parcOut=elec2Parc('PT001','HCP');

 

5. Plot selected patches from an atlas (annotation file)

 

If you want to plot only one patch from an annotation file you can try this:

 

>>% Read annotation file

>>[averts, label, col]=read_annotation(fullfile(getFsurfSubDir(),'fsaverage','label','lh.Yeo2011_17Networks_N1000.annot'));

>>% Network you want to plot

>>id = 17;

>>% Make verteces gray

>>parc_col = .7.*255.*ones(size(col.table(:,1:3)));

>>% Color parcel of interest

>>parc_col(id,:)=col.table(id,1:3);

>>cfg=[];

>>cfg.view='l';

>>cfg.overlayParcellation='Y17';

>>cfg.title=sprintf('Y17 Atlas: Network %d',id);

>>cfg.parcellationColors = parc_col;

>>cfgOut=plotPialSurf('PT001',cfg);

 

 

 

*******GRATITUDE*******

 

If using the Desikan-Killiany Atlas, cite:

 

If using the Destrieux Atlas, cite:

 

If using the Yeo Atlas, cite:

 

If using the HCP Multi-Modal Parcellation Atlas, cite: