实现TFCE校正的三种方法

TFCE(Threshold Free Cluster Enhancement)是一种比较流行的多重比较校正方法,这里介绍实现TFCE校正的三种方法,包括FSL的randomise命令、基于SPM的TFCE和pTFCE插件。

《实现TFCE校正的三种方法》有19条评论

  1. 老师您好,我在进行TFCE中遇到了点问题想请教您:
    我采用CAT12下的TFCE 插件进行TFCE+PT这个方法,按照您的笔记,出来的TFCE_log_pFWE_0001这个文件就是最终结果吗?其上面的cluster就代表过了矫正的吗?还是说需要进一步卡阈值呢?因为我用其他软件打开这个图像(如dpabi、rest)都提示卡阈值是无效的。如果它是过了矫正的,在表述矫正方法的时候是否可以按照别的文献抑郁这样写:(p < 0.05, 5000 permutations, TFCE corrected)?
    提前感谢老师 希望能收到回复!

    1. TFCE_log_pFWE_0001是校正后的p值(进行了-log10变换)。如果想查看显著的区域,需要进一步卡阈值,比如p=0.05,-log10(p)=1.3,可以把阈值设为1.3。提醒你注意的是,SPM里的检验是单边检验,如果要做双边,可以把阈值设为-log10(0.025)=1.6。

      1. 谢谢老师我大概理解了
        所以TFCE_log_pFWE_0001是进行了TFCE+PT之后,再进行FWE矫正得到的p值图
        同理,TFCE_log_pFDR_0001是进行了TFCE+PT之后,再进行FDR矫正得到的p值图
        我举的例子(p < 0.05, 5000 permutations, TFCE corrected)这个描述其实是对TFCE_log_p_0001卡阈值为1.3之后得到的显著区域。
        也就是说 我们在正式使用的时候,三个都可以根据自己的情况来使用。
        不知这样理解是否正确 谢谢老师~

        1. FWE和FDR确实是对应于FWE和FDR校正后的p值,你这里的PT是什么意思?
          TFCE_log_p_0001应该是没有经过多重比较校正的原始p值。
          多重比较校正只分为FWE/FDR两种,TFCE只是其中一种方法(其实TFCE只是数据转换方法),所以要么是TFCE+FWE,要么是TFCE+FDR。如果只说TFCE corrected其实是没有说清楚的。

          1. 再次感谢老师的耐心回复!
            我这里的PT是指permutation test置换检验。
            FWE和FDR是参数检验的多重比较矫正方法,PT是非参数检验的多重比较矫正方法。
            我刚刚在官网看到,cat12下的工具包做TFCE只提供了TFCE+FWE和TFCE+FDR的结果,并没有提供TFCE+PT的结果(之前以后他进行了5000次置换会直接给出这个结果),所以产生了误解。
            现在明白了 再次感谢Alex老师~

            1. 我觉得你在理解上可能还是有偏差。FWE/FDR并不是特异于参数检验的多重比较校正方法。事实上,FWE/FDR也不是具体的校正方法,比如FWE(或FWER)<0.05,表示所有检验的结果的假阳性率都小于5%,至于说具体方法上如何保证这一点,就有不同的实现路径。比如,常用的方法有SPM里的基于Gaussian Random Field的校正方法,这个校正方法的大概原理就是估计出独立检验的次数,从而避免校正过于苛刻。permutation test是另一种比较常用的多重比较校正方法(同时也是非参数检验),思路是构造基于随机数据得到的零分布。TFCE并不是一种多重比较校正方法,只是数据转换方法,不过数据经过TFCE转换后,再进行多重比较校正,校正结果就会更宽松。这个问题涉及的细节比较多,我可能这里还是没有说清楚,可能需要再去了解一下每个概念的含义。我自己理解上也可能有误,仅供参考。

          2. 谢谢老师的耐心回复~
            所以您认为,在cat12下的TFCE工具包进行TFCE时,我将置换次数设置为5000以后(您的PDF写的是可以不更改参数,默认参数即为5000次置换)得到的结果,是我们传统意义上所进行的置换检验得到的结果吗?
            因为以我的数据结果为例:其本身在SPM中是可以经过FWE和FDR矫正的,但是当我使用TFCE toolbox进行TFCE转换后(参数为默认设置的5000次置换),是完全无法过FWE或FDR矫正的(TFCE转换后应该更宽松才对)。所以我的疑问在于:出现这种情况是否是因为这个工具包他默认参数设置是已经在TFCE转换后的基础上进行了PT(置换次数5000次),再进行FWE就相当于进行了两次多重比较矫正,所以过不了?
            所以基于此,如果他默认已经进行了置换检验,那么我们是否就可以直接去TFCE_log_p_0001的阈值?或者另一种方案是,参数设置的时候将置换次数设置为0,再在得到的TFCE_log_pFWE_0001图像上卡阈值呢?

            再次衷心感谢老师!

            1. (1) TFCE_log_pFWE_0001就是TFCE+PT后FWE校正后的p值,即是一般文章里最终报告的结果;
              (2) 能通过SPM里的FWE/FDR校正(不清楚你用的是SPM里的voxel-level还是cluster-level校正)并不一定能通过TFCE+PT的校正,宽松是相对于不做TFCE的PT而言的。如果你的数据结果是团块比较小的,TFCE并不起作用;
              (3) 并没有做两次校正,TFCE_log_p_0001是完全没有校正的结果。

  2. 补充说明:
    之前是看了Reproducibility of R-fMRI Metrics on the Impact of Different Strategies for Multiple Comparison Correction and Sample Sizes这篇文献,其结论是:PT with TFCE, a strict multiple comparison correction strategy, reached the best balance between FWER and test–retest reliability/replicability. 因此想使用这个方法。按照我的理解,他应该没有在TFCE做完之后再进行FWE或者FDR矫正的,所以想找到TFCE+PT的结果,不过似乎Cat12下的TFCE工具包无法实现。

  3. 您好,我有一个问题,按照您的笔记,TFCE是FWE校正的一种方法,那TBSS 分析得到的tbss_tfce_corrp_tstat1 是已经做了FWE 校正的吗?

    1. *_tfce_corrp_tstat1是FWE校正后的p值(实际上是1-p值)。准确地说,TFCE不是FWE校正本身,FWE校正是通过permutation test实现的。

  4. 老师,您好:
    FSL中的TFCE方法中默认的是FWE校正,但是数据过不了校验,我想用FDR校正,请问有什么命令可以实现这一目的?

    1. 你如果想获得FDR校正的结果,可以对未校正的p值图像使用fdr命令(https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FDR)。

      1. 您好,请问一下是否是在运行 randomize命令的时候 加上 –uncorrp 会生成*tfce_p_tstat1文件,然后用
        fdr -i *tfce_p_tstat1 –oneminusp -m mask -q 0.05 –othresh=thresh_tfce_p_tstat1
        这个命令得到FDR校正的结果?如果是的话,我按照上述步骤算出来没有差异的区域T^T,不知道哪一步出错了。

        1. 你这个步骤没错的,跟FSL官方wiki上的步骤是一样的(https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FDR)。可能只是FDR校正没结果而已。我也遇到过这种情况,FWE校正有结果,FDR确没有结果。

  5. 您好,请问cat12的TFCE算完后如何提取脑区了,可以用xjview吗?还是有其他的什么工具。

    1. 可以用xjview的或者在SPM12里也可以直接保存显著脑区。

      1. 非常感谢您的解答,想再确认一下,TFCE包——result——type of statistics选择TFCE(non-parameter)——FWE 0.05就是TFCE的FWE校正结果吧?结果中团块大小4个体素,p(FWE-corr)=0.049的结果可靠吗?再次感谢

        1. (1)是的。(2)如果团块大小只有4个体素,从统计上说,是合理的,因为这种方法对团块大小没有假设。但是也要考虑其他方面的合理性,比如这个团块位于脑脊液或者脑外可能就不太合理。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注