Differences between revisions 48 and 49
Deletions are marked like this. Additions are marked like this.
Line 169: Line 169:

 * '''The volume of the whole hippocampus obtained with this module is not the same as the one from the main recon-all stream (i.e., in aseg.stats). Which one is "better"?'''

This is because the volumes are computed with different atlases and methods. The volumes estimated by this module are in general smaller that those listed in aseg.stats, but they are highly correlated. We have found the volumes from this module to be slightly more reliable.

Segmentation of hippocampal subfields

This functionality is present in FreeSurfer 6.0 and later

Author: Juan Eugenio Iglesias

E-mail: iglesias [at] nmr.mgh.harvard.edu

Rather than directly contacting the author, please post your questions on this module to the FreeSurfer mailing list at freesurfer [at] nmr.mgh.harvard.edu

If you use these tools in your analysis, please cite:

See also: BrainstemSubstructures


Contents

  1. Motivation and General Description
  2. Installation
  3. Usage
  4. Gathering the volumes from all analyzed subjects
  5. Frequently asked questions
  6. Test data


1. Motivation and General Description

This tool generates an automated segmentation of the hippocampal subfields based on a statistical atlas built primarily upon ultra-high resolution (~0.1 mm isotropic) ex vivo MRI data. This new method can take advantage high-resolution, dedicated images when available (typically, but not necessarily, T2 weighted), and solves a number of limitations of the in vivo atlas that was distributed with FreeSurfer 5.1-5.3, namely:

(a) The image resolution of the training data used to built the atlas was insufficient for the human labelers to completely distinguish the subfields, forcing them to heavily rely on geometric criteria to trace boundaries, which affected the accuracy of their annotations. On the ex vivo images, several of these boundaries are much better visualized, so the annotations are much more reliable.

(b) Related to (a): a problematic consequence of the lack of resolution in the in vivo data was that the manual delineation protocol did not include the “molecular layer”, which corresponds to the stratum radiatum, lacunosum moleculare, hippocampal sulcus and molecular layer of the dentate gyrus, and which is also known as “dark band” due to its hypointense appearance in T2 MRI. The absence of the “molecular layer” in the atlas compromised the ability of the atlas to segment high-resolution in vivo data, since this layer is the key appearance feature describing the internal structure of the hippocampus. The new, ex vivo atlas does include this layer in the model.

(c) The delineation protocol of the in vivo atlas was designed for the hippocampal body and did not translate well to the hippocampal head or tail. The new atlas was created with a new, specifically designed labeling protocol.

(d) Due to issues (a), (b), and (c), the volumes of the subfield in the in vivo atlas did not agree well with those from histological studies (Simic, et al., 1997, Harding, et al., 1998). The volumes derived from the new atlas agree much better with these studies (see the Neuroimage paper).

Here is a coronal slice of a sample T1-weighted 1 mm scan and the corresponding segmentations given by FreeSurfer 5.3 and FreeSurfer 6.0:


samples1.png

And here is is a coronal slice of a sample T2-weighted scan with 0.4 mm in-plane resolution (coronal) and 2 m slice thickness, along with the segmentation given by FreeSurfer 6.0 (FreeSurfer 5.3 could not be used to segment such scans):


samples2.png

2. Installation

The hippocampal subfield module requires the Matlab R2012 runtime; the runtime is free, and therefore NO MATLAB LICENSES ARE REQUIRED TO USE THIS SOFTWARE. Please note that, if you have already installed the runtime for the brainstem module, you do not need to install it again. Instructions for the installation of the runtime can be found here:

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


3. Usage

This software has three modes of operation, depending on whether you only have a standard 1 mm T1 scan or you have an additional MRI volume containing the hippocampus (ideally of higher resolution).

  • Mode A: only standard resolution (~ 1 mm ) T1 scan available.

All you need is to append the flag -hippocampal-subfields-T1 to your recon-all command. For example, to analyze your subject "bert", you would type:

recon-all -all -s bert -hippocampal-subfields-T1 

Or, if Bert has already undergone the FreeSurfer pipeline (recon-all -all), you can just run:

recon-all -s bert -hippocampal-subfields-T1 

The output will consist of six files (three for each hemisphere) that can be found under the subject's mri directory (in this example, $SUBJECTS_DIR/bert/mri/):

[lr]h.hippoSfLabels-T1.v10.mgz: they store the discrete segmentation volume (lh for the left hemisphere, rh for the righ) at 0.333 mm resolution.

[lr]h.hippoSfLabels-T1.v10.1mm.mgz: they store the discrete segmentation volume in the 1 mm FreeSurfer voxel space.

[lr]h.hippoSfVolumes-T1.v10.txt: these text files store the estimated volumes of the subfields and of the whole hippocampi.

