MicrobiomeStatPlot | 弧线图教程Arc Diagram tutorial

360影视 2025-01-02 03:39 2

摘要:弧线图是一种特殊结构的网络图,常用于展示不同数据节点间的联系或频率。在弧线图中,节点沿单一轴线显示,节点间的链接用弧线表示。相比常规网络图,弧线图能够按需自行定义或优化每个节点的顺序,更好的突出显示群组和分支,同时还能清楚展示每个节点的文本标签。

弧线图简介

弧线图是一种特殊结构的网络图,常用于展示不同数据节点间的联系或频率。在弧线图中,节点沿单一轴线显示,节点间的链接用弧线表示。相比常规网络图,弧线图能够按需自行定义或优化每个节点的顺序,更好的突出显示群组和分支,同时还能清楚展示每个节点的文本标签。

标签:#

微生物组数据分析 #MicrobiomeStatPlot #弧线图 #R语言可视化 #Arc Diagram

作者:

First draft(初稿):Defeng Bai(白德凤);Proofreading(校对):Ma Chuang(马闯) and Jiani Xun(荀佳妮);Text tutorial(文字教程):Defeng Bai(白德凤)

源代码及测试数据链接:

https://github.com/YongxinLiu/MicrobiomeStatPlot/项目中目录 3.Visualization_and_interpretation/ArcDiagram

弧线图案例

这是成都中医药大学Nan Zeng团队2024年发表于Heliyon上的一篇论文(Bao et al., 2024)用到的图。论文题目为:Ischemic stroke pathophysiology: A bibliometric and visualization analysis from 1990 to 2022.https://doi.org/10.1016/j.heliyon.2024.e28597

图 5 | 同引参考文献的时间线可视化。

结果

CiteSpace 可用于对同引文献进行统计和相关性分析,将其划分为聚类。在本研究中,我们在同引文献网络中确定了八个不同的聚类,这些聚类具有显著的模块性和轮廓得分,表明这些聚类具有很高的可信度(Q = 0.4463,S = 0.8224)。图 5 显示了八个聚类,包括 #0 神经科学、#1 外周血管疾病、#2 药理学和药学、#3 医学、综合和内科、#4 医学、研究和实验、#5 生物化学和分子生物学、#6 多学科科学和 #7 放射学、核医学和医学成像。此外,如图 5 所示,过时的研究集群主要指 #0 神经科学、#1 外周血管疾病和 #6 多学科科学。截至 2022 年,热门研究集群为 #2 药理学与药学、#3 医学、全科与内科、#5 生物化学与分子生物学和 #7 放射学、核医学与医学成像,这些是缺血性中风病理生理学探索的热点。

弧线图R语言实战

软件包安装

# 基于CRAN安装R包,检测没有则安装p_list = c("tidyverse", "viridisLite", "patchwork", "hrbrthemes", "igraph", "ggraph", "scico","RColorBrewer")for(p in p_list){if (!requireNamespace(p)){install.packages(p)} library(p, character.only = TRUE, quietly = TRUE, warn.conflicts = FALSE)}# 加载R包 Load the packagesuppressWarnings(suppressMessages(library(tidyverse)))suppressWarnings(suppressMessages(library(viridisLite)))suppressWarnings(suppressMessages(library(patchwork)))suppressWarnings(suppressMessages(library(hrbrthemes)))suppressWarnings(suppressMessages(library(igraph)))suppressWarnings(suppressMessages(library(ggraph)))suppressWarnings(suppressMessages(library(scico)))suppressWarnings(suppressMessages(library(RColorBrewer)))

参考:

