你甚至无法开始理解生物学,你无法理解生命,除非你了解它存在的目的,它是如何产生的——这意味着进化。

——理查德·道金斯

引用

如果你使用ggtree在已发表的研究中,请从以下列表中引用最合适的论文:

  1. G余、史密斯DK、朱鸿辉、关永华、林泰辉.ggtree:一个R包,用于系统发育树及其协变量和其他相关数据的可视化和注释。生态学与进化论中的方法.2017年,8(1):几个。doi:10.1111 / 2041 - 210 x.12628
  2. G余、林志远、朱宏、关勇.利用ggtree绘制和可视化系统发育相关数据的两种方法。分子生物学与进化岩石力学与工程学报,2018,35(2):3041-3043。doi:10.1093 / molbev / msy194

简介

这个项目源于我们在系统发生树中注释核苷酸取代的需求,我们发现没有树可视化软件可以轻松做到这一点。现有的树查看器是为显示系统发育树而设计的,而不是用于注释。尽管一些树查看器可以在树中显示引导值,但是很难/不可能在树中显示其他信息。我们在树中显示核苷酸取代的第一个解决方案是将此信息添加到节点/尖端名称中,并使用传统的树查看器来显示它。我们成功地在树中显示了信息,但是我们认为这种间接的方法效率很低。

以前,系统发育树要小得多。系统发生树的注释是不需要的,因为现在有更多的数据可用。我们希望将我们的实验数据,例如抗原变化,与进化关系联系起来。在系统发生树中可视化这些关联可以帮助我们识别进化模式。我们相信我们需要一个下一代的树查看器,它应该是可编程和可扩展的。它可以像使用经典软件一样轻松地查看系统发育树,并支持在树的上面一层添加注释数据。这是发展的目标ggtree(Yu et al. 2017).注释系统发育树的常见任务应该很简单,而复杂的任务可以通过添加多层注释来实现。

ggtree是通过扩展ggplot2韦翰(2009)包中。它是基于图形的语法,并采取了所有好的部分ggplot2.还有其他R包实现了树查看器ggplot2,包括OutbreakToolsphyloseq(McMurdie and Holmes 2013)而且ggphylo;他们通常为特定的需求创建复杂的树视图函数。在内部,这些包将系统发育解释为行集合,这使得很难注释与节点(分类单元)相关的不同用户输入。的ggtree与它们不同的是,将树解释为分类单元的集合,并允许使用不同类型的用户输入注释系统发育树的一般灵活性。

获取数据R

大多数树查看器软件(包括R包)专注于Newick而且联系文件格式,而来自不同进化分析软件的文件格式包含文件中的支持证据,可用于注释系统发育树。的treeio软件包支持多种文件格式和软件输出。它带来分析结果R作进一步分析的用户(如。总结,可视化,对比和测试,等。).它还允许将外部数据映射到系统发育上。详情请参阅treeio更多细节。

用户可以使用以下命令打开小插图:

所有数据解析/集成treeio软件包可用于系统发育树的可视化或注释ggtree(Yu et al. 2017)

树可视化和注释

树的可视化ggtree很简单,只用一行命令ggtree (tree_object).它支持多种布局,包括矩形倾斜的圆形而且风扇phylogram而且进化分枝图equal_angle而且日光拔起布局,时间尺度和二维系统发育。树可视化Vignette详细描述了这些特性。

我们实现了几个功能来可视化地操作系统发育树,包括查看所选的分支以探索大树、类群聚类、旋转分支或树、缩小或折叠分支等。

树操作函数。
函数 Descriptiotn
崩溃 折叠一个选择分支
扩大 扩展崩溃支
翻转 交换共享一个父节点的两个分支的位置
groupClade 分组演化支
groupOTU 通过追溯最近的共同祖先来分组OTUs
识别 交互式树操作
旋转 将选定的支枝旋转180度
rotate_tree 按特定角度旋转圆形布局树形
scaleClade 放大或缩小选择分支
open_tree 通过特定的开放角度将树转换为风扇布局

详情及例子见树的操作装饰图案。