Note that [lr]h.hippoSfLabels-T1.v10.mgz covers only a patch around the hippocampus, at a higher resolution than the input image. The segmentation and the image are defined in the same physical coordinates, so you can visualize them simultaneously with (run from the subject's mri directory):

freeview -v nu.mgz -v lh.hippoSfLabels-T1.v10.mgz:colormap=lut -v rh.hippoSfLabels-T1.v10.mgz:colormap=lut

On the other hand [lr]h.hippoSfLabels-T1.v10.1mm.mgz lives in the same voxel space as the other FreeSurfer volumes (e.g., orig.mgz, nu.mgz, aseg.mgz) , but its resolution is lower than that of [lr]h.hippoSfLabels-T1.v10.mgz.


  • Mode B: segmentation with an additional scan

If an additional MRI volume (e.g., a T2 scan, but it could be proton density, or even another T1) covering the hippocampi is available, we can use it to obtain a more reliable segmentation - particularly in the case in which its resolution is higher than 1 mm (even if anisotropic). In this case, the only requirement is that the additional scan is coarsely aligned to the 1 mm T1 scan.

The are two sub-modes of operation, depending on whether we want to use the standard resolution T1 and the additional scan simultaneously in the segmentation (multispectral analysis), or if we only want to use the additional scan. The former is advised when the additional scan is of comparable resolution as the T1 scan (e.g., a 1x1x1 mm T2 volume) or when it does not cover the whole hippocampal region - in that case, the T1 information will be critical to segment the hippocampal regions outside the field of view of the additional volume (see for instance Figure 12e in the Neuroimage paper). The latter is advised when the additional scan is of higher resolution than the T1 volume and it covers the whole hippocampal region. The corresponding commands would be:

* Multispectral segmentation:

recon-all -s <subject_name> -hippocampal-subfields-T1T2 <file name of additional scan> <analysisID>

* Using only additional scan:

recon-all -s <subject_name> -hippocampal-subfields-T2 <file name of additional scan>  <analysisID> 

The string <analysisID> is a user defined identifier that makes it possible to run different analysis with different types of additional scans. For example, you can run the command with a T2-weighted volume and use the identifier "T2", and then run it again with a PD-weighted volume and use the identifier "PD", such that both results will coexist in the subject's mri directory (see naming convention for the generated output below). For a certain modality of additional scan, make sure that you use the same ID for all the subjects within a study. Also, if you run the both the multispectral segmentation and the segmentation with the additional scan only, using the same additional scan in both cases, you can (should!) use the same analysisID.

These commands generate the following outputs:

<analysisID>.FSspace.mgz: the additional scan, rigidly registered to the T1 data.

[lr]h.hippoSfLabels-<T1>-<analysisID>.v10.mgz: they store the discrete segmentation volume at 0.333 mm resolution in the physical space of the FreeSurfer T1 data (and therefore of the aligned scan <analysisID>.FSspace.mgz as well).

[lr]h.hippoSfLabels-<T1>-<analysisID>.v10.1mm.mgz: they store the discrete segmentation volume in the 1 mm FreeSurfer voxel space.

[lr]h.hippoSfVolumes-<T1>-<analysisID>.v10.txt: these text files store the estimated volumes of the subfields and of the whole hippocampi.

In order to visualize these outputs: let's say that you have run an analysis with id T2ADNI. Then, you can run:

* Multispectral segmentation

freeview -v nu.mgz -v T2ADNI.FSspace.mgz:sample=cubic \
-v lh.hippoSfLabels-T1-T2ADNI.v10.mgz:colormap=lut -v rh.hippoSfLabels-T1-T2ADNI.v10.mgz:colormap=lut

* Only additional scan

freeview -v nu.mgz -v T2ADNI.FSspace.mgz:sample=cubic \
-v lh.hippoSfLabels-T2ADNI.v10.mgz:colormap=lut -v rh.hippoSfLabels-T2ADNI.v10.mgz:colormap=lut


4. Gathering the volumes from all analyzed subjects

Once this module has been run on a number of subjects, it is possible to collect the volumes of the hippocampal substructures from all the subjects and write them to a single file - which can be easily read with a spreadsheet application. To do so, one would run:

quantifyHippocampalSubfields.sh <T1>-<analysisID> <output_file> <OPTIONAL_subject_directory>  

The first argument is the name of the analysis. For Mode A (i.e., based on 1mm T1 scan), it is simply T1. For Mode B, it would be T1-<analysisID> (for multispectral analysis) or just <analysisID> (for segmentation based only on the additional scan). The argument <output_file> corresponds to the text file where the table with the volumes will be written. The fields are separated by spaces. Finally, the third argument corresponds to the FreeSurfer subjects directory that we want to analyze. This argument is not necessary if the environment variable SUBJECTS_DIR has been defined.


5. Frequently asked questions (FAQ)

  • Are you sure that this software does not require Matlab licenses? Why does it require the Matlab runtime, then?

The software uses compiled Matlab code that requires the free runtime, but no licenses. So, if you have a computer cluster, you can run hundred of segmentations in parallel without having to worry about Matlab licenses. And yes, this is all perfectly legal ;-)

  • The sum of the number of voxels of a given structure multiplied by the volume of a voxel is not equal to the volume reported in [lr]h.hippoSfVolumes*.txt.

