注释演化支
ggtree(Yu et al. 2017)实现了geom_cladelabel
层注释一个选择的支与条指示支与相应的标签。
的geom_cladelabel
层接受一个选定的内部节点编号。内部节点编号请参见树的操作装饰图案。
set.seed(2015-12-21)树< -rtree(30.)p < - - - - - -ggtree(树)+xlim(NA,6)pgydF4y2Ba+geom_cladelabel(节点=45,标签=“测试标签”)+geom_cladelabel(节点=34,标签=“另一个进化枝”)
用户可自行设置参数,align = TRUE
,以对齐clade标签,并使用参数,抵消
,调整位置。
pgydF4y2Ba+geom_cladelabel(节点=45,标签=“测试标签”,对齐=真正的,抵消=.5)+geom_cladelabel(节点=34,标签=“另一个进化枝”,对齐=真正的,抵消=.5)
用户可以通过该参数改变支链标签的颜色颜色
.
pgydF4y2Ba+geom_cladelabel(节点=45,标签=“测试标签”,对齐=T,颜色=“红色”)+geom_cladelabel(节点=34,标签=“另一个进化枝”,对齐=T,颜色=“蓝”)
用户可以更改角
支标签文本和文本到条的相对位置offset.text
.
pgydF4y2Ba+geom_cladelabel(节点=45,标签=“测试标签”,对齐=T,角=270,hjust =“中心”,offset.text =.5)+geom_cladelabel(节点=34,标签=“另一个进化枝”,对齐=T,角=45)
条形图和文本的大小可以通过参数来改变barsize
而且字形大小
分别。
pgydF4y2Ba+geom_cladelabel(节点=45,标签=“测试标签”,对齐=T,角=270,hjust =“中心”,offset.text =.5,barsize =1.5)+geom_cladelabel(节点=34,标签=“另一个进化枝”,对齐=T,角=45,字形大小=8)
用户还可以使用geom_label
标记文本。
注释未根树的分支
ggtree提供了geom_clade2
用于标记未根布局树的枝。
pg < -ggtree(树,布局=“日光”)pg+geom_cladelabel2(节点=45,标签=“测试标签”,角=10)+geom_cladelabel2(节点=34,标签=“另一个进化枝”,角=305)
标记相关类群(单系、多系或副系)
geom_cladelabel
是为标记单系(分支)而设计的,而有相关的分类群不形成一个分支。ggtree
提供了geom_strip
若要添加条/条以指示与可选标签的关联(请参阅这个问题).
nwk < -执行(“extdata”,“sample.nwk”,包=“treeio”)树< -read.tree(nwk)ggtree(树)+geom_tiplab()+geom_strip(5,7,barsize =2,颜色=“红色”)+geom_strip(6,12,barsize =2,颜色=“蓝”)
强调演化支
ggtree
实现了geom_hilight
层,它接受一个内部节点号,并添加一个矩形层来突出显示所选的分支。
突出显示所选支的另一种方法是使用不同的颜色和/或线条类型设置支,如树的操作装饰图案。
强调平衡
除了geom_hilight
,ggtree
还实现了geom_balance
用于突出显示给定内部节点的相邻子分支。
ggtree(树)+geom_balance(节点=16,填补=“钢蓝色的”,颜色=“白色”,α=0.6,延长=1)+geom_balance(节点=19,填补=暗绿色的,颜色=“白色”,α=0.6,延长=1)
分类单元的连接
一些进化事件(如重组、水平基因转移)可以用简单的树来建模。ggtree
提供了geom_taxalink
允许在树中的任意两个节点之间绘制直线或曲线的层,允许它通过连接分类单元来表示进化事件。
ggtree(树)+geom_tiplab()+geom_taxalink(“一个”,“E”)+geom_taxalink(“F”,“K”,颜色=“红色”,箭=网格::箭头(长度=网格::单位(0.02,“人大”)))
树注释与进化软件的输出
的treeio包实现了几个解析器函数来解析进化生物学中常用软件的输出。
这里,我们使用野兽(Bouckaert et al. 2014)以输出为例。详情请参阅进口国装饰图案。
文件< -执行(“extdata /野兽”,“beast_mcc.tree”,包=“treeio”)野兽< -read.beast(文件)ggtree(野兽,aes(颜色=率))+geom_range(范围=“length_0.95_HPD”,颜色=“红色”,α=.6,大小=2)+geom_nodelab(aes(x =分支,标签=轮(后,2)),vjust =-.5,大小=3.)+scale_color_continuous(低=“暗绿色”,高=“红色”)+主题(legend.position =c(。1,.8))
带有用户指定注释的树注释
可以在不同的层次上集成用户数据来注释系统发育树。的treeio计划实现了full_join
方法将树数据合并到系统发育树对象.的tidytree包支持使用潮流动词将树数据与系统发育联系起来.ggtree支持将外部数据映射到系统发育,以便动态地进行可视化和注释。
的% < + %
操作符
假设我们有以下与树相关联的数据,并希望将数据附加到树中。
nwk < -执行(“extdata”,“sample.nwk”,包=“treeio”)树< -read.tree(nwk)p < - - - - - -ggtree(树)dd < -data.frame(分类单元=字母(1:13),地方=c(代表(“广州”,5),代表(“香港”,3.),代表(“CZ”,4),NA),值=轮(腹肌(rnorm(13,意思是=70,sd =10)),数字=1))您不需要对数据进行排序##数据只是为了演示而重新洗牌dd < -dd (样本(1:13,13),)row.names(dd) < -零
分类单元 | 的地方 | 价值 |
---|---|---|
D | 广州 | 78.4 |
K | CZ | 72.7 |
C | 广州 | 83.0 |
H | 香港 | 102.6 |
E | 广州 | 75.3 |
米 | NA | 67.1 |
J | CZ | 70.4 |
一个 | 广州 | 51.5 |
B | 广州 | 56.6 |
l | CZ | 79.6 |
F | 香港 | 55.9 |
我 | CZ | 68.0 |
G | 香港 | 86.1 |
我们可以想象的地方列存储我们隔离的物种和位置价值列存储数值(如。引导值)。
我们已经用算子演示过了,% < %
,用新的树更新树视图。在这里,我们将介绍另一个算子,% < + %
,它将注释数据附加到树视图。输入数据的唯一要求是它的第一列应该与树的节点/提示标签匹配。
将注释数据附加到树之后% < + %
时,数据中的所有列都是可见的ggtree.作为一个例子,这里我们将上面的注释数据附加到树视图,pgydF4y2Ba
,并添加一个层,该层显示提示标签,并根据存储在其中的隔离站点对其进行着色的地方列。
p < - - - - - -pgydF4y2Ba% < + %dd+geom_tiplab(aes(颜色=的地方)+geom_tippoint(aes(大小=值,形状=的地方,颜色=的地方),α=0.25)pgydF4y2Ba+主题(legend.position =“正确”)
一旦数据被附加,它就会一直被附加。这样我们就可以添加其他层来方便地显示这些信息。
pgydF4y2Ba+geom_text(aes(颜色=的地方,标签=的地方),hjust =1,vjust =-0.4,大小=3.)+geom_text(aes(颜色=的地方,标签=值),hjust =1,vjust =1.4,大小=3.)
可视化树与相关的矩阵
的gheatmap
设计了用相关矩阵热图可视化系统发育树的功能。
在下面的例子中,我们可视化了H3流感病毒及其相关基因型的树。
beast_file < -执行(“例子/ MCC_FluA_H3.tree”,包=“ggtree”)beast_tree < -read.beast(beast_file)genotype_file < -执行(“例子/ Genotype.txt”,包=“ggtree”)基因型< -read.table(genotype_file9月="\ t",stringsAsFactor =F)colnames(基因型)< -子("\ \美元。”,"",colnames(基因型)p < - - - - - -ggtree(beast_treemrsd =“2013-01-01”)+geom_treescale(x =2008,y =1,抵消=2)p < - - - - - -pgydF4y2Ba+geom_tiplab(大小=2)gheatmap(p,基因型,抵消=5,宽度=0.5,font.size =3.,colnames_angle =-45,hjust =0)+scale_fill_manual(打破了=c(“HuH3N2”,“pdm”,“三角”),值=c(“钢蓝色的”,“耐火砖”,“暗绿色”))
的宽度参数用于控制热图的宽度。它支持另一个参数抵消用于控制树和热图之间的距离,例如为尖端标签分配空间。
对于时间尺度的树,就像在这个例子中,它更常用x
轴theme_tree2
.但有了这个解决方案,热图只是另一层,将改变x
轴。为了克服这个问题,我们实施了scale_x_ggtree
使x轴设置更合理。
p < - - - - - -ggtree(beast_treemrsd =“2013-01-01”)+geom_tiplab(大小=2,对齐=真正的,线宽=.5)+theme_tree2()页< -(p+scale_y_continuous(扩大=c(0,0.3)))% > %gheatmap(基因型,抵消=8,宽度=0.6,colnames =假)% > %scale_x_ggtree()页+主题(legend.position =“正确”)
可视化树与多个序列对齐
与msaplot
功能,用户可以通过系统发育树可视化多个序列比对,如下图所示:
特定切片的对齐也可以通过特定的方式显示窗口参数。
用相关数据绘制树
为了将系统发育树与用户数据产生的不同类型的图相关联,ggtree
提供了facet_plot
函数,它接受一个输入data.frame
和一个几何学
函数绘制输入数据。数据将显示在图的另一个面板中。
tr < -rtree(30.)d1 < -data.frame(id =tr$tip.label,val =rnorm(30.,sd =3.))p < - - - - - -ggtree(tr)p2 < -facet_plot(p。面板=“点”,data =d1,几何学=geom_point,aes(x =val),颜色=的耐火砖)d2 < -data.frame(id =tr$tip.label,值=腹肌(rnorm(30.,意思是=One hundred.,sd =50)))facet_plot(p2,面板=“酒吧”,data =d2,几何学=geom_segment,aes(x =0,xend =值,y =y,yend =y)大小=3.,颜色=“钢蓝色的”)+theme_tree2()
参考文献
布克尔特,雷姆科,约瑟夫·赫立德,丹尼斯Kühnert,蒂姆·沃恩,吴杰希,谢东,马克·a·苏查德,安德鲁·兰姆波特,阿列克谢·j·德拉蒙德。2014。野兽2:贝叶斯进化分析软件平台PLoS计算生物学10 (4): e1003537。https://doi.org/10.1371/journal.pcbi.1003537.
于广创,David K. Smith,朱华晨,关毅,林赞玉。2017。“Ggtree:用于系统发育树及其协变量和其他相关数据的可视化和注释的R包。”生态学与进化论中的方法8(1):几个。https://doi.org/10.1111/2041-210X.12628.