浅谈富集分析的Pvalue

本文介绍了超几何分布在生物学富集分析中的应用,特别是在计算差异基因GO富集分析和KEGG分析的Pvalue时的重要性。通过Python的Numpy库,展示了如何使用`hypergeom`函数进行超几何分布概率的计算,并提供了一个自定义函数的示例,帮助理解富集分析中的Pvalue计算过程。
摘要由CSDN通过智能技术生成

浅谈富集分析的Pvalue

引言

今天给大家带来一个关于“撒币“的问题,说起”撒币“,最经典就是二项分布,也就是你拿起一枚硬币抛向空中,当它转体n个360°,最后华丽的落在地上,出现正面或者反面的概率。具体的一些计算公式各位可自行找度娘索要。
在这里插入图片描述
除“撒币“问题,在数学中也有一个很好玩的实验,叫“取球实验”,也是就是在盒子里有黑球黑球黑球黑球白球白球白球…,当我们取n个球时,黑球数目为m时的概率,这个实验换个高级点的词汇,就是超几何分布。超几何分布和二项分布同为离散概率分布,超几何分布描述的是不放回的取样,而二项分布的话是放回取样。

超几何分布

在这里,我们为什么要提这个超几何分布呢,这就要从我们的转录组差异基因的下游分析说起。在差异基因下游分析中,GO富集分析和KEGG分析是最常见的,其Pvalue计算都是基于超几何分布。

首先,我们来看超几何分布的计算公式:
超几何分布计算公式
在这里呢,我们可以将N,M,n和k转化为的差异基因的参数,这也便于我们理解怎么计算某个GO term的Pvalue。

  • N:基因组中与该GO term同属于同一层面(BP、CC或者MF)的基因数目
  • M:基因组中含有该GO term的基因数目
  • n:差异基因中与该GO term同属于同一层面(BP、CC或者MF)的基因数目
  • k:n中含有该GO term的基因数目

Python计算超几何分布

目前python中Numpy的random包中提供了产生超几何分布结果的函数:
numpy.random.hyermetric(ngood, nbad, nsample, size=None)
具体可见here

  • ngood:做出好的选择的数量,也就是上面的含有该GO term的基因数目,即M
  • nbad:做出坏的选择的数目,也就是上面的不含有该GO term的基因数目,即N-M
  • nsample:取样的数目,也就是差异基因的数目,即n
  • size:采样的组数,即试验组数组数

上面的hypermetric()函数返回一组size大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值