我正在对基因表达数据进行基本的R分析。该分析旨在发现肾上腺的基因表达是否存在性别差异。
将数据分离为雄性和雌性,然后进行t检验。最后,我得到了一组p值,并对其进行了BH校正程序。但是我得到的调整后的p值是单调的,相同的值从头到尾重复。而且我无法在10%的显着性水平上找到任何拒绝。什么可能是错的?
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代码有什么问题吗?
提前致谢!
答案 0 :(得分:0)
这本身并不是一个“问题”。有关BH校正的详细信息,请查看这两篇文章 CrossValidated和 StackOverflow
您拥有的数据(假设它经过适当的预处理/标准化)表明基于性别没有显着差异。您可能需要考虑其他混淆效应(批次,年龄,疾病状况等)。