Wilcoxon是基于等级的参数测试。如果您只有6个样本,则可获得的最佳结果是疾病的等级2、2、2与对照组的等级5、5、5,或者相反。
例如,在下面的这些随机值上尝试使用您在测试中使用的参数,您将获得相同的p。值0.02534732。
wilcox.test(c(100,100,100),c(1,1,1),exact=F,correct=F)$p.value
wilcox.test(c(5,5,5),c(15,15,15),correct=F)$p.value
所以是的,使用598019,您可以获得41913
您使用了错误的测试。要回答第二个问题,t.test效果不佳,因为您没有足够的样本来正确估计标准偏差。下面我向您展示一个使用DESeq2查找差异基因的示例
library(zebrafishRNASeq)
data(zfGenes)
# remove spikeins
zfGenes = zfGenes[-grep("^ERCC",rownames(zfGenes)),]
head(zfGenes)
Ctl1 Ctl3 Ctl5 Trt9 Trt11 Trt13
ENSDARG00000000001 304 129 339 102 16 617
ENSDARG00000000002 605 637 406 82 230 1245
前三个是控件,后三个是处理方法,就像您的数据集一样。为了验证我之前所说的内容,您可以看到,如果执行wilcoxon.test,最小值为0.02534732
all_pvalues = apply(zfGenes,function(i){
wilcox.test(i[1:3],i[4:6],correct=F)$p.value
})
min(all_pvalues,na.rm=T)
# returns 0.02534732
所以我们继续进行DESeq2
library(DESeq2)
#create a data.frame to annotate your samples
DF = data.frame(id=colnames(zfGenes),type=rep(c("ctrl","treat"),each=3))
# run DESeq2
dds = DESeqDataSetFromMatrix(zfGenes,DF,~type)
dds = DESeq(dds)
summary(results(dds),alpha=0.05)
out of 25839 with nonzero total read count
adjusted p-value < 0.05
LFC > 0 (up) : 69,0.27%
LFC < 0 (down) : 47,0.18%
outliers [1] : 1270,4.9%
low counts [2] : 5930,23%
(mean count < 7)
[1] see 'cooksCutoff' argument of ?results
[2] see 'independentFiltering' argument of ?results
因此,您的点击确实会超过FDR截止值。最后我们可以列出重要的基因
res = results(dds)
res[which(res$padj < 0.05),]
本文链接:https://www.f2er.com/3122019.html