Fisher精确检验通常用于通路中基因列表的过表达分析。考虑一个列联表的以下示例:
in pathway
Y N
in gene list Y 90 110 | 200
N 10 790 | 800
------------------
100 900 | 1000
基本上有两种方法可以在R中进行基于表示分析的Fisher测试。 第一种是使用fisher.test(以应急矩阵作为输入)
fisher.test(matrix(c(90,10,110,790), nrow = 2), alternative = 'greater')$p.value
[1] 1.486473e-59
第二种是使用phyper(Meng's notes give an excellent explanation on how to use phyper, including why the "-1", and what q, m, n, k exactly mean):
phyper(q=90-1, m=100, n=900, k=200, lower.tail = FALSE)
[1] 1.486473e-59
我的问题:为什么这与以下不同:
1 - phyper(q=90-1, m=100, n=900, k=200, lower.tail = TRUE)
[1] 0