美文网首页
基因之间相关系数的批量计算(基于R)

基因之间相关系数的批量计算(基于R)

作者: 北欧森林 | 来源:发表于2021-01-19 20:38 被阅读0次

    在影像组学研究中,有时我们需要了解各特征之间的相关系数,如何批量计算呢?网上看到一个帖子,帖子里以基因为例子,批量计算基因之间的相关系数,很有借鉴意义。

    # 先产生一个矩阵
    data<-matrix(rnorm(120),nrow=20,ncol = 6)
    ## 模仿一个矩阵数据
    rownames(data)<-paste("gene",1:20,sep = "")
    colnames(data)<-paste("sample",1:6,sep ="" )
    head(data)
    
    Fig1.jpg
    #首先明确实现这个目的可以使用for循环 
    #构建好需要得出的结果表,包括基因名,相关系数,Pvalue
    
    #创建空向量
    gene_name1<-c()
    gene_name2<-c()
    cor_r<-c()
    pvalue<-c()
    
    # 准备好循环体-可使用嵌套的for循环,完成完整的计算但不重复
    # 注意第二个for循环的值为 i: nrow(data),这一点很巧妙
    
    for (i in 1:nrow(data)){
      for (r in i:nrow(data)){
        g1=rownames(data)[i]
        g2=rownames(data)[r]
        c_r=cor(as.numeric(data[i,]),as.numeric(data[r,]),method="pearson")
        p=cor.test(as.numeric(data[i,]),as.numeric(data[r,]),method ="pearson")[[3]]
        ##保存每一步的数据,而不可直接以空向量作为每一步运行的结果
        gene_name1=c(gene_name1,g1)
        gene_name2=c(gene_name2,g2)
        cor_r=c(cor_r,c_r)
        pvalue=c(pvalue,p)
           }
    }
    
    ###输出为数据框,导出结果
    data_cor<-data.frame(gene_name1,gene_name2,cor_r,pvalue)
    head(data_cor)
    
    dim(data_cor)
    # [1] 210   4
    
    Fig2.jpg

    参考资料:
    for循环的理解与应用

    相关文章

      网友评论

          本文标题:基因之间相关系数的批量计算(基于R)

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