# 创建边列表(Create edge list)links source = c("A", "A", "A", "A", "B"), target = c("B", "C", "D", "F", "E"))# 转换为 igraph 对象(Convert to an igraph object)mygraph # 自定义颜色(Set color)node_colors # 创建常规网络图(Creating a general network diagram)p1 geom_edge_link(edge_colour = "gray50", edge_alpha = 0.5, edge_width = 0.5) + geom_node_point(aes(color = name), size = 7) + scale_color_manual(values = node_colors) + geom_node_text(aes(label = name), repel = TRUE, size = 4.5, color = "black") + theme_void + theme(legend.position = "none")# 创建弧形图(Creat Arc diagram)p2 geom_edge_arc(edge_colour = "gray50", edge_alpha = 0.5, edge_width = 0.5) + geom_node_point(aes(color = name), size = 7) + scale_color_manual(values = node_colors) + geom_node_text(aes(label = name), size = 4.5, color = "black", nudge_y = -0.3) + theme_void +# 并排显示两个图表Display two graphs side by side#p1 + p2# 加载数据# Load datadataUU # 将邻接矩阵转换为长格式(Convert adjacency matrix to long format)connect % pivot_longer(cols = -1, names_to = "to", values_to = "value") %>% mutate(to = str_replace_all(to, "\\.", " ")) %>% drop_na# 计算每个人的连接数(Count the number of connections per person)coauth % group_by(name) %>% summarize(n = sum(connect$from == name) + sum(connect$to == name))# 创建图对象(Creating a graph object)mygraph # 查找聚类群(Check clusters)com # 重新排序数据集并生成图表(Reorder the dataset and generate a graph)coauth % mutate(grp = as.factor(membership(com))) %>% arrange(grp)# 仅保留前 10 个聚类(Keep only the first 10 clusters)coauth % filter(as.numeric(grp) # 仅保留边中存在的这些人(Only keep those people who exist in the edge)connect % filter(from %in% coauth$name & to %in% coauth$name)# 设置颜色(Set color)mycolor # 生成图表(Plot)p geom_edge_arc(edge_colour = "grey70", edge_alpha = 0.2, edge_width = 0.4, fold = TRUE) + geom_node_point(aes(size = n, color = as.factor(grp), fill = grp), alpha = 0.8) + scale_size_continuous(range = c(1, 10)) + scale_color_manual(values = mycolor) + geom_node_text(aes(label = name), angle = 65, hjust = 1, nudge_y = -0.5, size = 1) + theme_void + theme( legend.position = "none", plot.margin = unit(rep(0, 4), "cm"), axis.title = element_blank, axis.text = element_blank, axis.ticks = element_blank ) + expand_limits(x = c(-1.2, 1.2), y = c(-6, 1.2))# 显示图表(Save plot)# print(p)ggsave("results/ArcDiagram.pdf",width = 8,height = 3,limitsize = FALSE)

使用此脚本,请引用下文:

Yong-Xin Liu, Lei Chen, Tengfei Ma, Xiaofang Li, Maosheng Zheng, Xin Zhou, Liang Chen, Xubo Qian, Jiao Xi, Hongye Lu, Huiluo Cao, Xiaoya Ma, Bian Bian, Pengfan Zhang, Jiqiu Wu, Ren-You Gan, Baolei Jia, Linyang Sun, Zhicheng Ju, Yunyun Gao, Tao Wen, Tong Chen. 2023. EasyAmplicon: An easy-to-use, open-source, reproducible, and community-based pipeline for amplicon data analysis in microbiome research. iMeta 2: e83. https://doi.org/10.1002/imt2.83

Copyright 2016-2024 Defeng Bai baidefeng@caas.cn, Chuang Ma 22720765@stu.ahau.edu.cn, Jiani Xun 15231572937@163.com, Yong-Xin Liu liuyongxin@caas.cn

宏基因组推荐

本公众号现全面开放投稿,希望文章作者讲出自己的科研故事,分享论文的精华与亮点。

投稿请联系小编(-genomics)

iMeta高引文章 fastp 复杂热图 ggtree 绘图imageGP 网络iNAP

iMeta网页工具 代谢组MetOrigin 美吉云乳酸化预测DeepKla

iMeta综述 肠菌菌群 植物菌群 口腔菌群 蛋白质结构预测

10000+:菌群分析 宝宝与猫狗 梅毒狂想曲 提DNA发Nature

为鼓励读者交流快速解决科研困难,我们建立了“宏基因组”讨论群,己有国内外6000+ 科研人员加入。请添加主编微信meta-genomics带你入群,务必备注“姓名-单位-研究方向-职称/年级”。高级职称请注明身份,另有海内外微生物PI群供大佬合作交流。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍未解决群内讨论,问题不私聊,帮助同行。

来源:微生物组

相关推荐