T-test简介:
对分组变量的差异显著性检验,T-test是最为常用的检验方法,t-test要求数据符合正态分布。不符合用(Mann-Whitney U)
正态性检验 shapiro.test(x), 注:p值大于0.05 都不能拒绝原假设,数据是正态的
分析目的:
根据NMR数据找case control 生物标记物
第一步需要T-test进行初筛,数据格式如下:

想要自动进行分组检验,可以用R的which 命令进行数据筛选:
Tdata[2,which(Tdata[1,]=="0")] #筛选第二行 分组样本为“0”标签的 Glucose的分组数值
最终输出文件:

整体应用代码如下:
Pvalue<-c(rep(0,nrow(Tdata)-1))
log2_FC<-c(rep(0,nrow(Tdata)-1))
for(i in 2:nrow(Tdata)){
if(sd(Tdata[i,which(Tdata[1,]=="0")])==0 && sd(Tdata[i,which(Tdata[1,]=="1")])){
Pvalue[i-1]<- "NA"
log2_FC[i-1]<- "NA"
}
else{
y=t.test(as.numeric(Tdata[i,which(Tdata[1,]=="0")]),as.numeric(Tdata[i,which(Tdata[1,]=="1")]))
Pvalue[i-1]<-y$p.value
log2_FC[i-1]<-log2((mean(as.numeric(Tdata[i,which(Tdata[1,]=="0")]))+0.001)/(mean(as.numeric(Tdata[i,which(Tdata[1,]=="1")]))+0.001))
}
}
# 对p value进行FDR校正
fdr=p.adjust(Pvalue, "BH")
# 在原文件后面加入log2FC,p value和FDR,共3列;
out<-cbind(rownames(Tdata[-1,]),log2_FC,Pvalue,fdr)
write.table(out,file="ttest.out.xls",quote=FALSE,sep="\t",row.names=FALSE)
网友评论