[R语言可视化-精美图形绘制系列]--组内相关性分析

本期内容为[R语言可视化-精美图形绘制系列]--组内相关性分析--我们在前面分享过[R语言可视化-精美图形绘制系列--组间相关性分析],组内的相关性分析是比较容易的,使用corrplot包就可以直接获得cor值。但是计算P值就是比较困难,那么今天周末我们来搞一下哦!!

代码部分:

  1. 此部分可看我们的个人喜好进行设置,是可选项。
library(reshape2)
library(corrplot)
library(plyr)
library(igraph)
library(autoReg)
library(tidyverse)
library(ggsci)
2. 导入数据
input_data <- read.csv("20221112_input_data.csv", row.names = 1, check.names = F)
dim(input_data)
head(input_data)
            CK   Treat_01    Treat_02   Treat_03   Treat_04
gene01 -0.84977517  1.4181238 -0.54757208 -0.1937784 -0.2953731
gene02  0.47702001  1.2419958  0.30147166  0.3991298  1.8328058
gene03 -0.25585638 -0.8757098  0.01523679  0.3542401 -0.2953731
gene04 -0.76343921 -0.1194277 -0.15231595  0.8108953 -0.2953731
gene05  0.01850849 -0.8757098 -1.42282342  1.0168803  3.6391267
gene06 -0.84977517  1.6553410 -0.96212175  3.2958347 -0.2953731
  1. 相关性计算
corr <- cor(input_data, method = "spearman")
  1. 绘图
corrplot(corr,title = "", 
         method = "pie", #或"circle" (default), "square", "ellipse", "number", "pie", "shade" and "color"
         outline = T, addgrid.col = "darkgray", 
         order="hclust", addrect = 4, #hclust聚为4类,根据数据的具体情况调整
         mar = c(4,0,4,0), 
         rect.col = "black", rect.lwd = 5, cl.pos = "b", 
         tl.col = "black", tl.cex = 1.08, cl.cex = 1.5, tl.srt=60)
corrplot(corr, title = "",
         method = "circle",
         outline = T,
         addgrid.col = "darkgray")
## 显示数字
corrplot(corr,order = "AOE",type="upper",tl.pos = "tp")
corrplot(corr, title = "",
         method = "number",
         outline = T,
         add = TRUE, type = "lower",
         order="AOE",col="black",diag=FALSE,tl.pos="n", cl.pos="n")

## 合并
corpvlue <- cbind(pvalue, cor)
head(corpvlue)

## #去掉相关性较弱的连接
corpvlue <- corpvlue[corpvlue$pvalue < 0.05,] #只保留pvalue < 0.05的
dim(corpvlue)
head(corpvlue)

corpvlue$weight <- corpvlue$pvalue
corpvlue$weight <- -log10(corpvlue$weight)
head(corpvlue)

#去掉相关系数为1,也就是两个相同变量之间的连接
corpvlue <- corpvlue[!corpvlue$cor==1,]
dim(corpvlue)

#去掉相关系数一样的连接--也就是重复计算的连接
summary(duplicated(corpvlue$weight))

corpvlue <- corpvlue[!duplicated(corpvlue$weight),]
dim(corpvlue)

head(corpvlue)
##
outputdata <- corpvlue %>%
  select(from, to, pvalue, cor, weight)
colnames(outputdata)[1:2] <- c("sample01","sample02")
head(outputdata)

最后获得我们需要的文件即可

> head(outputdata)
 sample01 sample02       pvalue        cor   weight
2  Treat_01       CK 5.097618e-03 -0.4292847 2.292633
3  Treat_02       CK 1.583418e-02  0.3745557 1.800405
12 Treat_11       CK 2.641765e-02 -0.3466011 1.578106
61 Treat_14 Treat_02 2.724846e-02 -0.3459930 1.564658
79 Treat_09 Treat_03 4.870941e-03  0.4313068 2.312387
80 Treat_10 Treat_03 1.929456e-05 -0.6143757 4.714565
--

使用以前的码绘制气泡图

ggplot(outputdata, 
       aes(sample01,sample02, colour = cor, size = -log10(pvalue))) +
  geom_point(aes(alpha = -log10(pvalue))) + 
  scale_color_gradient2(low = 'blue',
                        mid = 'white',
                        high = 'red',
                        midpoint = 0) +
  scale_size_area() + 
  theme_bw() +
  xlab(NULL)+ylab(NULL)+
  ## 更改横纵坐标轴中的字体颜色、大小
  theme(axis.text.x = element_text(color = "black", size = 12, #face = "bold",
                                   angle = 45, hjust = 1),
        axis.text.y = element_text(colour = "black", size = 12))


往期文章(总汇)
01-[R语言可视化-精美图形绘制系列]--精美火山图
02-R语言可视化-精美图形绘制系列--柱状图
03-R语言可视化-精美图形绘制系列--功能富集分析
04-R语言可视化-精美图形绘制系列—多组GO富集可视化
05-[R语言可视化-精美图形绘制系列--堆积图]
06-[R语言可视化-精美图形绘制系列--组间相关性分析]
07-[R语言可视化-精美图形绘制系列]--Mental分析
08-[R语言可视化-精美图形绘制系列--复杂热图+两图渐变连线]-【转载】
09-[R语言可视化-精美图形绘制系列--桑基图(Sankey)]
10-[R语言可视化-精美图形绘制系列--柱状图误差线标记]
11-跟着NC学作图 | 柱状图与相关性图
12-[R语言可视化-精美图形绘制系列--GO、KEGG富集通路关联图]
13-[跟着“基迪奥生物学”作图]--截断图
14-[R语言可视化-精美图形绘制系列]--显著性箱线图
14-2[R语言可视化]--箱线图不同的画法及参数设置 | 学习笔记

你可能感兴趣的:([R语言可视化-精美图形绘制系列]--组内相关性分析)