This is because the volumes are computed upon a soft segmentation, rather than the discrete labels in [lr]h.hippoSfLabels*.mgz. This is the same that happens with the main recon-all stream: if you compute volumes by counting voxels in aseg.mgz, you don't get the values reported in aseg.stats.

  • The volume of the whole hippocampus obtained with this module is not the same as the one from the main recon-all stream (i.e., in aseg.stats). Which one is "better"?

This is because the volumes are computed with different atlases and methods. The volumes estimated by this module are in general smaller that those listed in aseg.stats, but they are highly correlated. We have found the volumes from this module to be slightly more reliable.

  • The size of the image volume of [lr]h.hippoSfLabels*.mgz (in voxels) is not the same as that of norm.mgz or the additional input scan.

The segmentation [lr]h.hippoSfLabels*.mgz covers only a patch around the hippocampus, at a higher resolution than the input image. The segmentation and the image are defined in the same physical coordinates, so that is why you can still visualize them simultaneously with FreeView using the commands listed above. The software also gives [lr]h.hippoSfLabels*.1mm.mgz, which is in the same voxel space as the other FreeSurfer volumes, in case you need it for other processing.

  • This module is CPU hungry

Indeed! The deformation of the atlas towards the input scan(s) is parallelized, but recon-all by default limits operation to one thread (which is the polite mode of operation on a cluster). If you want to increase the number of cores that the software is allowed to use, you simply need to add this flag to the end of your recon-all command:

-itkthreads 4

where in this example usage of four threads is specified. You can set this to whatever number is optimal for your machine (two or four per core is typical). This flag sets the environment variable ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS.

  • What are the computational requirements to run this module?

If the input is just the standard resolution (1mm) T1 data from the main FreeSurfer pipeline, then the software requires approximately 10GB of RAM memory to run. If additional scans are used, then the exact amount of required RAM memory depends on the size and resolution of the additional scan.

  • The volume of the whole hippocampus obtained with this module is not equal to the value reported by the main FreeSurfer pipeline in $SUBJECTS_DIR/<subject_name>/stats/aseg.stats.

Yes! The reason for this is that the volumes correspond to two different analyses. We have found the estimates from this module to be slightly more accurate than FreeSurfer's (see paper).

  • What image formats are supported for the additional scan?

For now this software supports Nifti (.nii/.nii.gz) and FreeSurfer format (.mgh/.mgz).

  • Do you store the transform between the original additional volume and the FreeSurfer coordinate space?

Yes! You can find it under:

  • $SUBJECTS_DIR/<subject_name>/mri/transforms/T1_to_<analysisID>.v10.lta


  • The registration between the T1 and the additional scan failed, i.e., the T1 and <analysisID>.FSspace.mgz do not overlap when I open them in Freeview

This can happen if the input additional scan and the T1 are not approximately registered in first place. Please align the additional scan to the T1 (ideally without resampling) and re-run the analysis. If you use Freeview, you can use tools -> Transform Volume to manually register the images, then hit the "save as" button and check the option "Do not resample voxel data when saving"

  • I ran recon-all -all -hippocampal-subfields-T1/T2 and, after running for hours, the code stopped because I had not installed the Matlab runtime. Do I need to rerun everything?

No! You can just run recon-all -hippocampal-subfields-T1/T2 (that is, without the -all). Of course, that would be after installing the runtime.


6. Test data

Processed data of a single subject is available here:

curl -O ftp://surfer.nmr.mgh.harvard.edu/pub/data/hipposubfields-testdata.tgz

The data is extracted with:

tar zxvf hipposubfields-testdata.tgz

Note: within the Martinos Center, this data is found here, but should not be modified (make a copy) as it is used for testing:

/autofs/cluster/freesurfer/subjects/test/hipposubfields

The data is one subject from the ADNI dataset, is fully recon-d, and also includes a thick-slice hi-res T2 image. The recon-all command used to produce the subfield data was:

cd hipposubfields/ADNI_135_S_4863_20-Feb-2013
recon-all \
  -s ADNI_135_S_4863_20-Feb-2013 \
  -hippocampal-subfields-T1 \
  -hippocampal-subfields-T1T2 mri/orig/T2cor-raw.mgz T1T2 \
  -hippocampal-subfields-T2 mri/orig/T2cor-raw.mgz T2

To view the data:

cd hipposubfields/ADNI_135_S_4863_20-Feb-2013/mri
freeview -v \
  T1.mgz \
  T2.FSspace.mgz:sample=cubic \
  lh.hippoSfLabels-T1.v10.mgz:colormap=lut:visible=0 \
  rh.hippoSfLabels-T1.v10.mgz:colormap=lut:visible=0 \
  lh.hippoSfLabels-T1-T2.v10.mgz:colormap=lut \
  rh.hippoSfLabels-T1-T2.v10.mgz:colormap=lut \
  lh.hippoSfLabels-T2.v10.mgz:colormap=lut:visible=0 \
  rh.hippoSfLabels-T2.v10.mgz:colormap=lut:visible=0

Note that two of the result-types are not displayed by default. The check-boxes in freeview allow turning on/off each volume to allow comparing the segmentations under the three modes (T1-only, T1-T2 and T2-only).

HippocampalSubfields (last edited 2020-05-08 11:57:49 by JuanIglesias)