This is a script that will tell you the corrected cluster size threshold for given cluster-defining threshold: corrclusth.m
The usage is pretty self explanatory:
Find the corrected cluster size threshold for a given alpha function [k,Pc] =CorrClusTh(SPM,u,alpha,guess) SPM - SPM data structure u - Cluster defining threshold If less than zero, u is taken to be uncorrected P-value alpha - FWE-corrected level (defaults to 0.05) guess - Set to NaN to use a Newton-Rhapson search (default) Or provide a explicit list (e.g. 1:1000) of cluster sizes to search over. If guess is a (non-NaN) scalar nothing happens, except the the corrected P-value of guess is printed. Finds the corrected cluster size (spatial extent) threshold for a given cluster defining threshold u and FWE-corrected level alpha.
To find the 0.05 (default alpha) corrected cluster size threshold for a 0.01 cluster-defining threshold:
>> load SPM >> CorrClusTh(SPM,0.01) For a cluster-defining threshold of 2.4671 the level 0.05 corrected cluster size threshold is 7860 and has size (corrected P-value) 0.0499926
Notice that, due to the discreteness of cluster sizes you cannot get an exact 0.05 threshold.
The function uses an automated search which may sometimes fail. If you specify a 4th argument you can manually specify the cluster sizes to search over:
>> CorrClusTh(SPM,0.01,0.05,6000:7000) WARNING: Within the range of cluster sizes searched (6000...7000) a corrected P-value <= alpha was not found (smallest P: 0.0819589) Try increasing the range or an automatic search.
Ooops… bad range.
Lastly, you can use it as a look up for a specific cluster size threshold. For example, how much over the 0.05 level would a cluster size of 7859 be?
>> CorrClusTh(SPM,0.01,0.05,7859) For a cluster-defining threshold of 2.4671 a cluster size threshold of 7859 has corrected P-value 0.050021
Just a pinch!