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