其他
用ggtree重现Figtree的示例进化树
FigTree有一个好处是可以把可视化的设置保存在nexus文件里,这样当你再次打开FigTree保存的文件时,原来操作的可视化设定都还在。
它自带了几个数据,每个都是打开可以看到很漂亮的树,其中最吸引眼球的,就是下面流感的进化树。整颗树按照分化时间进行上色:
这个我们用ggtree来重新画,也很容易实现一样的效果。其实核心只有两行,那就是ggtree(x, aes(color=height)) + geom_tiplab(align=TRUE)。
scale_colour_gradientn用来设置颜色,scale_x_continuous用来设置x轴断点,而theme用来设置背景的网格线,这些只是后处理,让「重现」更完美而已。
require(ggtree)
x <- read.beast("/Applications/FigTree/influenza.tree")
ggtree(x, aes(color=height), right=TRUE, mrsd="2005-04-02") + theme_tree2() +
geom_tiplab(align=TRUE, linetype="dotted", size=1, linesize=.1) +
scale_colour_gradientn(colours = rainbow_hcl(100))
scale_x_continuous(breaks=c(1992, 1995, 1997, 2000, 2002, 2005),
minor_breaks=seq(1992, 2005, 1)) +
theme(panel.grid.major = element_line(color="black", size=.2),
panel.grid.minor = element_line(color="grey", size=.2),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank())
实际上ggtree(x, aes(color=height)) + geom_tiplab(align=TRUE)这样简单一句就可以画出来,并且全部元素都被上色。ggtree其实很简单,而且表达力很强。
上一篇文章《ggjoy facet with ggtree》,有读者反应想玩ggtree,但不知道怎么入门,只要你读了《使用ggplot2》这篇文章,都必须可以入门了。(小贴士:蓝色字点击可直达)
Citation
G Yu, DK Smith, H Zhu, Y Guan, TTY Lam. ggtree: an R package for visualization and annotation of phylogenetic trees with their covariates and other associated data. Methods in Ecology and Evolution. doi:10.1111/2041-210X.12628
.