前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跟着Nature Genetics学画图:R语言ggtree给进化树的枝分组映射颜色

跟着Nature Genetics学画图:R语言ggtree给进化树的枝分组映射颜色

作者头像
用户7010445
发布2021-07-12 15:42:17
3.4K1
发布2021-07-12 15:42:17
举报
文章被收录于专栏:小明的数据分析笔记本

今天推文重复的图来自于 论文 Whole-genome resequencing of 445 Lactuca accessions reveals the domestication history of cultivated lettuce

image.png

今天试着重复的图片对应着的是论文中的Figure1d

image.png

参考链接
  • https://guangchuangyu.github.io/2016/12/edge-coloring-with-user-data/
  • https://yulab-smu.top/treedata-book/chapter4.html

树文件对应的是论文中的source data fig1

这个树文件是excel存储,我们需要将其复制到文本文件中

分组文件对应的是source data fig1中的第五个excel表格

读取树文件
代码语言:javascript
复制
library(ggtree)
library(treeio)
tree<-read.newick("NG/tree-fig-d.txt")
读取分组文件
代码语言:javascript
复制
group_info<-read.csv("NG/label_group.txt",header=T,sep="\t")

表示分组的文件需要有一列的名称是label

代码语言:javascript
复制
colnames(group_info)<-c("label","Origin","Species")

将分组信息和树文件合并

代码语言:javascript
复制
tree1<-full_join(tree,group_info,by="label")

对进化树进行可视化展示

代码语言:javascript
复制
ggtree(tree1,aes(color=Species))

image.png

去掉枝长,开口朝下

代码语言:javascript
复制
ggtree(tree1,aes(color=Species),branch.length = "none")+
  layout_dendrogram()+
  theme(legend.position = "top")

image.png

自定义颜色

代码语言:javascript
复制
ggtree(tree1,aes(color=Species),branch.length = "none")+
  layout_dendrogram()+
  theme(legend.position = "top")+
  scale_color_manual(values = c("#4daf4a","#fdbf6f","#4dbbd5",
                                "#984ea3","#cc79a7","#3c5488",
                                "#8491b4","#91d1c2","#7e6148",
                                "black"))

image.png

这里遇到一个问题是自定义颜色之后有的枝就没有了

这里暂时没有想明白如何给NA映射颜色,我这里采用的办法是把NA替换成其他字符,比如我这里替换成WW

代码语言:javascript
复制
tree1@data$Species<-c(tree1@data$Species[1:440],
                      rep("WW",439))
ggtree(tree1,aes(color=Species),branch.length = "none")+
  layout_dendrogram()+
  theme(legend.position = "top")+
  scale_color_manual(values = c("#4daf4a","#fdbf6f","#4dbbd5",
                                "#984ea3","#cc79a7","#3c5488",
                                "#8491b4","#91d1c2","#7e6148",
                                "black"))

image.png

这样图例里就多了一个内容,出图以后再手动删掉吧

今天的内容就先到这里了

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考链接
  • 读取树文件
  • 读取分组文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档