~+'''Group Average Surfaces'''+~

<<TableOfContents>>

= Introduction =

This page documents some of the issues involved with measuring areas
and distances on FreeSurfer group average surfaces, including the
Dec08 Surface Cluster Bug.  Group average surfaces are created with
mris_make_average_surface (which is called by
mris_make_average_subject). The fsaverage subject distributed with
freesurfer was constructed using these programs.

= Average Surface Construction =

The average surface is constructed by computing the Talairach (MNI305)
coordinate at each vertex for each subject (based on the talairach.xfm
matrix for that subject). These coordinates are then mapped into the
common surface space and averaged together so that the coordinate of a
vertex in the common surface space is the average of the Talairach
coordinates from the corresponding surface locations of the
individuals. This results in the average surface overlaying nicely on
the average (MNI305) volume.

= Distance and Area Distortion on an Average Surface =

Unfortunately, this has another implication which is not immediately
apparent: the total surface area of the average surface is much less
than the average of the surfaces areas from the individual
subjects. This happens because the many little folds in an
individual's brain get smoothed out in the group average. This is
evident when comparing the white or pial surface of an individual to
that of a group average subject. For fsaverage, the average of the
individual surface areas is 82219 mm2 whereas the simple fsaverage
surface area is only 65416 mm2, a reduction of 20%. For group
surfaces, the original average area of the group is stored in the
surface file (see mris_info). In addition, the average area of each
vertex is stored in surf/?h.white.avg.area.mgh. The area of a vertex
is defined by the average of the the triangles surrounding the vertex.
This gives an location-specific means of computing the group average
area of a set of vertices.

= Distance Correction =

This issue affects distance and areas measures. Ie, two points on the
average surface would appear to be much closer than the same two
points mapped to an individual. The implication of this is that some
adjustment needs to be made when applying or measuring the
Full-Width/Half-Maximum (FHWM) of a spatially smoothing kernel. This
is automatically implemented in FreeSurfer when by scaling the FWHM by
the square-root of the ratio of the group average surface area to the
surface area of the group subject. In the example above, the FWHM
would be scaled by sqrt(82219/65416) = 1.1211.

= Area Correction =

The surface area of a patch measured on an average subject also needs
to be adjusted to represent the average of the patch areas as measured
from the individual subject's surfaces. Put another way, what you want
to report is the area you would get if you were to map a patch on an
average surface to all the individuals who make up the average, then
compute the average of the individual patches. This would be quite
tedious (and may be impossible if you do not have the individuals who
make up the average, as with fsaverage). 

Originally (ie, pre-Jan2006), we were not aware of this problem and
there was no correction. In Jan 2006, we added a correction in which
we simply scaled the patch area by the ratio of the group average
surface area to the surface area of the group subject.  In the example
above, the patch are would be scaled by 82219/65416 = 1.2569. This was
a global correction, meaning it was the same regardless of where the
patch was located. In Feb 2006, we then went to a more exact approach
in which we computed the average of the patch areas from the
individual subjects using the ?h.white.avg.area.mgh
file. Unfortunately, ...

= The "Dec08 Surface Cluster Bug" =

As mentioned above, we had implemented two methods to correct for the
group surface area distortion. Unfortunately, *both* methods ended up
being applied, resulting in cluster sizes reported by mri_surfcluster
being over estimated by a factor of 1.2569 (for fsaverage). So, a
cluster that had been reported to be 300 mm2 would actually be
300/1.2569 = 238.7 mm2. We are referring to this as the "Dec08 Surface
Cluster Bug" (though it can be tracked back to Feb 2006). 

Fortunately, the same buggy function is called by both mri_surfcluster
AND mri_glmfit; while both programs have the error, the error is
consistent across them.  This means that monte carlo and permutation
simulations performed by mri_glmfit and used by mri_surfcluster to
compute cluster-wise p-values are not affected. So the cluster-wise
p-values are correct.

This error only occurs for group surfaces, not individual
surfaces. Volume clustering is not affected. The distance correction
used to compute FWHM is not affected.

= Status of the Bug Fix =

Currently the bug has been fixed in the MGH internal development
environment, and we are propagating the fix to our stable build and
will make a new stable distribution available soon. The Fix not only
fixes the above problem, it also has safeguards built-in to make sure
that simulations performed with one version of mri_glmfit are
incompatible with another version of mri_surfcluster. Eg, if you ran
simulations with a version of mri_glmfit that did not have the fix but
ran a version of mri_surfcluster that did have the fix, then the
cluster size would be right, but the p-values would be wrong. With the
fix, this situation cannot happen.

= mris_anatomical_stats Bug =

This program reports surface area, however, if the input happens to be
a group surface, the surface area has no correction. Note that this
does not affect the numbers in aparc.stats and aparc.a2005s.stats
creted by mris_anatomical_stats during recon-all as these are for
individual subjects. This bug will also be fixed in the new stable
distribution.