关于alphasim等基于cluster level校正的一点思考

Submitted by liufeng on

Dear all,

最近关于cluster level的校正问题讨论的非常热烈,Eklund组的PNAS文章在世界范围内产生了非常大的反响(很多审稿人已经再问这个问题),SPM组和AFNI组也相继发表了回复文章。看完这些文章,我也有一些疑惑,希望严师兄及圈内人士帮我解惑下:

1. Eklund et al. 的PNAS文章中提到Alphasim校正对初始阈值的选择没有要求“The 3dClustSim function in AFNI also assumes a constant spatial smoothness and a Gaussian form of the SACF (because a Gaussian smoothing is applied to each generated noise volume). It makes no assumption on the CDT and should be accurate for any chosen value. ”。理论上对任何初始阈值其应该都有效,Cox的回应文章AFNI and Clustering: False Positive Rates Redux中对p<0.01和p<0.001都做了实验,结果都还不错,那么理论上CDT使用p<0.05是否也会不错呢?初始p值是否可以用的更大一些,基于PNAS文章的理论(It makes no assumption on the CDT and should be accurate for any chosen value),比如p<0.1, p<0.2 加一个cluster size达到cluster level p<0.05的校正。

2. Eklund et al. 的PNAS文章中提到Alphasim校正的两个问题所在,其中之一是“There are two main factors that explain these results. First, AFNI estimates the spatial group smoothness differently compared with SPM and FSL. AFNI averages smoothness estimates from the first-level analysis, whereas SPM and FSL estimate the group smoothness using the group residuals from the general linear model (32). The group smoothness used by 3dClustSim may for this reason be too low (compared with SPM and FSL; SI Appendix, Fig. S15).” 不太理解为什么AFNI估计平滑核是基于first-level分析的平均水平呢,REST软件的Alphasim很早就使用统计图或者残差图来进行平滑核的估计,DPABI也是基于组水平统计的残差图来估计平滑核。这两个软件的Alphasim校正应该都是从AFNI中搬过来的吧,所以AFNI中的Alphasim校正应该是用3dFWHMx在组水平残差图中估计平滑核,对吗?如果要基于first-level的统计估计平滑核,如果我们做REHO,ALFF的统计,根本没有first-level分析,又如何估计平滑核。所以,PNAS这篇文章这段话该如何理解?

3. PNAS文章中提到的15年的bug。“Second, a 15-year-old bug was found in 3dClustSim while testing the three software packages (the bug was fixed by the AFNI group as of May 2015, during preparation of this manuscript). The bug essentially reduced the size of the image searched for clusters, underestimating the severity of the multiplicity correction and overestimating significance (i.e., 3dClustSim FWE P values were too low).” 本质来讲,3dClustSim是Alphasim的升级版,可以做多个初始阈值。那么,3dClustSim诞生也没有15年,所以这个15年的bug指的是Alphasim的?

4.  针对PNAS的这两个Alphasim问题,现在DPABI做了哪些改进?如果使用DPABI做Alphasim校正,是否还有问题?对于p<0.001和p<0.01;现在REST软件的Alphasim校正是否已经不更新了,是否以后使用REST做Alphasim校正肯定有问题了。

5. 近期多篇关于cluster level校正的debate,那么传统的基于voxel level的FDR校正(非topological FDR),如果可以通过,是否有人会质疑。

6. 即使我们在全脑用了同样的平滑核,每个脑区的平滑程度也不会一样。从PNAS文章的补充材料里我们可以知道PCC的平滑程度最高,我很好奇为什么会出现这个现象。是否因为在静息态下PCC本身的活动比较强导致的?

 

Best,

Feng

YAN Chao-Gan

Wed, 08/31/2016 - 02:31

1. Voxel p<0.01里FPR已经大得“不能接受了”,p<0.05的FPR应该会更大。当然,理论上voxel p选什么是不影响的,但这些理论假设与实际往往不符。

2. 我觉得Eklund可能对3dFWMHx有别的理解。3dFWHMx的manual是对残差进行估计的。不过REST和DPABI的估计不是基于3dFWHMx,而是基于FSL的smoothest。

3. AlphaSim中这个所谓的bug一直存在。

4. Please see a detailed response at https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=ind1607&L=spm&P=R90251&1=spm&9=A&J=on&d=No+Match%3BMatch%3BMatches&z=4

 
The take home message is that we don't have that bug in the latest version. Now, the difference is that the estimation of mean and standard deviation is within the whole volume but not the within the mask -- we are hesitated to change this, because estimation of mean and standard deviation within a small mask might be inaccurate.
 
Also, Bob Cox said: "Simulations were also repeated with the now infamously "buggy" version of 3dClustSim: the effect of the bug on FPRs was minimal (of order a few percent)." http://biorxiv.org/content/early/2016/07/26/065862

 

DPABI will include permutation test and the latest revision of 3dClusterSim in the future.

That depends on the development of REST Plus.

5. FDR本身允许有5%的体素误报,按Eklund的做法,FPR会大得吓人。

6. 有可能。也有可能是大血管效应,值得进一步研究。

超赣

谢谢。

这里还有两个问题:

