iMeta: 南医大余光创组ggtree最新文章-系统发育树存储与可视化的数据结构

news2024/9/20 20:51:39

Ggtree:用于系统发育树及相关数据存储与可视化的数据结构

图片

https://onlinelibrary.wiley.com/doi/10.1002/imt2.56

SHORT COMMUNICATION

● 2022年9月28日,南方医科大学基础医学院余光创团队在iMeta在线发表了题为“Ggtree: a serialized data object for visualization of a phylogenetic tree and annotation data”的文章。

● 该文章设计了ggtree对象用于存储系统发育树,相关数据以及可视化指令,提高了系统发育数据的可重复性与可重用性。

●  第一作者:徐双斌

●  通讯作者:余光创 (gcyu1@smu.edu.cn)

●  合作作者:Lin Li (李林);Xiao Luo (罗晓);Meijun Chen (陈玫君);Wenli Tang (唐文丽);Li Zhan (詹历);Zehan Dai (戴泽翰);Tommy T. Lam (林讚育),Yi Guan (管轶)

● 主要单位:南方医科大学基础医学院生物信息学系;香港大学公共卫生学院新发传染病国家重点实验室;汕头大学病毒学联合研究所

亮   点

● 系统发育树与形式多样的相关数据可以存储在同一个ggtree图形对象中从而提高了系统发育数据的可重复性与可重用性

● 系统发育树与相关数据可以从ggtree对象中提取出来,并重新分析以辅助各个学科进行系统发育信息的综合比较研究

● ggtree图形对象可以被渲染成静态图像,并且保存在该对象中的可视化指令可以类似于Microsoft Word 格式刷操作对不同的树对象进行可视化

摘   要

尽管系统发育树与相关数据已越来越容易生成,但是对它们进行重复使用,组合以及比较仍是困难的。因为当前系统发育树通常是以图片形式进行发布,而且相关数据的存储形式往往也互不兼容。为了提高系统发育数据的可重复性与可重用性,我们设计了ggtree对象用于存储系统发育树,相关数据以及可视化指令。ggtree对象本身是一个图形对象,一方面其可以渲染成静态图像,更重要的是,可视化中的系统发育树与相关数据可以从该图形对象中提取出来,使得ggtree能够成为发布系统发育树(图像、树与数据在一个对象中)的理想数据结构,从而增强数据的重用性,分析的可重复性以及促进综合和比较研究。

视频解读

Bilibili:https://www.bilibili.com/video/BV16m4y1w7TG/ 

Youtube:https://youtu.be/u_rZY57LFno

中文翻译、PPT、中/英文视频解读等扩展资料下载

请访问期刊官网:http://www.imeta.science/

全文解读

引  言

系统发育数据具有重要的再利用潜力,因为系统发育正成为生态学、进化生物学、流行病学与分子生物学等研究的主要内容之一。对于系统发育数据的重新利用有助于在许多学科中对系统发育信息进行综合比较分析。然而,之前的一项调查表明,大约60%的已发表系统发育数据在科学社区中已永远丢失。造成这一情况的原因之一是系统发育数据的发表共享通常是以静态图像为主,缺乏可互通的共享文件。将相关数据(如分类信息,元数据、表现数据或者流行病学数据)注释到系统发育树图上是一种常用操作。尽管用于系统发育树的可视化以及注释的工具正在逐渐增加,但是这些工具的目的仍然是为了生成可发表的系统发育树图,其中还涉及选择注释数据(如bootstrap值)并将其注释到系统发育树上(比如作为文本标签或者分支颜色)。而这一过程也往往是单向无法逆转地产生一个静态图形,使得一些基础信息无法重用。我们需要从这种生成静态图形的单向目的转换成系统发育树,相关数据以及可视化指令组成的统一数据对象又可渲染成可视化图形的模式。

结   果

用于管理和存储系统发育树以及相关数据的图形对象

