前言
这次我们谈论下富集分析的检验,富集分析通常是来看我们感兴趣的内容知否在某个数据集中有富集
富集分析算法
这里引用大佬之前总结的:https://www.jianshu.com/p/988d90484f77
有兴趣的同学可以进去原帖子看一下
Fisher’s Exact test
个人感觉该视频所介绍的内容不太好,这里引用其他同学的例子:
image.png
Fisher’s Exact test检验的是行列之间是否有相关
零假设:行列变量之间不相关
备择假设:行列变量相关
该例子描述的是节食是否和男女有关
那么这个的p_value按照超几何分布来计算
image.png
但是这并不是我们最终计算的p_value,接下来我们介绍个更具体的例子:
假设是说我的一手数据是这样的
image.png
image.png
我们按照上述公式来计算该情况的p_value
当然我们还要计算比这个情况更极端的情况
image.png
及当左上角的数据变为0的时候的p_value(其他数据跟着做调整)
如果左上角的数据不为0,那么依次减一,直到为0,并计算对应情形的p_value
image.png
此时将每种情况计算的p_value相加,即为最后的p_value
p-value=0.001346076 + 0.000033652 = 0.001379728
总结
fisher.test的核心就是比较两个类群的比例是否有差异
比如上述例子,节食是否与性别有关,意思是分为男,女两个类别,两个类别中节食人数所占该类别总人数的比例是否有统计学差异
显然:男,0/12
女,10/12
这是就有显著性差异的,也就是说节食与性别有关,并且计算p_value的公式为:
再有两个例子:
我们想看深圳的的大学人数在深圳总人数的占比是不是显著高于广东
也可以分为两个类别:深圳市和广东省
我们分别计算深圳市的大学生人数占比,和广东省大学生人数占比:
显然,深圳市,200/500;广东省,800/2300
深圳市的占比高于广东省,所以说明大学生在深圳是富集的。在深圳市大学生的成分较广东省整体要多
那么p_value的计算公式中,N代表广东省所有的人口,n代表深圳市所有的人口,M为广东省所有的大学生人数,i 为深圳大学生人口的极端情况的数值,在该例子中 i 为 0到199
还有就是GO富集:
在做GO富集时,我们筛选出来的差异基因数目一共500个,在A通路的有200个,而对于该物种,总共有2300个基因,在A通路的一共800个,那么:
在差异基因这个类群中,在A通路的占比为200/500;从全部基因来看,在A通路的占比为800/2300
显然,相比较整体,在差异基因这个类别,大部分基因执行A通路的功能,那么个体间的这种差异主要体现在A通路上
那么p_value的计算公式中,N代表总的背景基因数目;n代表所有的差异基因数目;M为在A通路中,被注释到的背景基因数目;i 为差异基因的极端情况的数值,在该例子中 i 为 0到199
所以总结来说:fisher.test一方面可以检测矩阵横纵变量是否有相关性;另一方面可以检测矩阵两个类别某项比例是否差异显著,某项指标在某一类别内是否具有更多的成分
网友评论