一直感觉在生信入门阶段,盲目的用P<0.05且|log2(FC)|>1筛选差异基因过于robust,会导致很多有意义的差异基因没有筛到。比如说,很多基因log2(FC)=0.99,你说他没意义?这种一刀切的方式很激进,所以才会有GSEA,才会有WGCNA。所以我宁愿只将T检验做初步分析,不会丢掉信息。
批量做T检验怎么写?我今天写了一段程序供大家参考
一 整理表达矩阵test,KO为敲低组,WT为正常组
二 批量T检验
pvalue<-sapply(1:15004,function(i){t.test(test[i,c(1:3)],test[i,c(4:6)])[[3]]})
突然报错了:Error in t.test.default(D[i, c(1:3)], D[i, c(4:6)]) :
data are essentially constant
这是为什么呢?我开始查bug,为了看是哪一行出了问题,我将sapply换成了for循环
pvalue<-t.test(test[1,c(1:3)],test[1,c(4:6)])[[3]]
for(i in 2:15004){pvalue<-c(pvalue,t.test(test[i,c(1:3)],test[i,c(4:6)])[[3]])}
跑到了第1837行,突然出了bug,于是,我调1837行的数据出来看
原来是实验组和对照组的三个数值一样导致没法做T检验了。反手写了个if语句,将这种情况的行挑出来并删掉
c<-0
for(i in 1:150004){if((test[i,1]==test[i,2])&(test[i,1]==test[i,3])&
(test[i,4]==test[i,5])&(test[i,4]==test[i,6])==TRUE){c<-c(c,i)}}
test<-test[-c,]
pvalue<-sapply(1:15004,function(i){t.test(test[i,c(1:3)],test[i,c(4:6)])[[3]]})
作者:PriscillaBai
链接:https://www.jianshu.com/p/147b2195d6a3
共同学习,写下你的评论
评论加载中...
作者其他优质文章