在这里,我们提出了一个数据结构,即ggtree对象,定义在ggtree软件包中。Ggtree软件包是一个可用于系统发育树以及各种相关数据的可视化注释的R/Bioconductor软件包。我们之前提出了两种方法将相关数据映射并可视化到系统发育树上。分类单元相关数据可以通过%<+%运算符链接到ggtree对象内的树结构,复杂的相关数据可以使用facet_plot或者geom_facet功能在独立的面板中通过特定的几何图层在与树结构对齐的基础上进行可视化。使用这两种方法映射与可视化的相关数据均被保存在ggtree对象中,且可以被提取出来。如图1所示,我们使用%<+%操作符将相关数据添加到系统发育树上,然后将后验概率值(posterior values)映射到系统发育树上的圆点用颜色深浅表示(图1A)。输出的结果为ggtree对象,其是一个可以被渲染成静态图形的图形对象(图1B)。该对象保留了系统发育树的信息以及相关数据(图1C)。用户可以将此图形对象转换为phylo(只有系统发育树结构没有注释数据)或者treedata(既有系统发育树结构又有数据)树对象。树对象可以使用tidytree或者treeio软件包进行进一步处理,并且也可以导出为Newick、Nexus或者BEAST Nexus,从而可以将相关数据存储为带注释的元素。ggtree图形对象还包含可视化指令与可视化样式,其被可重复,即可以用于新的树对象的可视化(图1D),这类似于Microsoft Word中的格式刷。在facet_plot中使用的相关数据有可能是复杂多样的,比如泛基因组层面的遗传信息与物种丰度分布。虽然数据没有直接映射到树上,但也可以从ggtree对象中提取出来。如图1E,各个物种的体重信息可以使用facet_plot可视化为与树并排对齐的柱状图,并且可以使用facet_data函数从ggtree图形对象中提取出来(图1F)

图片

图1. 使用 ggtree 对象存储系统发育树、关联数据和可视化指令的示例图

(A)Newick格式的树文件以及存放内部系统发育树内部节点的posterior的相关数据被读入R中分别存为x与d,通过ggtree()以及%<+%操作符,相关数据与树结构整合为一个ggtree图形对象p。(B)该图形对象可以使用print方法渲染为静态图形。(C)ggtree对象包含了系统发育树与相关数据,它可以被转换为treedata (含有树与相关数据,包括posterior,boostrap值或者其他添加到ggtree对象p的相关数据d),这个treedata对象又可以被进一步导出为Newick 文本(没有相关数据)和 BEAST Nexus 文件(有相关数据)。(D)ggtree对象中含有可视化指令,其可以被重新利用以对新的树对象进行可视化。(E)复杂的相关数据可以使用facet_plot或者geom_facet添加到ggtree对象中。(F)并且通过facet_plot或者geom_facet添加的数据可以facet_data从ggtree对象中提取出来

讨   论

除了系统发育树树本身之外,使用 ggtree 中提出的方法在系统发育树上映射和可视化的所有信息都是可重用的,包括呈现为视觉特征以显示系统发育树的数据和用于生成与树对齐的图形的相关数据。通过使用 ggtree,系统发育数据以及用于生成在出版物的静态图像的可视化指令均被无缝存储在单个对象中。这使系统发育的可视化变得更加便携和透明,也使得高质量的系统发育信息能够在不同的项目中被共享和重用。它还为合作作者之间的树数据远程合作修改沟通提供了巨大的潜力。如果使用 ggtree 图形对象发布了一棵树(即作为补充文件或存放到公开的数据存储库),其他人就可下载该文件并将其读入 R 以重现已发布的结果,并且可以通过重复使用对象中的数据或者其他来源的数据对该图形对象进行添加或修改注释图层。用户也可以从 ggtree 对象中获取树结构和相关数据,再用于配合使用相关的 R 包进行整合和比较分析。这种从生成静态图形到生成 ggtree 这样的数据对象的模式转变不仅提高了系统发育分析的可重复性,而且也确保了数据的可重用性,并促进了综合和比较研究来鉴定并追寻新问题。随着来自各个学科的系统发育数据变得广泛可用,这种模式转变应该成为设计下一代树可视化工具的标准。这个想法也可扩展到生物医学研究的其他领域,以开发可访问、可互操作和可重复使用的科学数据现代可视化工具。

方   法

ggtree软件包是基于ggplot2中实现的图形语法开发的。熟悉ggplot2的用户会发现ggtree非常易于使用,几乎没有学习成本。ggplot2和ggtree的使用体验是一样的,并且可以互相促进。ggtree软件包中定义的ggtree对象继承了ggplot2包中定义的ggplot对象。用户可以使用 ggtree 函数构造一个ggtree对象,该函数支持R中定义的多个树对象,例如phylo、phylo4、pvclust、hclust、diana、phylog、phyloseq等。可以利用%<+%操作符添加与树相关的数据到ggtree对象中,它将数据链接到树结构中并将信息存储在输出的ggtree对象中。这进一步扩展了树对象和相关数据之间的集成,便于数据探索和呈现,因为在R语言中为不同学科定义的许多树对象不支持存储外部数据。从这个角度来看,ggtree对象可以是一个链接,它将其他树对象与外部数据进行整合,然后也可将其转换为treedata对象。这使得tidytree、treeio、ggtree和ggtreeExtra这一系统的软件包能够被更广泛地使用,因为它们可以与treedata对象一起工作,并且可以通过对不同的简单注释图层进行组合以此来处理复杂的系统发育注释,有助于呈现更多样化的与树相关的数据。%<% 运算符提取的可视化指令也可像Microsoft Word格式刷应用于其他树对象的可视化。这也是可视化可重复的重要组成部分,但长期以来却一直被忽视。如果期刊上发表的图表的可视化模式能够支持这样的应用,将极大地促进数据的呈现。而 ggtree 实现的 %<% 操作符证明了这个想法的可能性。

