

为了避免各位错过最新的推文教程,强烈建议大家将“科研后花园”设置为“星标”!


前面小编写过好几期推文聊了很多 mantel test 的基础绘制方法及进阶玩法,比如把环境因子相关性热图和多个微生物群落的 mantel 连线整合在一起。最近小编在翻看推文时发现了另一个超牛的R包—
ggNetView,这个包将复杂多组变量与微生物关系封装成一个函数gglink_heatmaps,大大简化了多变量与多组学之间 Mantel 检验的可视化流程。
一、 ggNetView 是什么?谁开发的?
ggNetView 是一个专为网络分析和可视化设计的 R 包,尤其适合生物和生态领域。它的核心特色是提供了灵活、可复现且符合出版级标准的可视化工具,用于探索复杂生物网络、微生物共现网络以及多组学整合分析。
开发者:Yue Liu 和 Chao Wang(联系方式请见包的 GitHub 官方页面)
安装方式:
devtools::install_github("Jiawang1209/ggNetView")参考手册:
https://jiawang1209.github.io/ggNetView-manual/
这个包不仅能基于 gglink_heatmaps函数绘制多组环境变量与物种的mantel test可视化图案,还可以构建网络对象、子网络提取、WGCNA 后续分析以及蛋白质互作网络分析等多种功能。
二、 gglink_heatmaps 是干什么的?
一句话:把多个环境因子区块(外围热图)与多个物种/功能区块(中心节点)的 Mantel 检验(或相关性)结果,通过连线直观整合在一张图中。
图形布局可以通过参数自由调整,常见的有:
外围热图:展示环境区块内部变量之间的相关性(低色→高色)
中心节点:每个物种区块可以展开成网络,也可以折叠成一个圆点(
spec_collapse = T)连线:颜色、粗细、虚实分别映射 Mantel 检验的
r值、-log10(P)和显著性(连线颜色的参数是SigLineColor,线型默认实线,非显著连线由NonsigLineType控制)。
三、核心函数:gglink_heatmaps
3.1 安装
# 如果还没安装 devtools,先安装install.packages("devtools")# 从 GitHub 安装 ggNetViewdevtools::install_github("Jiawang1209/ggNetView")
3.2 主要参数分类解读
| 数据输入 | envspec | |
env_selectspec_select | ||
| 物种区块布局 | spec_collapse | T 或 F) |
group_layout | "circle"、"row"、"column"、"snake"、"arc" 等 | |
anchor_dist | ||
| 关系计算 | relation_method | "mantel""correlation" |
mantel_kind | "col_vs_col""block_vs_col"(块对列) | |
drop_nonsig | ||
| 连线样式 | SigLineWidth | -log10(P) 映射 |
SigLineColor | r 值映射 | |
NonsigLineType | "dashed"(虚线) | |
| 热图样式 | HeatmapColorBar | |
HeatmapLabelOrient |
四、动手实践:从单组变量到多组变量
以下以实际数据为例(格式需要是行为样本、列为变量),展示 gglink_heatmaps 的用法。
4.1 数据准备
library(ggNetView)# 读取 OTU 丰度表(行是样本,列是物种)和环境数据OTU <- as.data.frame(t(read.table("otu.txt", header = TRUE,check.names = FALSE, sep = "\t", row.names = 1)))ENV <- read.table("env.txt", header = TRUE, check.names = FALSE,sep = "\t", row.names = 1)
4.2 单组环境变量与物种的关系
# 把 OTU 分成细菌、真菌、原生动物三个区块# 把环境变量分成一个区块p <- gglink_heatmaps(env = ENV, spec = OTU,spec_select = list(Bacteria = 1:20, Fungi = 10:30, Protozoa = 30:60),spec_collapse = TRUE,env_select = list(Env_groupA = 1:10),orientation = c("top_right"),relation_method = "mantel",mantel_kind = "col_vs_col",cor.method = "spearman",drop_nonsig = FALSE,group_layout = "triangle",anchor_dist = 2, distance = -5,group_angle = 135,group_arc_angle = 90,HeatmapColorBar = list(c("#7caaff", "#fe6263")),SigLineWidth = c(0.1, 2),SigLineColor = c("#ffb310", "#0dd3ff"),CorePointFill = "#ff4c4c")p[[1]] # 直线连接版p[[2]] # 曲线连接版


