查看原文
其他

可视化操作树的拓扑结构

2017-08-22 Y叔 biobabble

flip 这个函数是生信界业内有名的K2的feature request,它接收两个node number,并交换位置。这两个node number必须要有同一个Parent,不然就不可能随意变换位置,当然你可能会问,那为什么不直接接收它们parent的ID就好了,为什么要输入两个node number,因为ggtree支持polytomy呀。

require(ggtree) set.seed(2015-07-01) tr <- rtree(30) p <- ggtree(tr) + geom_text(aes(label=node)) gridExtra::grid.arrange(p, flip(p, 38, 33), ncol=2)

你可以放到管道里,不断变换,直到你需要的效果为止。

flip(p, 38, 33) %>% flip(53, 58) %>% flip(32, 51)


如果你只是想把某一个clade给翻转过来,不停地flip去达到这效果还是挺麻烦的,所以我提供了rotate函数,你给个node number,整个clade就给你翻转180度。

col = c("black", "firebrick", "steelblue")[groupClade(tr, c(33, 52))] gridExtra::grid.arrange(ggtree(tr, color=col),                        ggtree(tr, color=col) %>% rotate(33) %>% rotate(52),                        ncol=2)

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.


赞赏

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

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