美文网首页R plotR语言初学画图
跟着Gut学画图:R语言ggtree包画弦图的简单小例子

跟着Gut学画图:R语言ggtree包画弦图的简单小例子

作者: 小明的数据分析笔记本 | 来源:发表于2021-08-07 19:06 被阅读0次

    今天的推文内容是模仿论文 Aberrant gut microbiota alters host metabolome and impacts renal failure in humans and rodents 中的Figure3A

    image.png image.png

    R语言里circlize这个包应该可以实现,最近在学习ggtreeExtra,对应的论文里有一个图

    image.png

    最内圈基本是一样的,实现这个内圈的函数是ggtree包的geom_taxalink()函数,这里我用4.0.3版本的R和2.4.1版本的ggtree会遇到报错 Error in numnotnull("fontsize") : object '.pt' not found,暂时不知道是什么原因,我安装了4.1.0版本的R和3.0.2版本的ggtree就没有这个报错

    下面介绍代码

    首先是自己准备一个newick格式的树文件
    image.png

    同一个组的数据用括号括起来,中间逗号分隔,不同组之间用逗号分隔,最后一个括号将所有内容括到一起,最后是一个分号

    画一个树形图展示一下

    library(ggtree)
    library(treeio)
    
    tree<-read.tree("example.txt")
    
    ggtree(tree,layout = "circular")+
      geom_tiplab()
    
    image.png

    接下来是一个分组文件用来给tip映射颜色

    image.png

    代码

    df1<-read.delim("tip_group.txt")
    head(df1)
    
    tree<-full_join(tree,df1,by="label")
    
    col<-c("#f04334","#99ca67","#994da5")
    
    ggtree(tree,layout = "circular")+
      geom_tiplab(aes(color=group))+
      scale_color_manual(values = col )
    
    image.png
    接下来是连线的数据
    image.png

    代码

    ggtree(tree,layout = "inward_circular",
           xlim = c(40,NA),
           alpha=0)+
      geom_tiplab(aes(color=group),show.legend=F)+
      scale_color_manual(values = col )+
      ggnewscale::new_scale_color()+
      geom_taxalink(data=df2,
                    mapping=aes(taxa1=taxa1,
                                taxa2=taxa2,
                                color=group1),
                    hratio=3)+
      scale_color_manual(values = c("#2398c5","#febf68"))
    

    最终结果

    image.png

    这里还用到了ggnewscale这个包,如果是第一次使用需要安装

    示例数据和代码放到了今天 次条推文的留言区 次条推文是一个广告

    欢迎大家关注我的公众号

    小明的数据分析笔记本

    小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

    相关文章

      网友评论

        本文标题:跟着Gut学画图:R语言ggtree包画弦图的简单小例子

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