一边学习,一边总结,一边分享!
本期教程
写在前面
此图是一位同学看到后,想出的一期教程。
最近,自己的事情比较多,会无暇顾及社群和公众号教程。
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 × 6spec env r p rd pd <chr> <chr> <dbl> <dbl> <fct> <fct>
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的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!