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.

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?

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?

4.
Does the fsaverage/surf/lh.area correspond to area of particular vertices on fsaverage/surf/lh.white? I expect yes.

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.

Thank you very much in advance for clarification,

Antonin Skoch