代码和数据可用性

Ggtree软件包可以在https://www.bioconductor.org/packages/ggtree/免费获得,在线书籍https://yulab-smu.top/treedata-book/也提供了ggtree的完整参考。所有的补充材料(文本、图、表、中文翻译版本或视频)也可从线上获取http://www.imeta.science/。

引文格式

Shuangbin Xu, Lin Li, Xiao Luo, Meijun Chen, Wenli Tang, Li Zhan, Zehan Dai, Tommy T. Lam, Yi Guan, Guangchuang Yu. 2022. “ Ggtree: A serialized data object for visualization of a phylogenetic tree and annotation data.” iMeta. e56. https://doi.org/10.1002/imt2.56

作者简介

图片

徐双斌(第一作者)

●  南方医科大学珠江医院博士后

●  主要研究方向为微生物组学数据挖掘分析。其主导开发了ggtreeExtra,MicrobiotaProcess,ggstar等软件包,也是tidytree,treeio,ggtree,ggbreak等软件包的主要开发者之一。以第一作者(含共一)在Molecular Biology and Evolution,iMeta等国际学术期刊上发表论文6篇

图片

余光创(通讯作者)

● 南方医科大学基础医学院生物信息学系主任、教授、博导

● 一直专注于生物信息学方法工具开发及应用,在系统发育、组学数据分析和数据可视化上开发了多款广受同行认可的生物信息学工具。在Molecular Biology and Evolution, Methods in Ecology and Evolution, Briefings in Bioinformatics, Bioinformatics, The Innovation, iMeta等国际学术期刊上发表论文40余篇,其中有7篇ESI高被引论文,他引频数超过2万次,连续两年入选爱思唯尔中国高被引学者,连续两年入选全球前2%顶尖科学家榜单终身科学影响力和年度科学影响力排行榜

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2103763.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UOS系统下Java执行权限问题

在程序部署中&#xff0c;出现 /bin/java 权限不足 问题&#xff0c;这个问题是由于java文件无运行权限导致&#xff0c;通过 sudo chmod ax bin/java 项目中需要展示系统当前所有运行程序窗口界面截图功能&#xff0c;这个功能在实现时通过 import 截图可获取界面图片&…

【Story】国际标准组织及其相关信息(全)

目录 1. ISO&#xff08;International Organization for Standardization&#xff09;2. IEC&#xff08;International Electrotechnical Commission&#xff09;3. ITU&#xff08;International Telecommunication Union&#xff09;4. ISO/IEC 合作标准5. IEEE&#xff08…

使用ChatGPT7小时完成高分论文写作,AI写作避坑全攻略指南

大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥(yida985)交流,多多交流,相互成就,共同进步,为大家带来最酷最有效的智能AI学术科研写作攻略。经过数月爆肝,终于完成学术AI使用教…

探索前沿的WebGIS开发技术:新中地教育限时福利课程免费分享

随着新学期的到来&#xff0c;新中地教育特别推出了限时免费领取课程合集活动&#xff0c;领取截止时间9月9日。为广大GIS学习者和爱好者提供一个宝贵的学习机会。此次活动旨在鼓励更多人加入到地理信息系统&#xff08;GIS&#xff09;技术的学习中来&#xff0c;掌握前沿的We…

NYNQ u-boot+kernel+rootfs.ext4的构造

其中u-boot位与NoFlash中内核和根文件系统位于emmc中 具体描述&#xff1a; 基于上表&#xff0c;在进行内存地址分配将会事半功倍。

嵌入式在线商城

一、主线功能 1、设计与实现在线商城系统涉及到前端展示、后台管理以及数据库进行查找&#xff0c;功能包含登录页面、商品搜素、商品详细信息查找。 二、页面设计 2.1、商品搜索设计 2.2、商品详细信息展示设计 2.3、TCP并发服务器设计 HTTP是基于Tcp服务器搭建起来的 第一…

【Hadoop|HDFS篇】HDFS的Shell操作

1. 基本语法 hadoop fs 具体命令或者hadoop dfs 具体命令。 两个是完全相同的。 2. 命令大全 hadoop fs&#xff1a; Usage: hadoop fs [generic options][-appendToFile <localsrc> ... <dst>][-cat [-ignoreCrc] <src> ...][-checksum <src> ..…

Robotics: computational motion planning 部分笔记—— week 1 graph-based