大多数系统发生树是按进化距离(取代/位点)缩放的,在ggtree系统发生树可以通过进化分析推断出的任何数值变量重新缩放(例如物种分化时间、dN/ d年代).数值变量和类别变量可以用来为系统发育树着色。

ggtree包提供了几个层来注释系统发育树。这些层是构建块,可以自由组合在一起以创建复杂的树可视化。

ggtree中定义的Geom层。
描述
geom_balance 突出显示内部节点的两个直接子分支
geom_cladelabel 用条和文本标签注释一个分支
geom_cladelabel2 为无根布局注释一个支带栏和文本标签
geom_hilight 突出显示一个矩形分支
geom_hilight_encircle 用xspline突出显示未根布局的分支
geom_label2 修改版的geom_label,支持子集
geom_nodelab 层的节点标签,可以是文本或图像
geom_nodepoint 用符号点注释内部节点
geom_point2 修改版的geom_point,支持子集
geom_range 条层表示进化推理的不确定性
geom_rootpoint 用符号点注释根节点
geom_segment2 修改版的geom_segment,支持子集
geom_strip 用栏和(可选的)文本标签注释相关的分类单元
geom_taxalink 用一条曲线将两个相关类群连接起来
geom_text2 修改版的geom_text,支持子集
geom_tiplab 提示标签层,可以是文本或图像
geom_tiplab2 圆形布局的点头标签层
geom_tippoint 用符号点注释外部节点
geom_tree 树形结构层,支持多种布局
geom_treescale 树枝尺度图例

ggtree支持使用Emoji字体创建汉字,请参阅Phylomoji装饰图案。

ggtree集成了phylopic可以下载生物数据库和剪影图像,直接用于系统发育注释。ggtree还支持使用本地或远程映像来注释系统发育树。详情请参阅ggimage包小插图,可以通过以下命令打开:

中还支持用数值矩阵(例如基因型表)可视化注释的系统发育树,多序列比对和子图ggtree.注释系统发育树的例子可以在树注释装饰图案。

装饰图案的条目

ggtree主页https://guangchuangyu.github.io/software/ggtree(包含有关软件包的更多信息、更多文档、漂亮的已发布图像库和相关资源的链接)。

需要帮助吗?

如果您有任何问题,请访问ggtree主页第一。你的问题大多都有文档记录。如果你认为你发现了一个漏洞,请跟随该指南并提供一个可复制的例子张贴Github问题跟踪器.如有疑问,请发送至谷歌集团.我们强烈建议用户订阅邮件列表

会话信息

这是的输出sessionInfo ()在编译本文件的系统上:

## R版本3.5.2(2018-12-20)##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 16.04.5 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.8-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.8-bioc/R/lib/libRlapack。所以## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# # [3] LC_TIME=en_US。UTF-8 LC_COLLATE= c# # [5] LC_MONETARY=en_US。utf - 8 LC_MESSAGES = en_US。UTF-8 ## [7] LC_PAPER=en_US。UTF-8 LC_NAME= c# # [9] LC_ADDRESS=C lc_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基础包:## [1]stats graphics grDevices utils datasets methods基础## ##通过命名空间加载(且未附加):## [1]compiler_3.5.2 magrittr_1.5 htmltools_0.3.6 tools_3.5.2 ## [5] prettydoc_0.2.1 yaml_2.2.0 Rcpp_1.0.0 stringi_1.2.4 ## [9] rmarkdown_1.11 highr_0.7 knitr_1.21 string_1 .3.1 ## [13] digest_0.6.18 xfun_0.4 evaluate_0.12

参考文献

保罗·J·麦克默迪,苏珊·霍姆斯,2013。“Phyloseq:微生物组普查数据可重复交互分析和图形的R包。”《公共科学图书馆•综合》8 (4): e61217。https://doi.org/10.1371/journal.pone.0061217

哈德利出版社,维克汉姆,2009年。Ggplot2:数据分析的优雅图形.第1版施普林格。

于广创,David K. Smith,朱华晨,关毅,林赞玉。2017。“Ggtree:用于系统发育树及其协变量和其他相关数据的可视化和注释的R包。”生态学与进化论中的方法8(1):几个。https://doi.org/10.1111/2041-210X.12628