相关性分析的图形在R中绘制
2020-06-25 本文已影响0人
TrigoHoang
相关性分析的图形绘制
相关性分析在我们做生信过程中用到的频率很高。往往在别人的文章里看到这样的图。在自己找到hub基因中,进行相关性分析去看基因和基因的表达量之间是否有相关性。
NBJYOP.png有的时候这种图看着感觉不够秀,尝试一下在R语言里将此类图形画的更美观。
俩个基因之间的相关性分析图形绘制
还是以iris数据集作为测试数据
head(iris)
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa
table(iris$Species)
#setosa versicolor virginica
# 50 50 50
选取iris里面前五十个species为setosa的进行分析,同时将Sepal.Length, Sepal.Width, Petal.Length, Petal.Width重命名为 gene A~D,好方便测试示范。
test_data <- iris[1:50,]
names(test_data)=c('gene_A','gene_B','gene_C','gene_D','Species')
NBJ1Wd.png
相关性分析用cor函数求到结果,一般有三个方法 ‘pearson’,‘spearman’,‘Kendall’,pearson需要数据服从正太分布,大家根据自己需要选择,这里用spearman方法做示例。
##########看一下gene A 和gene B之间的相关性如何####
cor=cor(test_data$gene_A,test_data$gene_B,method='spearman')
cor
#[1] 0.7553375
得到相关性为0.7表示geneA 和geneB相关性很好。可以用ggpubr包粗略模仿一下开头的那个图
library("ggpubr")
ggscatter(test_data, x = "gene_A", y = "gene_B",
add = "reg.line", conf.int = TRUE,
cor.coef = TRUE, cor.method = "spearman")
[图片上传失败...(image-fbd979-1593078328925)]
但是为了尊严,一般会尝试把图画的秀一些,感觉自己棒棒哒。这里用的ggstatsplot包
library(ggstatsplot)
ggscatterstats(test_data,
x = "gene_A",
y = "gene_B",
title = "correlation analysis")library(ggstatsplot)
NBJJyt.png
有没有感觉自己的图瞬间帅气了。
多个基因之间的相关性
俩个基因的会画了,那么多个基因的呢?先用cor函数看一下基因之间的相关性
cor2 <- cor(test_data[,-5])
NBJ8SA.png
按着相关性用corrplot画图
library(corrplot)
#直接画
corrplot(cor2)
NBJNef.png
为了显示数值,用corrplot.mixed函数
corrplot.mixed(cor2)
NBJUw8.png
初代多基因相关性的图就画出来了。如需要改变参数画的更好看,就需要同学们有需要的自己探索了。
?corrplot
NBJaTS.png