grassfire algorithm 四周扩散性&#xff1b;从终点开始按照相邻最小距离格子移动 Dijkstra’s Algorithm 标明从起点开始的所有点的最短距离&#xff08;从上一节点继承&#xff09;&#xff0c;直到终点 A* Algorithm 带有启发性的&#xff0c;给出距离估计&#xff0c…

大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

LLM常见问题(RAG部分)

1. 什么是 Graph RAG&#xff1f; Graph RAG 是由悦数图数据提出的概念&#xff0c;是一种基于知识图谱的检索增强技术&#xff0c;通过构建图模型的知识表达&#xff0c;将实体和关系之间的联系用图的形式进行展示&#xff0c;然后利用大语言模型 LLM进行检索增强。 通过图技…

鸿蒙Harmony--状态变量更改通知--@Watch装饰器详解

风雨飘摇中&#xff0c;我心起伏&#xff0c; 万丈雄心&#xff0c;却难以施展。 天高地远&#xff0c;路途迷茫&#xff0c; 理想如星&#xff0c;却遥不可及。 千百次跌倒&#xff0c;千百次爬起&#xff0c; 在命运的手掌中&#xff0c;挣扎前行。 谁知我心中的热血滚烫&…

什么是科学碳目标(SBTI认证)

科学碳目标&#xff08;SBTI认证&#xff09;&#xff0c;这一绿色发展的璀璨明珠&#xff0c;是企业迈向可持续未来的重要里程碑。它不仅是全球环境信息研究中心(CDP)、联合国全球契约组织(UNGC)、世界资源研究所(WRI)与世界自然基金会(WWF)共同铸就的智慧结晶&#xff0c;更是…

【C++模板初阶】

文章目录 一、泛型编程二、函数模板1.函数模板概念2.函数模板格式3.函数模板的原理4 函数模板的实例化1. 隐式实例化2. 显式实例化不同类型形参传参时的处理 5.模板参数的匹配原则 三、类模板1 类模板的定义格式2 类模板的实例化 一、泛型编程 首先大家先思考一个问题&#xff…

Django form.save 方法的详细分析

在 Django 中&#xff0c;form.save() 方法是用于将表单中的数据保存到数据库的核心方法。它的功能和实现可以分为几个重要的部分&#xff0c;下面就是我对 form.save() 方法的详细分析&#xff1a; 1、问题背景 在 Django 中&#xff0c;我们经常会使用 Form 来处理用户提交的…

yum无法使用解决Could not resolve host: mirrorlist.centos.org; Unknown error

报错如下 2、问题原因 CentOS 7 的官方仓库在 2024 年 6 月 30 日之后已经停止维护。CentOS 7 的官方支持已经结束&#xff0c;部分仓库已被移至归档库。导致yum 命令无法找到所需的元数据文件。 3、解决方法 进入/etc/yum.repos.d目录下找到 CentOS-Base.repo cd /etc/yum.…

【鸿蒙蓝牙连接】

鸿蒙蓝牙连接 ble.startBLEScan startBLEScan(filters: Array, options?: ScanOptions): void 发起BLE扫描流程。 需要权限&#xff1a;ohos.permission.ACCESS_BLUETOOTH import { BusinessError } from ohos.base; function onReceiveEvent(data: Array<ble.ScanResu…

【iOS】暑期学习总结

暑期学习总结 前言无限轮播图换头像简单的网络请求UISearchController 前言 暑假在学校完成了五个项目&#xff0c;总的来说学习到了很多新的知识&#xff0c;这里对暑假中学习的内容进行一个小的总结&#xff0c;整理一些个人认为比较重点的内容。 无限轮播图 无限轮播图的…

PDF转换成Excel哪家强?热门工具大比拼

现在咱们周围电脑和手机一大堆&#xff0c;PDF和Excel这两种文件格式特别流行&#xff0c;不管是学习、工作还是平时生活&#xff0c;都能派上用场。但有时候&#xff0c;我们需要把PDF文件里的表格信息转换成Excel格式&#xff0c;这样处理和分析起来更方便。市面上有很多工具…

LabVIEW如何用数字判断布尔数组位置

问&#xff1a;在LabVIEW中&#xff0c;我有一个布尔数组&#xff0c;每次只有一位为True。我想通过判断这个数组对应的数字值来确定哪个位置为True&#xff0c;该如何实现&#xff1f; 答&#xff1a; 你可以将布尔数组转换为一个数字&#xff0c;并通过判断该数字的值来确定…

Java学习中误用 == 比较对象怎么办?

在Java编程中&#xff0c;操作符的误用是一个常见的陷阱&#xff0c;尤其是在比较对象时。理解和正确使用对象的比较机制对编写健壮的、无错误的Java程序至关重要。 一、Java中的操作符 在Java中&#xff0c;操作符用于比较两个变量的值。对于基本数据类型&#xff08;如int、…