详解富集分析超几何分布检验.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

详解富集分析超⼏何分布检验

R进⾏超⼏何分布计算

超⼏何分布是统计学中的⼀种离散分布,它描述了由限个物件中抽出n个物件,成功抽出指定种类的物件的个数。也是⽣物信息学中常⽤

的⼀种统计分布模型。我们在GO,KEGG的富集分析时就采⽤的是这个模型。其数学表达式如下:

f(k;n,m,N)={{{m\choosek}{{N-m}\choose{n-k}}}\over{N\choosen}}.

其中:

N:总样本数

m:总样本中“特定类别”的数量

n:从总样本中随机抽取的数量

k:抽取样本中属于“特定类别”的数量

但是我们做统计模型时,统计不是分布概率,⽽是累积概率,所以计算的p_value值计算公式为:

对应的R代码实现为:

1-phyper(k-1,m,N-m,n)

富集分析中的超⼏何分布概率p值等计算

choose(5,2)#排列组合数

gamma(5)#阶乘数

#我们通过⼀次分析,从100个总基因(其中位于A通路的20个)中筛到了10个差异基因,其中位于A通路的基因2个,不位于A中的8

#问:1、出现该情况的概率是多少?

#2、该抽样过程是否是随机情况?

#1、该情况的概率:

choose(20,2)*choose(80,8)/choose(100,10)

#[1]0.3181706

#2、该情况是否为随机的:

1-phyper(q=2,

m=20,

n=80,

10)

1-phyper(k-1,m,N-m,n)

结论:

phyper(q=2,m=20,n=80,k=10)

#####等价于

choose(20,0)*choose(80,10)/choose(100,10)+choose(20,1)*choose(80,9)/choose(100,10)+choose(20,2)*choose(80,8)/choose(100,10)

实战⽰例:

yy=read.tale(/nfs2/igeneook/old/paotongmerip_AJMeR2191122028MeRIP/06.GOKEGG/BB_IP_3_vs_BB_input_3_KEGGEnrich_enrich_filt.

txt,header=T,sep=\t)

yy[1:4,1:6]

xx-data.frame(a=str_split(yy$GeneRatio,\\/,simplify=T)[,1],

=str_split(yy$GeneRatio,\\/,simplify=T)[,2],

c=str_split(yy$BgRatio,\\/,simplify=T)[,1],

d=str_split(yy$BgRatio,\\/,simplify=T)[,2],

p=yy$pvalue,

p.adj=yy$p.adjust)

xx-apply(xx,2,as.numeric)

xx-as.data.frame(xx)

#注意!!!我这⾥使⽤的是q-1,同时设置了lower.tail=F

xx$p.diy-apply(xx,1,function(a){phyper(a[1]-1,a[3],a[4]-a[3],a[2],lower.tail=F)})

xx$p.adj.diy=p.adjust(xx$p.diy,BH)

head(xx)

注:

phyper(q=131,m=268,n=7662-268,k=1781,lower.tail=F)

##等价于

1-phyper(q=131,m=268,n=7662-268,k=1781)

文档评论(0)

liwenfang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档