eTIV - estimated Total Intracranial Volume, aka ICV


The estimated total intracranial volume (ICV) calculation is based on this work:

Basically, total intracranial volume is found to correlate with the determinant of the transform matrix used to align an image with an atlas. The work demonstrates that a one-parameter scaling factor provides a reasonable TIV estimation.


The Freesurfer binaries that calculate eTIV are mri_segstats and mri_label_volume.

recon-all automatically calls mri_segstats, putting the eTIV (also called ICV) in the <subj>/stats/aseg.stats file. Here is an example output line from an aseg.stats file:

# Measure IntraCranialVol, ICV, Intracranial Volume, 2053447.999698, mm^3

mri_segstats hard-codes the transform file used to extract the determinant, and hard-codes the scale factor (see Validation section below for details). To have mri_segstats output just the eTIV:

mri_segstats --subject subjid --etiv-only

In constrast, mri_label_volume requires specifying the transform file to use, and the scale factor:

mri_label_volume -eTIV \
 $sdir/transforms/talairach.xfm 1948 \
 $sdir/aseg.mgz 17 53

where $sdir is the path to the subject's mri directory (ie, $SUBJECTS_DIR/<subjid>/mri). The '17' and '53' are label ID's, in this case left and right hippocampus (see the subjects /stats/aseg.stats file for IDs). The output will look like:

using eTIV from atlas transform of 1528 cm^3
processing label 17...
3822 voxels (3822.0 mm^3) in label 17, %0.250119 of eTIV volume (1528075)
processing label 53...
4410 voxels (4410.0 mm^3) in label 53, %0.288598 of eTIV volume (1528075)

Here, the eTIV is 1528075mm^3.

To check the quality of the registration file talairach.xfm file:

cd $SUBJECTS_DIR/subject/mri/transforms
tkregister2 --xfm talairach.xfm \
  --targ $FREESURFER_HOME/average/RB_all_withskull_2008-03-26.gca \
  --mov ../nu_noneck.mgz --reg junk --ltaout


In the source code file utils/mri.c, the static variable 'eTIV_scale_factor' is multiplied by the atlas TIV to arrive at the subjects eTIV. The value for eTIV_scale_factor is determined by finding the best fit of the eTIV of 22 reference subjects against their known TIV (determined manually via their T2 scans, which clearly show skull). These subjects are found in /autofs/space/jc_001/users/nicks/subjects/SASHA.

In that SASHA directory, in the the scripts directory, the script run_rb.csh will run the mri_label_volume binary and generate a matlab data file called det_eTIV_matdat.m which contains the determinant and eTIV data. Then, the matlab script plot_det.m plots the determinant against the manual TIV, and also the eTIV against manual TIV, for each subject. The file ICVnative_matdat.m contains the manual TIV data, copied from the ICVnative column in the file buckner_tiv.txt, which originates from the people performing the manual TIV measurements.

The determinant vs. manual TIV plot is shown here:


The red line in the plot is the best fit to the points, and validates the assumption that there is a simple linear correlation between TIV and a single parameter (the determinant of the transform matrix aligning the subject to an atlas).

The value of the determinant is not itself the scale factor. Rather, this is determined iteratively via the eTIV vs. manual TIV plot, which is shown here for a scale factor of 2150:


The eTIV vs manual TIV plot has a unity slope line which is the ideal (the blue line), that is, estimated TIV exactly equals the true (manually determined) TIV. The best fit line, in red, shows how close to ideal the variable 'eTIV_scale_factor' is doing to match this line. eTIV_scale_factor is adjusted iteratively to find the best match.