相关性分析的图形在R中绘制

相关性分析的图形绘制

相关性分析在我们做生信过程中用到的频率很高。往往在别人的文章里看到这样的图。在自己找到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

你可能感兴趣的:(相关性分析的图形在R中绘制)