美文网首页统计检验
T-test 、 pvalue FDR矫正 R语言实现 付代码实

T-test 、 pvalue FDR矫正 R语言实现 付代码实

作者: 阿酒88 | 来源:发表于2020-06-12 14:41 被阅读0次

    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)

    相关文章

      网友评论

        本文标题:T-test 、 pvalue FDR矫正 R语言实现 付代码实

        本文链接:https://www.haomeiwen.com/subject/gslgzhtx.html