4.3 两组环境变量与物种的关系
p2 <- gglink_heatmaps(env = ENV, spec = OTU,spec_select = list(Bacteria = 1:20, Fungi = 10:30, Protozoa = 30:60),spec_collapse = TRUE,env_select = list(Env_groupA = 1:10, Env_groupB = 5:15),orientation = c("top_right", "bottom_left"),# 其他参数参照上一例)


4.4 三组环境变量与物种的关系
p3 <- gglink_heatmaps(env = ENV, spec = OTU,env_select = list(Env_groupA = 1:10, Env_groupB = 11:20, Env_groupC = 5:17),orientation = c("top_right", "bottom_left", "top_left"),# 每个象限可单独配色HeatmapColorBar = list(c("#7caaff", "#fe6263"),c('#1872b1', '#ff7f0f'),c('#2c4398', '#b20f26')),# 其他参数参照上一例)


绘图完成后,把 RStudio 图形窗口拖到你喜欢的大小,再另存为 PDF。后续可以在 AI 或 PS 里统一调整字体和连线位置。
五、输出结果怎么看?
返回值是一个长度为 3 的列表:
直线连接版(
p[[1]]):适合点对点关系清晰的场景曲线连接版(
p[[2]]):连线有曲度,视觉上更柔和Mantel 检验结果表格(
p[[3]]):每一行对应一个 Mantel 检验结果,包含Correlation、Pvalue、p_signif、spec_block、env_block等。可以用这组数据做后续统计汇总,比如各环境区块对物种区块的平均影响
还可以通过
subset()提取特定区块组合的检验结果,再结合cor.test()等函数进一步可视化
通过调整 relations 和 drop_nonsig 参数,可以控制显示的 Mantel 检验结果范围。根据出图效果,还可以在 AI 里微调标签偏移量,达到更好的布局效果。
六、拓展玩法: ggNetView 还能干什么?
除了 gglink_heatmaps,这个包还内置了不少实用的网络分析功能,例如:
WGCNA 模块网络分析:无缝对接 WGCNA 分析后的网络可视化
蛋白质互作网络:适用于动植物、人类的 PPI 网络
转录因子与靶基因互作网络:结合 ChIP-seq 或 motif 数据,直接绘制调控关系图
微生物共现网络:基于 OTU 丰度表,一步构建共现网络并标注正/负相关关系
七、常见问题
Q1:安装时提示缺少依赖?A:ggNetView 依赖很多 CRAN 包,推荐先运行 install.packages(c("boot", "dplyr", "ggplot2", "igraph", "vegan", ...)),之后再用 devtools::install_github("Jiawang1209/ggNetView") 安装。
Q2:spec_select中的列索引超出范围?A:用 ncol(OTU) 和 ncol(ENV) 确认行列数,再调整 spec_select 和 env_select 的索引。
Q3:连线不显示或图例不全?A:检查 SigLineColor、SigLineWidth 等参数,连线必须要有显著的 Mantel 检验结果才显示。可以通过 drop_nonsig = F 强制显示所有线。
Q4:中心点过多时怎样避免拥挤?A:增大 anchor_dist 让圆点之间的间距变大,同时适当调小 CorePointSize。
Q5:mantel_kind和spec_collapse如何搭配?A:spec_collapse = T(折叠)且要按“每个物种块一条连线”,建议 mantel_kind = "block_vs_col"。如果需要每个物种列单独一条线,则用 "col_vs_col"。
参考文献:
[1] Yue Liu, Chao Wang (2025). ggNetView: An R package for complex biological and ecological network analysis and visualization. R package version 0.1.0. https://github.com/Jiawang1209/ggNetView.
公众号:科研后花园原创教程,转载请注明出处
PS: 以上内容是小编个人学习代码笔记分享,仅供参考学习,欢迎大家一起交流学习。







「R绘图模板」Mantel test 进阶玩法:多组学整合分析可视化(附R代码)!!!

「R绘图模板」正三角相关性热图+聚类树:一张图看懂变量间的“朋友圈”!!!

「R绘图模板」存在-缺失热图:一张图看懂数据的“有”和“无”!!!

「R绘图模板」中性群落模型:解密微生物群落构建的“随机密码”!!!

「R绘图模板」RDA&dbRDA&CCA可视化!!!

「R绘图模板」Communications Earth & Environment | 组合图系列—曼哈顿图+Venn图展示富集OTU情况!!!

「R绘图模板」Science Advances | 组合图-并列柱状图+饼图+折线图!!!

「R绘图模板」J. Agric. Food Chem. | 分面组合图-字母标记显著性柱状图+传统显著性标记箱线图!!!

「R绘图模板」主成分分析(PCA)+各类型边缘图!!!

「R绘图模板」Field Crops Res. | 组合图系列—三元图+条形图展示微生物丰度信息!!!

「R绘图模板」Nat. Commun | 复杂tree注释—分支颜色+多层离散热图+分组条形图!!!

「R绘图模板」多色系热图+分组气泡图!!!

「R绘图模板」配对连线图+均值点及连线+显著性+嵌套分组!!!































夜雨聆风