BH校正程序给出单调/重复调整的p值

时间:2017-03-24 10:45:36

标签: r

我正在对基因表达数据进行基本的R分析。该分析旨在发现肾上腺的基因表达是否存在性别差异。

将数据分离为雄性和雌性,然后进行t检验。最后,我得到了一组p值,并对其进行了BH校正程序。但是我得到的调整后的p值是单调的,相同的值从头到尾重复。而且我无法在10%的显着性水平上找到任何拒绝。什么可能是错的?

以下是对基因表达数据进行t检验的R代码:

first.row <- t.test(son.a[1,males],son.a[1,-males])  

# Result from t-test :
# Welch Two Sample t-test
# data: son.a[1, males] and son.a[1, -males]
# t = 0.8923, df = 9.594, p-value = 0.3941
# alternative hypothesis: true difference in means is
#       not equal to 0
#       95 percent confidence interval:
#        -0.1188546 0.2761207
#        sample estimates:
#        mean of x mean of y
#        0.527884 0.449251

' son.a '是由42421个基因的基因表达值组成的数据框。样本取自男性和女性的肾上腺(总共9个样本)。

# Assigning a function 't.test.pvalue'
t.test.pvalue <- function(dat) {
    results <- t.test(dat[males],dat[-males])
    return(results$p.value)
    }

t.test.pvalue(son.a[1,])
# [1] 0.3940679





# Applying t.test.pvalue to all 42421 rows  
all.rows <- apply(son.a,1,t.test.pvalue)  

head(all.rows)
# [1] 0.3940679 0.5616102 0.6953087 0.3064443 0.8942156 0.8191188  

tail(all.rows)  
# [1] 0.8631147 0.3911861 0.4482372 0.8286146 0.8603733 0.2700229


# Loading "mutoss"
library("mutoss")

# Applying BH function
bh.adjustment <- BH(all.rows,alpha=0.1)
# Benjamini-Hochberg's (1995) step-up procedure
# Number of hyp.:    42421 
# Number of rej.:    0 

# Using p.adjust function
adjP <- p.adjust(all.rows,method = "BH")
adjP  
# [1] 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772
 0.9999772 0.9999772
# [10] 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772
# [19] 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 

在向量'adjP'结束之前,值是相同的。上面的R代码有什么问题吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

这本身并不是一个“问题”。有关BH校正的详细信息,请查看这两篇文章 CrossValidatedStackOverflow

您拥有的数据(假设它经过适当的预处理/标准化)表明基于性别没有显着差异。您可能需要考虑其他混淆效应(批次,年龄,疾病状况等)。