基因家族分析生信分析流程R

基于全基因组的基因家族分析(4):SlNRAMP家族基因进化树构

2019-07-17  本文已影响48人  lxmic
cherry tomato.jpg

继续之前还没有完成的内容。因为最近在学习Y叔的R包--ggtree,所以就顺便拿这个内容来进行展示,作为一个例子来记录。

1. ggtree安装

关于这个包,y叔已经写了相当详细的说明,有一个完整的电子书《Data Integration, Manipulation and Visualization of Phylogenetic Trees》。这个包是在Bioconductor上面,有非常详细的介绍,可以去查找相关的内容。

#安装相关的包,包括ggtree以及ggplot2
#对于R版本在3.6及以上的,需要使用BiocManager包来安装bioconductor上的包
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("ggtree")
#ggplot2安装
install.packages("ggplot2")
#载入两个包
library(ggplot2)
library(ggtree)

2. 读取及可视化树结构

关于用什么算法以及什么软件来构建你自己需要的树,完全看个人的需要,y叔在电子文档《Data Integration, Manipulation and Visualization of Phylogenetic Trees》中有很详细的介绍各种树以及各种算法,有兴趣了解一下(反正我是看不太懂)。我就用最简单,最常用的方法来获得进化树——MEGA软件,可以输出newick格式的树,非常常用的进化树文件(我们需要保存其bootstrap值以及branch.length值)。

# 读取newick树,在当前工作目录中的nramp.nwk文件,并赋值给tree
tree <- read.newick("nramp.nwk")
# 可视化树结构,这里用环形树来展示
p1 <- ggtree(tree, layout = "circular", branch.length = "none")
# 将进化树打印出来显示
print(p1)
# 如果要将branch.length展示,那么只需要删除branch.length = "none"
p2 <- ggtree(tree, layout="circular")
# 可以看到,目前的进化树还没有tiplab,因此我们需要添加lab,跟ggplot2一样,再添加一个图层,就可以实现。
p3 <- p1 + geom_tiplab2(color="seagreen", size = 3, hjust = -.2)+xlim(NA, 22)
print(p3)
# 此外,我们通常需要给树的某个node来添加背景色高亮显示,也只需要通过一个函数添加图层。一般首先我们要了解节点ID,要知道你需要高亮显示的节点。
#显示进化树的节点ID
p4 <- p3 + geom_text2(aes(label=node))
print(p4)
#为一部分树添加背景颜色,着重显示
p5 <- p3 + geom_hilight(node = 33, fill = "red", alpha = 0.6)
print(p5)
#打印所有图片,这里还需要安装一个cowplot包,用来排版的
install.packages("cowplot")
plot_grid(p1, p2, p3, p4 ,p5, ncol=3, labels=c("A","B", "C", "D", "E"))

p1,p2,p3,p4 and p5

进化树就构建完成,但是还是非常基础的功能,最近也还在摸索阶段,有什么进展会继续分享。

上一篇 下一篇

猜你喜欢

热点阅读