温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用R语言ggtree展示进化树

发布时间:2021-11-22 15:11:35 来源:亿速云 阅读:912 作者:柒染 栏目:大数据

今天就跟大家聊聊有关怎么使用R语言ggtree展示进化树,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

今天要模仿的图片来自于论文 Core gut microbial communities are maintained by beneficial interactions and strain variability in fish。期刊是 Nature microbiology

怎么使用R语言ggtree展示进化树  
image.png

今天重复的图片是Figure1中的聚类树图

怎么使用R语言ggtree展示进化树  
image.png
 论文中写道

Hierarchical clustering dendrogram with jackknife support (numbers on the branches; only values above 50 are shown in the tree).

所以论文中实际的数据做的是聚类分析,而并不是进化树。他这里做聚类分析也能够获得每个节点对应的支持率。这个如何实现我暂时还不知道。为了模仿这个图,下面的输入数据我直接使用进化树文件了,因为构建进化树的时候能够很方便的获得节点的支持率信息。

 首先准备构建进化树需要用到的fasta格式序列文件

这里用到的数据集来自 网址 https://www.kuleuven.be/aidslab/phylogenybook/Data_sets.html

怎么使用R语言ggtree展示进化树  
image.png

这本 The Phylogenetic Handbook second edition 不知道大家有没有电子版可以分享呀!

 首先是做多序列比对,这里我使用mafft
mafft --auto ggtree_practice.fasta > ggtree_practice_aligned.fasta
   构建进化树,我是用iqtree
iqtree -s ggtree_practice_aligned.fasta -bb 1000
 

得到树文件ggtree_practice_aligned.fasta.treefile

 

接下来是在R语言里的操作

 首先是准备一个分组的数据文件

数据总共三列

  • 第一列是 构建进化树用到的fasta文件的序列名,这里注意列明用label,不要用其他
  • 第二列是分组信息,用来填充不同的颜色
  • 第三列也是分组信息,用来映射形状

第二列和第三列的列名就是图例上想显示什么就用什么

怎么使用R语言ggtree展示进化树  
image.png
 加载需要用到的包
library(ggtree)
library(treeio)
library(tidytree)
 
  • treeio用来读入进化树
  • tidytree用来将分组信息整合给进化树
  • ggtree用来可视化展示进化树
 读入进化树和分组信息数据

tree<-read.newick("ggtree_practice_aligned.fasta.treefile",
                  node.label = "support")
d<-read.csv("ggtree_group_info.csv",header=T)
d
   将树文件和分组信息整合到一起
trs<-full_join(tree,d,by='label')
   去掉支持率小于50的信息
tree@data$support<-ifelse(tree@data$support<50,NA,tree@data$support)
   最后一步就是画图了
ggtree(trs,layout = "circular",branch.length = "none")+
  #geom_tiplab(offset = 0.01)+
  geom_tippoint(aes(shape=Diet,color=Gut.compartment),
                size=5)+
  scale_shape_manual(values = c(16,17,18,15))+
  geom_text2(aes(label=support,angle=angle),hjust=-0.2)+
  scale_color_manual(values = c("#800080","#ff8000","#008080"),
                     name="Gut_compartment")+
  guides(color=guide_legend(order = 1))
 
怎么使用R语言ggtree展示进化树看完上述内容,你们对怎么使用R语言ggtree展示进化树有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI