示例
差异基因 | 背景基因 | ||
---|---|---|---|
在背景中有该Term的基因数 | 在背景中的差异基因总数 | 包含该Term的基因数 | 背景基因总数 |
k | n | m | N |
P值及校正
R语言
pvalue = phyper(k-1, m, N-m, n, lower.tail=F)
# 多重检验,针对所有行,而不是当前行
pvalues = c(p1, p2, p3, ...)
bonferroni = p.adjust(pvalues, method='bonferroni', n=length(pvalues))
fdr = p.adjust(pvalues, 'fdr')
# pAdjustMethod:
# one of "holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr", "none"
# =========
# qvalue计算
# =========
library(qvalue)
qvalue(pvalue, lambda=0.05, pi0.method="bootstrap")$qvalues
Python
import scipy.stats
pvalue = scipy.stats.hypergeom.sf(k-1, N, m, n)