美文网首页统计分析方法
批量计算表达矩阵任意两个基因的相关性

批量计算表达矩阵任意两个基因的相关性

作者: 小洁忘了怎么分身 | 来源:发表于2020-05-22 23:58 被阅读0次

    今天写了个函数,批量计算表达矩阵两个基因之间的相关性,安装这个小R包即可使用:

    if(!require(tinyarray))devtools::install_github("xjsun1221/tinyarray")
    exp = matrix(abs(rnorm(100*9)),100,9)
    rownames(exp) = paste0("gene",1:100)
    colnames(exp) = paste0("sample",1:9)
    x = cor.full(t(exp))
    head(x)
    # p.value        cor
    # gene1:gene2 0.6955068 -0.1523859
    # gene1:gene3 0.2312251  0.4439933
    # gene1:gene4 0.3569791  0.3492115
    # gene1:gene5 0.6608321  0.1705702
    # gene1:gene6 0.3679726 -0.3417962
    # gene1:gene7 0.5823323  0.2129008
    

    行名是两个基因名,第一列是p值,第二列是相关系数。这个示例矩阵有100行,计算的结果有4950行。有多少种排列组合 就会计算多少次。所以矩阵很大时,可能需要的计算时间较长。

    可以将相关系数最大的基因选出来画个图

    dat=data.frame(x=exp["gene49",],
                   y=exp["gene56",])
    
    library(ggpubr)
    sp1 <- ggscatter(dat, x = "x", y = "y",
                     add = "reg.line",  # Add regressin line 
                     add.params = list(color = "blue", fill = "lightgray"), # Customize reg. line
                     conf.int = TRUE # Add confidence interval
    ) + stat_cor(method = "pearson")
    sp1
    

    相关文章

      网友评论

        本文标题:批量计算表达矩阵任意两个基因的相关性

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