使用ggtree对进化树进行分组美化

最近,小编的老师想要在一张进化树上标出不同来源的材料,平时这种“累活”小编都是使用iTOL、evolview等工具进行手动美化的,但是这次进化树里的样本足足有800多个,想要清楚、准确的标完所有的颜色,势必要耗费大量的时间,在这危急关头,小编发现了传说中Y叔写的“ggtree"!拯救小编于水火之中!

ggtree可以像ggplot2一样,用图层化的语法绘制进化树,通过不同的图层组合即可绘制出更为复杂的进化树。

首先,我们要安装好“ggtree"。

source("https://bioconductor.org/biocLite.R")
biocLite("ggtree")

接着,我们需要准备好树文件和分组文件。

树文件就是我们通过Treebest、PAML、RAxML等工具获得的结果。

分组文件的格式如下:

准备好以后,我们就可以开始美化啦!

# 加载R包
library("ggtree")
# 读取树文件(ggtree针对不同工具生成的树文件有不同的函数进行读取,如没有对应的函数,可以使用通用的办法读取)
tree <- read.tree("file.tree")
# 读取分组信息
group_file <- read.table("group_file.txt",header = T,row.names = 1)
# 按类分组
groupInfo <- split(row.names(group_file), group_file$Group)
# 将分组信息添加到树中
tree <- groupOTU(tree, groupInfo)
# 绘制进化树
ggtree(tree, layout="fan", ladderize = FALSE, branch.length = "none",aes(color=group)) + geom_tiplab2(size=3) + theme(legend.position = "right")


美美的!分好组的进化树就画好啦!


当然,除了圆形进化树,我们还可以画各种形状的进化树,具体参数大家可以去ggtree的文档里寻找!

ggtree里还有各种函数去完成各种任务,剩下的就需要大家自己去探索啦!

另外:作者开通了知乎专栏 “小王子的生信笔记” ,欢迎大家关注!共同学习!共同进步!


参考资料:

https://www.bioconductor.org/packages/release/bioc/vignettes/ggtree/inst/doc/ggtree.html

https://guangchuangyu.github.io/cn/2016/03/ggtree-for-tree-visualization-annotation/

http://blog.sciencenet.cn/home.php?mod=space&uid=255662&do=blog&id=969228

https://shengxin.ren/article/190

http://blog.sina.com.cn/s/blog_83f77c940102vpyt.html


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,138评论 1 32
  • 参考文档:https://pan.baidu.com/s/1HaQRu8c8bNfKTSbxF5__Sw相同内容网...
    liboxiang阅读 472评论 0 1
  • 踏雪寻芳未见梅 茶花开放埋雪堆 南天竹籽红映雪 藤攀菇蹲古树肥 2018-12-30.2019-01-05
    微风LG阅读 291评论 2 12
  • 秋日朗朗秋气爽,秋风瑟瑟秋叶黄。 秋花脉脉争秋艳,秋色萧萧映秋江。 秋鸟翙翙乱秋霞,秋草萋萋染秋霜。 秋果累累秋收...
    周万亮阅读 277评论 0 1
  • 你思或不思 记忆时不时浮现 你笑也好哭也罢 脸上都会有呈现 你想与不想 时间总是在流淌 皱纹在你的不经意间刻下 爱...
    思念随风而去阅读 520评论 1 17