统计分析方法

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

2020-05-22  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读