编译:王采荷
关于进化树(
系统发育进化树,Phylogenetic tree
),一般也叫作系统进化树它的用途我这里就不在赘述了。因为远的不说,就拿离我们较近的新冠病毒来说,当然也得益于测序技术的飞速发展,我们可以在分离到病毒株后很快的就将病毒的序列测序,然后和已知序列进行比对,并构建进化树,比较新发现的病毒株与已有数据库的病毒库在进化上的相关性。
一、新冠病毒数据库及数据下载
我们来看看SARS-Cov-2数据库(国家生物信息中心,2019新型冠状病毒信息库),截止目前,我们发现该数据库已经收藏了64,789
条新冠病毒序列,点击后可根据个人喜好(国家和地区)下载,那么我是下载了截止当时时间点的全部序列。
二、MEGA X软件构建tree文件
序列分析的软件很多,这里我选用的是MEGA(Molecular Evolutionary Genetics Analysis)软件,关于该软件的用途网上资源很多,我就不多说了。
- 导入fasta序列文件
这里因为下载的全部病毒序列很大,运行需要很长时间,为了展示我只截取一小部分(
6条序列
)
- 序列比对
-
点击Alignment(序列比对)
-
采用ClustalW方法进行比对
-
Phylogeny Reconstruction进化树构建
-
导出tree文件
三、ggtree包构建系统进化树
虽然在mega软件里也能构建系统进化树,而且也可以对可视化图形的美观进行调整,本身亲测也能调的非常好看,但是我还是喜欢用R语言来进行可视化。得知Y叔(国内用R语言做可视化可以说是数一数二的,但要知道他是南方医科大学基础医学院的一名老师,膜拜)的ggtree包之后,我觉得我学习系统进化树构建及可视化方面找到了港湾。
- ggtree需从bioconductor处下载安装
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("ggtree")
- 读取tree文件并进行可视化
rm(list = ls())
library(ggtree)
setwd("C:\\Users\\jnzd_\\Desktop")
my_tree <- read.tree("test.nwk")
ggtree(my_tree, color="firebrick",size=2,linetype="dotted")
# displaying tree scale (evolution distance)
ggtree(my_tree) + geom_treescale() # 简单出图
ggtree(my_tree) + geom_treescale(fontsize=6, linesize=2, offset=1)
# Displaying nodes/tips and other attributions
p <- ggtree(my_tree) +
geom_nodepoint(color="#b5e521", alpha=1/2, size=6) + # node位置加上一个符号
geom_treescale(fontsize=4, linesize=2, offset=0.2) + # 树的标尺
geom_tiplab(size=5, color="purple") + # 外部节点标签,即基因或者样本信息
geom_text2(aes(subset=!isTip, label=node), hjust=-.3) + # 显示node值
geom_hilight(10, "steelblue") # 根据node值给特定分支进行高亮
参考
1.https://www.megasoftware.net/
2.https://zhuanlan.zhihu.com/p/140061893