Differences between revisions 1 and 2
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
~+'''Group Average Surfaces'''+~
Line 47: Line 49:
is automatically implmented in FreeSurfer when by scaling the FWHM by
the sqrare-root of the ratio of the group average surface area to the
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
Line 84: Line 86:
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.
Line 85: Line 94:
surfaces. Fortunately, the same function is called by both
mri_surfcluster AND mri_glmfit; while both programs have the error,
the error is consitent 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.
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 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.



Group Average Surfaces

Introduction

This page documents some of the issues involved with measuring areas and distances on FreeSurfer group average surfaces. 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 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.

GroupAverageSurface (last edited 2008-12-22 16:40:15 by crash)