Dear Doug,

thank you very much for the support.

I am quite confused by this info about correcting of area of fsaverage clusters. Could you please clarify to me the following:

How exactly the values of lh.area, lh.white.avg.area.mgh of fsaverage were computed?

How the cluster area inside mri_surfcluster (and also mri_glmfit and mri_mcsim) is computed?

How the correction for average subject is applied?

I assumed that area belonging to particular vertex is computed by summing areas of faces originating in particular vertex divided by 3.
The face areas are computed from vertex coordinates by the method (based on cross-product of vectors)

http://stackoverflow.com/questions/26312570/calculate-surface-area-of-a-3d-mesh

This is how the vertex area from surface file is computed inside PALM. Is the same method used in freeSurfer? I checked the values of lh.white vertex area computed in PALM and they do NOT correspond neither to lh.area, nor lh.white.area.mgh values.
I am listing areas of 3 representative vertices of fsaverage white surface got from lh.white.avg.area, lh.area and computed from lh.white in PALM:

vtx 50: lh.white.avg.area 0.4952, lh.area 0.589, PALM 0.5967
vtx 110: lh.white.avg.area 0.5533, lh.area 0.5198, PALM 0.5421
vtx 1000: lh.white.avg.area 0.6193, lh.area 0.3349, PALM 0.4305

Any clues why there is a difference?

In cluster summary file, there are flags FixVertexAreaFlag 1 and FixSurfClusterArea 1. What is the significance of these flags? I tried to set --no-fix-vertex-area. The FixVertexAreaFlag got value 0, but the vertex areas produced by mri_surfcluster were the same.
Is it possible to turn off also FixSurfClusterArea?

I also found flags FixVertexAreaFlag and FixGroupSubjectArea in .csd files. Are there similar corrections applied to cluster size values in .csd files?

Thank you in advance for help.

Regards,

Antonin Skoch

> Dear FreeSurfer experts, > > I am using mri_surfcluster to compare results from PALM and FreeSurfer > cluster extent inference. > > I came across several issues in mri_surfcluster I cannot cope with. > > 1. > I observed that --mask option in mri_surfcluster does not prevent > cluster to growing outside the mask. > > When I run > > mri_surfcluster --in lh.thickness.fsaverage_masked.mgh --sum > summary.txt --subject fsaverage --surf white --hemi lh --thmin 0 --ocn > cluster_summary.mgz --mask ./mask.mgh > > the cluster is growing outside mask and covers all surface including > non-cortical (masked) regions. > > Is this intended behavior? This behavior (allowing clusters leak > outside mask) seems strange to me since it could possibly influence > results of cluster-extent inference in case of mask-constrained analysis. This is happening because you are setting the threshold to 0. > > 2. > How behaves mri_glmfit-sim in permutation-based building > cluster-extent null distribution with mask? Is in this case also > allowed to clusters to leak outside mask? No > > 3. > Another issue is concerning reported cluster area. I tested > mri_surfcluster on data where overlay values > (lh.thickness.fsaverage.mgh) were set to 0 outside cortex mask (they > were non-zero also in some portion of non-cortical vertices). When I > set thmin to non-zero value in mri_surfcluster > > mri_surfcluster --in lh.thickness.fsaverage_masked.mgh --sum > summary.txt --subject fsaverage --surf white --hemi lh --thmin 0.00001 > --ocn cluster_summary.mgz --mask ./mask.mgh > > I get cluster comprising (almost) all cortex, not leaking to > non-cortical areas. But what is strange, the reported cluster size is > far larger than area of the whole cortical surface. > > number of voxels in search space = 149953 > Done loading source values (nvtxs = 163842) > overall max = 5 at vertex 817 > overall min = 0 at vertex 8 > surface nvertices 163842 > surface area 65417.097656 > surface area 65416.648438 > NOT Adjusting threshold for 1-tailed test > Searching for Clusters ... > thmin=0.000100 (0.000100), thmax=-1.000000 (-1), thsignid=0, > minarea=0.000000 > Found 2 clusters > Max cluster size 76431.562500 > Saving cluster numbers to pok.mgz > > > Here is output of mri_surfcluster: > # ClusterNo Max VtxMax Size(mm^2) MNIX MNIY MNIZ NVtxs > 1 5.000 817 76431.56 -25.8 4.6 -37.5 149874 > 2 2.670 144205 0.53 -15.8 -40.4 -3.8 1 > > How it is possible? The surface area of 65416.648438 has not been corrected for the fact that fsaverage is an average subject. The area in the summary table has been corrected. > > 4. > Does the fsaverage/surf/lh.area correspond to area of particular > vertices on fsaverage/surf/lh.white? I expect yes. The lh.area file does correspond. However, the area measures on the raw fsaverage surface are not accurate because the average surface has much less surface area due to averaging out the individual folding patterns. > > 5. > How it is possible to calculate area of specified vertex of surface? I > tried to do that by creating .label file with particular vertex number > and running > > mri_surfcluster --in lh.thickness.fsaverage_masked.mgh --sum > summary.txt --subject fsaverage --surf white --hemi lh --thmin 0.00001 > --clabel myVertex.label > > I indeed got report of 1 cluster with 1 vertex, with VtxMax value > identical to vertex index in myVertex.label > but the area value in summary.txt is different that value in > fsaverage/surf/lh.area. You can extract it out of ?h.white.avg.area.mgh using mri_segstats with the --slabel function. > > Thank you very much in advance for clarification, > > Antonin Skoch