相关性网络图 |显著性标记

一边学习,一边总结,一边分享!

本期教程

写在前面

此图是一位同学看到后,想出的一期教程。

最近,自己的事情比较多,会无暇顾及社群和公众号教程。

1 安装和加载相关的R包

library(ggraph)
library(tidygraph)
# install.packages("devtools")
#devtools::install_github("Hy4m/linkET", force = TRUE)
library("linkET")
packageVersion("linkET")
packageVersion("igraph")
#devtools::install_github("Hy4m/netET")
library(netET)

设置路径

setwd("E:\\小杜的生信筆記\\2023\\20231012-mental分析网络图")

2 加载数据

##mantel test
library(dplyr)

data("varechem", package = "vegan")
data("varespec", package = "vegan")

2.1 查看数据

## 查看数据
dim(varespec)
# [1] 24 44
varespec[1:10,1:10]
dim(varechem)
# [1] 24 14
varechem[1:10,1:10]

2.2 计算网络关系

mantel <- mantel_test(varespec,   ## 分类数据
                      varechem,  ## 影响因子数据
                      ## 以下代码是根据varespec(分类数据)进行分析计算
                      spec_select = list(Spec01 = 1:7,
                                         Spec02 = 8:18,
                                         Spec03 = 19:37,
                                         Spec04 = 38:44)) %>% 
  mutate(rd = cut(r, breaks = c(-Inf, 0.2, 0.4, Inf),
                  labels = c("< 0.2", "0.2 - 0.4", ">= 0.4")),
         pd = cut(p, breaks = c(-Inf, 0.01, 0.05, Inf),
                  labels = c("< 0.01", "0.01 - 0.05", ">= 0.05")))

查看数据

head(mantel)
###
> head(mantel)
# A tibble: 6 × 6
  spec   env        r     p rd        pd         
                   
1 Spec01 N     0.256  0.015 0.2 - 0.4 0.01 - 0.05
2 Spec01 P     0.137  0.093 < 0.2     >= 0.05    
3 Spec01 K     0.400  0.004 >= 0.4    < 0.01     
4 Spec01 Ca    0.0113 0.427 < 0.2     >= 0.05    
5 Spec01 Mg    0.0263 0.366 < 0.2     >= 0.05    
6 Spec01 S     0.275  0.021 0.2 - 0.4 0.01 - 0.05

2.3 绘制基础mantel相关性网络图

## 绘制相关性热图
D0 <- qcorrplot(correlate(varechem), type = "lower", diag = FALSE) +  
  geom_square() +   ## 相关性热图的形状
  ## 
  geom_couple(aes(colour = pd, size = rd), 
              data = mantel, 
              curvature = nice_curvature()) +
  ## 颜色参数调整
  scale_fill_gradientn(colours = RColorBrewer::brewer.pal(11, "RdBu")) +
  scale_size_manual(values = c(0.5, 1, 2)) +
  scale_colour_manual(values = color_pal(3)) +
  guides(size = guide_legend(title = "Mantel's r",
                             override.aes = list(colour = "grey35"), 
                             order = 2),
         colour = guide_legend(title = "Mantel's p", 
                               override.aes = list(size = 3), 
                               order = 1),
         fill = guide_colorbar(title = "Pearson's r", order = 3))
D0
ggsave("Mental相关性网络图.jpg",width = 6, height = 6)

2.4 绘制显著性网络图

我们在代码中详细标注了调整参数,可以自行根据需求进行调整即可。

本教程详细教程:相关性网络图 | 热图中添加显著性

小杜的生信筆記 ,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!

你可能感兴趣的:(R语言精美图形绘制教程,数据库,开发语言,信息可视化,学习,组学,数据分析,R语言)