1. 在cox的回复文章中写到“The Past﹣ 3dClustSim and “The Bug.” The first problem was particular to AFNI: there was a bug in 3dClustSim. This program works by generating a 3D grid of N(0,1) iid random deviates, then smoothing them to the level estimated from the residuals of the FMRI data model, then carrying out voxelwise thresholding followed by clustering to determine the rate at which clusters of different sizes occur at the various voxelwise thresholds. The bug, pointed out by the authors of [2] in an email, was a flaw in how 3dClustSim rescaled the 3D noise grid after smoothing in order to bring the variance of the values back to 1.0 (for ease of later pvalue thresholding). This rescaling was off due to improper allowance for edge effects, with the result being that the clustersize thresholds computed were slightly too small, so that the FPR would end up somewhat inflated.

边缘效应带来的问题主要有两点,一是让mask内边缘的值拉低,从而导致cluster size会小一些。二是上面提到的,afni的alphasim工作的原理是平滑后重新进行rescale,使得数据重新满足正态分布。也就是进行减去全脑均值除以全脑标准差的过程。边缘效应,会导致全脑均值的降低(如果在全脑mask内,体素很多的情况下,这个影响肯定很弱),标准差也会降低(smooth的过程会让信号之间更加的相似,所以标准差降低)。

那么这个过程为什么会让cluster size的阈值减小,从而导致假阳性率的升高呢?This rescaling was off due to improper allowance for edge effects, with the result being that the clustersize thresholds computed were slightly too small, so that the FPR would end up somewhat inflated.” 

2. Cox文章中新提出的方法:The Present﹣ A NonParametric Approach to ClusterSize Thresholding. A second approach to adjusting the FPR in clustersize thresholding has been implemented in the AFNI program 3dttest++ (a program that is also capable of incorporating betweensubjects factors and covariates, in addition to carrying out simple voxelwise ttests; this point is discussed more later). The procedure is straightforward: 

● Compute the residuals of the model at each voxel at the group level; 

● Generate a null distribution by randomizing among subjects the signs of the residuals in the test, repeat the ttests (with covariates, if present), and iterate 10,000 times;

● Take the 10,000 3D tstatistic maps from the randomization and use those as input to 3dClustSim (with no additional smoothing): threshold the maps, clusterize them, and then count the false positives.

 

这个过程到底是怎么样的呢?在我们使用GLM模型的时候,每个人都会得到一个残差图;SPM也会给我们输出一个残差的方差图ResMS.nii. Residual variance estimate;那改变符号是怎么改变的呢?是否是随机改变ResMS图值的符号?Repeat the ttest又怎么理解?因为beta值转t值本身有公式CTB/var(CTB);是否是随机改变符号后用这个新的残差来估计t值?如果是,那这个可以叫Repeat the ttest吗?可以只能叫重新计算t值吧?

 

 

Any help would be greatly appreciate!

 

Best,

Feng

1. 在随机中,mask里面的值变小,卡p值后剩下比较少,能连成的团块会更小,导致得到的cluster size阈值变小。用这个小的cluster阈值去做校正,会增加假阳性。

2. ResMS.nii不是残差,是残差的方差。不能用来进行这一步。

If you use DPABI perform two-sample t-test, please edit y_TTest2_Image.m

Line 79

From

[b_OLS_brain, t_OLS_brain, TTest2_T, r_OLS_brain, Header] = y_GroupAnalysis_Image(DependentVolume,Regressors,OutputName,MaskFile,CovariateVolume,Contrast,'T',0,Header); 

to 

[b_OLS_brain, t_OLS_brain, TTest2_T, r_OLS_brain, Header] = y_GroupAnalysis_Image(DependentVolume,Regressors,OutputName,MaskFile,CovariateVolume,Contrast,'T',1,Header); 

 

Then you will get the 4D residual to estimate the smoothness.

这个残差可以用来随机改变符号。然后基于这个改变后的残差“重新计算t值”。

 

谢谢严师兄的回复。

针对第一个问题的回复(mask里面的值变小,卡p值后剩下比较少,能连成的团块会更小,导致得到的cluster size阈值变小),就算不做rescale这个问题也是存在的。那么smooth后重新rescale到正态分布会增加哪些弊端呢?Cox文章中说“The first problem was particular to AFNI: there was a bug in 3dClustSim. This program works by generating a 3D grid of N(0,1) iid random deviates, then smoothing them to the level estimated from the residuals of the FMRI data model, then carrying out voxelwise thresholding followed by clustering to determine the rate at which clusters of different sizes occur at the various voxelwise thresholds. The bug, pointed out by the authors of [2] in an email, was a flaw in how 3dClustSim rescaled the 3D noise grid after smoothing in order to bring the variance of the values back to 1.0 (for ease of later pvalue thresholding). This rescaling was off due to improper allowance for edge effects, with the result being that the clustersize thresholds computed were slightly too small, so that the FPR would end up somewhat inflated.” 我不清楚的是为什么rescale会增加假阳性率。

对于第二个问题,因为每个subject都会有一个残差图,那么如何改变正负号?随机改变每个样本每个体素的正负号?

Thanks,

Feng

 

1. 因为周边edge(值偏小)的存在,SD(变异)会更大。MASK内除以SD以让SD变回到1(正态分布),因为SD偏大,除之后的商就变小了。

2. 通常不解读为每个被试有一个残差图,而是解读成每个体素有一条残差序列,对这条残差序列各个点上的值进行符号随机改变。