前言
今天我们来谈一谈FDR,先说在前面,若该部分有不理解的部分,可以复习下抽样分布,在RNA-seq的测定中
如上图,对于不同样本,gene X的count数不太相同,只有一部分是比较接近均值的
显然此图的sample1和sample2的count数集中于分布的中心,所以以此计算的p_value会比较大,差异结果不显著
这样的话,对于gene X来说,sample1和sample2不存在差异表达
对应gene X,若两个sample在同一分布中,那么此时进行抽样(假设10000)做差异表达分析,那么由于在一个分布中抽样,所以差异表达分析的p_value普遍比较大,假设均匀分布在0到1之间,即在上图中蓝色分布中分别计算这两个样本中gene X的差异表达的p_value会比较大
假设说对于gene X,有两种处理sample1 和sample2, 每种处理有三个重复,由上图可知,sample1 的三个重复属于count数比较少的组,sample2的三个重复属于count数较多的组
在蓝色分布中,由于sample1和sample2中gene X的count数分布于蓝色分布两侧,所以我们认为在该情况下,在这个分布中gene X存在差异表达
在蓝色分布中,因为两个sample的差异表达的p_value 太小,建议这两个sample应该分为两个分布,因为一个分布的小概率事件发生了,有理由把它重新划分到另一个分布中(至少该分布会使该事件发生概率变大)
若调整分布,其中sample1对应上图黑色分布,sample2对应上图红色分布
如何获取真的差异基因
根据前面说的,我们把来自一个分布的sample看成无差异表达的,来自于两个分布的sample看成有差异表达的
那么差异表达的原假设就是无差异表达,备择假设就是有差异表达
那么从一个分布里面抽样,在左右两侧抽到的其实是有差异表达的,这一部分假阳性属于备择假设部分
从两个分布抽样,那么在两个分布极端情况重合的部分其实是没有差异的,这一部分假阳性属于原假设
也就是说在差异分析软件结果里面,当p值<0.05中,有一部分是由于假阳性导致的,即它本属于原假设,但是被错误判断为备择假设
如果我们的两个样品的某个基因取样来自同一个分布,我们在这个分布中随机抽很多次样(在整个分布中抽样,假设10000次),每一次抽取的样表示该样本该基因的count数,然后我们计算两个样本关于这个基因差异表达显著性p_value,并进行p_value的数值频数统计
我们发现这是满足均匀分布的
因为在同一个分布里抽样,大部分结果都是不显著的
仿照前言中所说,如果我们规定抽样介于分布的两侧,即只在一个分布的极端区域进行抽样(极端情况,按照建议,应该可以分为两个分布进行取样),那么我们可以得到显著结果
如果是来自不同分布,则计算的p_value大多都小于0.05,黑色分布的整体count数明显小于红色count,故显著性较为显著
但是往往我们计算的结果会使得结果过于严格
那么二者合一
那么往往蓝色部分才是真实的差异基因数量(只是初步判断,不完全准确),红色部分为多出来的,红色部分是在整体分布中抽样的,在这里我们暂时认为是假阳性的
BH矫正
基于上述例子,我们知道,不管采用什么方式来计算p_value,都会导致一定的假阳性,那么我们做FDR就是为了减少假阳性的发生,即扩大P_value的值,使其不显著
我们事先说明几个概念:
q value:衡量错误发现率的指标(False discovery rate,简称FDR,所有检验中假阳性的概率)
adjusted p value:经过矫正的p_value
-
FDR:错误发现率(False discovery rate)
事实上我看了很多资料,这三个东西其实描述是一件事
image.png
接着上面的例子,为什么我们不直接采用蓝色部分的作为true positive呢?
事实上,我们上面介绍的方法比较粗糙,一般在p<0.05的直方图里,大约只有5%是假阳性的,所以上述方法一刀切比较粗糙,采用上述方法主要是方便大家理解
那么接下来我们就学习下如何进行矫正:
-
将每个基因对应的p_value进行从小到大排序
image.png -
进行计算
对于最大的:
image.png
值不变(毕竟10/10*p_value等于其本身嘛)
往后的:
依次按照公式计算即可
调整后的p_value数值变大,大于0.05,使其不显著