美文网首页构建系统发育树bioinformatics
跟着Nature学作图:R语言ggtree给进化树的节点添加饼状

跟着Nature学作图:R语言ggtree给进化树的节点添加饼状

作者: 小明的数据分析笔记本 | 来源:发表于2022-10-03 15:47 被阅读0次

    论文

    Galeaspid anatomy and the origin of vertebrate paired appendages

    https://www.nature.com/articles/s41586-022-04897-6

    s41586-022-04897-6.pdf

    最近朋友圈好多人都在转发这篇论文,我也找来看了看,论文整体的内容我看起来还是非常吃力的,但是论文中关于进化树的作图方法我可以写个教程分享给大家

    今天推文的内容重复一下论文中的Fig4a 进化树叠加图片并在节点上叠加饼状图

    image.png

    首先是进化树

    library(ggtree)
    library(scatterpie)
    
    
    tree<-read.tree("data/20220930/fig4a.nwk")
    
    ggtree(tree)+
      geom_tiplab()+
      xlim(NA,15)
    
    image.png

    叠加图片

    ggtree(tree)+
      geom_tiplab(aes(image=paste0("data/20220930/",label,".png")),
                  geom = "image",size=0.2,offset = 0.2)+
      xlim(NA,16)+
      geom_tiplab(offset = 4)
    
    image.png

    叠加饼状图

    ggtree(tree)+
      geom_nodelab(aes(label=node))+
      geom_tiplab(aes(label=node)) -> p
    
    library(tidyverse)
    
    
    
    list(ggplot2::ggplot_build(p)$data[[3]],
         ggplot2::ggplot_build(p)$data[[4]])%>% 
      bind_rows() %>% 
      select(y,x,node) %>% 
      arrange(node) %>% 
      write_csv("data/20220930/pie_df1.csv")
    
    pie.df<-read_csv("data/20220930/pie_df1.csv")
    
    pie.df
    
    ggtree(tree,size=1)+
      #geom_tiplab(offset=2)+
      geom_scatterpie(data=pie.df,
                      aes(x=x,y=y,group=node,
                          r=0.4),
                      cols = c("Absent","Present"))+
      scale_fill_manual(values = c("Absent"="white",
                                   "Present"="#55cc81"))+
      geom_tiplab(aes(image=paste0("data/20220930/",label,".png")),
                  geom = "image",size=0.2,offset = 0.4)+
      xlim(NA,16)+
      geom_tiplab(offset = 4)+
      theme(legend.position = c(0.2,0.8))+
      coord_fixed()
    
    
    image.png

    这里如何旋转每个饼状图暂时想不明白了

    ggtree里有一个nodepie的函数也可以试试添加饼状图

    示例数据和代码可以给推文点赞 点击在看 最后留言获取

    欢迎大家关注我的公众号

    小明的数据分析笔记本

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

    image.png

    相关文章

      网友评论

        本文标题:跟着Nature学作图:R语言ggtree给进化树的节点添加饼状

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