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

测试结尾
今天是生信星球陪你的第630天
大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~
就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~
这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!
今天写了个函数,批量计算表达矩阵两个基因之间的相关性,安装我的小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

插个小广告!
全国巡讲全球听(生信线上直播课)
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!