查看原文
其他

用ggtree重现Figtree的示例进化树

2017-08-18 Y叔 biobabble

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.


赞赏

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存