大数跨境
0
0

R语言学习指南(5) ggtree绘制进化树

R语言学习指南(5) ggtree绘制进化树 R语言数据分析指南
2020-12-22
0
导读:绘制进化树的方法有很多,入门的MEGA,iTOL,evolview等,但是没有一个如ggtree这般高效简单

绘制进化树的方法有很多,入门的MEGAiTOLevolview等,但是没有一个如ggtree这般高效简单,轻轻松松绘制高端进化树,废话不多说,直接看代码 关注公众号"R语言数据分析指南",后台回复"tree"获取实例文件及完整代码

mafft进行多序列比对

mafft --maxiterate 1000 --globalpair pip.fa > tree.fasta

fasttree构建系统发育树

# 核酸序列比对
fasttree -nt -gtr -gamma tree.fasta > tree.nwk 
#蛋白序列比对
fasttree tree.fasta > tree.nwk

ggtree构建系统发育树

rm(list = ls())
library(pacman)
pacman::p_load(ggplot2,ggstar,ggtreeExtra,ggtree,
               treeio,ggnewscale,ggsci); options(warn = -1)

tree <- read.newick("tree.nwk",node.label = "support")

node.label = "support"将node label解析为support value,另存为树注释数据

读入分组文件用于绘制条形图,并按分组添加颜色

group <- read.table("tree_group.txt",header = T,sep="\t")
group_file <- read.table("tree_group.txt",header = T,row.names = 1)
groupInfo <- split(row.names(group_file), group_file$Group)
tree <- groupOTU(tree, groupInfo)

绘制进化树主干

p <- ggtree(tree,branch.length = "none",layout = "circular",
       linetype=1,size=1,ladderize = F,aes(color=group))+
  #geom_text(aes(label=node), hjust=-3,size=1) +
#展示节点信息,并根据节点信息添加外圈分组
  scale_color_npg()+guides(color=FALSE)+guides(color=FALSE) 
geom_fruit(data=group, geom=geom_bar,
mapping=aes(y=Sample, x=Length,fill=Group),
orientation="y",stat="identity",color="white")+
  scale_fill_npg()+labs(fill = "")+new_scale_fill()

添加分组信息

p + geom_strip(53,116, label = "Group I",align = T,
  alpha=.8,family="Times",fontsize=4,offset = 3,
  color = "orange",offset.text = 2 ,hjust="center",
  barsize = 4,extend = 0.5)+
  geom_strip(35,52,label = "Group II",align = T, 
  alpha=.8,family="Times",offset = 3,
  color = "green",offset.text = 2 ,fontsize=4,hjust="center",
  barsize = 4,extend = 0.5,angle = 45)+
  geom_strip(20,34,label = "Group III",align = T, 
  alpha=.8,family="Times",offset = 3,color = "red",
  offset.text = 2 ,fontsize=4,hjust="center",
  barsize =4,extend = 0.5)+
  geom_strip(1,19,label ="Group IV",align = T, 
  alpha=.8,family="Times",offset = 3,color = "blue",
  offset.text = 2 ,fontsize=4,hjust="center",barsize = 4,
  extend = 0.5,angle=-60)+
  #geom_tiplab(hjust = -.5,size=3,fontface="plain")+
 #设置标签显示
  geom_point2(aes(subset=!isTip,fill=support),shape=21,size=2)+
  scale_fill_continuous(low='green', high='red')+
  labs(fill = "bootstrap")
library(ggpubr)
library(tidyverse)
tibble(函数= c("geom_strip""geom_tiplab()","geom_fruit()",
             "offset.text","extend","offset","hjust=center"),
         功能= c("根据节点添加外部条带,后跟节点位置信息"
               "设置标签显示","绘制条形","调整label位置",
               "调整条带之间间距","设置距离节点的位置","将lable居中放置")) %>%
  ggtexttable(rows = NULL, theme = ttheme("mBlue"))

参考:https://rdrr.io/bioc/ggtree/man/geom_strip.html
https://bioconductor.org/packages/devel/bioc/vignettes/ggtreeExtra/inst/doc/ggtreeExtra.html
http://yulab-smu.top/treedata-book/


【声明】内容源于网络
0
0
R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
内容 1180
粉丝 0
R语言数据分析指南 R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
总阅读531
粉丝0
内容1.2k