乐于分享
好东西不私藏

「R绘图模板」Mantel test 进阶玩法2:多组变量与物种关系可视化(附R代码)!!!

「R绘图模板」Mantel test 进阶玩法2:多组变量与物种关系可视化(附R代码)!!!
关注我们
微信号:zhishanwang_WeChat
需要模板的友友可在公众号后台功能栏查看具体获取方式,或直接添加小编微信咨询哈!

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

图书推荐

前面小编写过好几期推文聊了很多 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 主要参数分类解读

类别
参数
含义
数据输入env
spec
环境因子数据框和物种/功能数据框
env_select
spec_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.12),  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 的列表:

  1. 直线连接版p[[1]]):适合点对点关系清晰的场景

  2. 曲线连接版p[[2]]):连线有曲度,视觉上更柔和

  3. Mantel 检验结果表格p[[3]]):每一行对应一个 Mantel 检验结果,包含 CorrelationPvaluep_signifspec_blockenv_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:检查 SigLineColorSigLineWidth 等参数,连线必须要有显著的 Mantel 检验结果才显示。可以通过 drop_nonsig = F 强制显示所有线。

Q4:中心点过多时怎样避免拥挤?A:增大 anchor_dist 让圆点之间的间距变大,同时适当调小 CorePointSize

Q5:mantel_kindspec_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绘图模板合集(包括附带注释的源码、测试数据及绘制效果图)可在公众号后台菜单栏→R代码查看具体获取方式!
绘图模板合集效果图展示:

往期推荐

R可视化——一文带你打通ggplot2个性化绘制箱线图(更新版)!!!

R可视化——一文带你打通ggplot2个性化绘制散点图!!!

R可视化——一文带你打通ggplot2个性化绘制柱状图(条形图)!!!

「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绘图模板」配对连线图+均值点及连线+显著性+嵌套分组!!!

「R绘图模板」微生物物种组成可视化组合图—tree+环形热图+柱状堆积图!!!

「R绘图模板」桑基图+微生物物种组成!!!

「R绘图模板」mantel test—基于linkET包(ggcor平替包)!!!

「R绘图模板」基因表达可视化—热图+聚类+上下调基因个数统计!!!

「R绘图模板」并列箱线图+多维度显著性标注!!!

「R绘图模板」嵌套图-箱线图+条形图!!!

「R绘图模板」离散环形散点+数据标签+分组占比+分面!!!

「R绘图模板」多分组并列柱状堆积图+误差线+组内及组间显著性字母标记!!!

「R绘图模板」小提琴图+嵌套箱线图+均值点及标签+显著性+分组背景色!!!

「R绘图模板」相关性散点矩阵图!!!

「R绘图模板」双y轴+并列条形图+折线图+显著性字母标记!!!

「R绘图模板」蝶形并列柱状图+不同组数+标签+误差棒!!!

「R绘图模板」跟着New Phytologist学绘图—共发生网络图的绘制!!!!!!

「R绘图模板」气泡图+热图+相关性r值与p值的可视化!!!

「R绘图模板」并列柱状图+组内差异字母标记+组间差异字母标记!!!

「R绘图模板」并列箱线图+散点+气泡图+分组+显著性!!!

「R绘图模板」环形多组火山图+标签!!!

「R绘图模板」组合图系列—相对丰度柱状堆积图+单组柱状图+显著性!!!

「R绘图模板」世界地图+采样点标记+柱状堆积图!!!

「R绘图模板」环形无分组排序柱状堆积图!!!

「R绘图模板」mantel test分析拓展——多样式多形式展示数据!!!

「R绘图模板」环形分组散点图+误差棒+分组标签+灰白间隔背景+辅助线!!!

「R绘图模板」箱线图+散点+配对连线+显著性+分面!!!

「R绘图模板」层级网络图的绘制!!!

「R绘图模板」世界地图+采样点标记+分组条形图+柱状图嵌套!!!

「R绘图模板」并列柱状图+不同组字母标记+组间显著性标记!!!

「R绘图模板」环状箱线图+分组+显著性+均值标记!!!

「R绘图模板」嵌套柱状图+显著性+字母标记!!!

「R绘图模板」跟着Nature Communications学绘图—世界地图+采样点标记+饼图+柱状图!!!

「R绘图模板」跟着Nature Communications学绘图—并列柱状堆积图+误差线+显著性!!!

R绘图模板——网络图+微生物丰度与基因间的相关性+正负相关(粉丝投稿)!!!