美文网首页科研信息学R_学习专题
使用ggtree对进化树进行分组美化

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

作者: 生信小王子 | 来源:发表于2019-12-16 15:58 被阅读0次

    最近,小编的老师想要在一张进化树上标出不同来源的材料,平时这种“累活”小编都是使用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

    相关文章

      网友评论

        本文标题:使用ggtree对进化树进行分组美化

        本文链接:https://www.haomeiwen.com/subject/owddnctx.html