天天看点

使用R语言完成序列比对及进化树美化

作者:云生信学生物信息学

尔云间 一个专门做科研的团队

原创 小果 生信果

使用R语言完成序列比对及进化树美化
使用R语言完成序列比对及进化树美化

系统发育树可以描述一组生物之间的系谱关系,如人和黑猩猩的亲缘关系最为接近,而与大猩猩则次之。

使用R语言完成序列比对及进化树美化

拿血红蛋白举例,人和黑猩猩是从大约700w年由同一祖先进化而来,它们的血红蛋白只有一个氨基酸的差异,和大猩猩的血红蛋白差异则较大。

香蕉。一种连动物都不是的生物,居然跟人类的基因有50%的相似性。

我们可以根据生物的基因序列构建,也可以根据蛋白质序列构建。如下图所示,一个有根的系统发育树代表了一种进化历史模型,该模型由树节点之间的祖先-后代关系以及“sister”或“cousin”有机体在不同相关性水平上的聚类所描述。在传染病研究中,系统发育树通常是根据病原体的基因或基因组序列构建的,以显示哪个病原体样本在遗传上更接近另一个样本,从而深入了解潜在的未观察到的流行病学联系和爆发的潜在来源。

使用R语言完成序列比对及进化树美化

下面小果带大家使用R语言完成序列比对和进化树的绘制:

序列下载:

打开NCBI ,选择Nucleotide数据库,输入Coronavirus ,回车,选择你需要的序列,选择send to进行下载,

保存成fasta格式,即以>开头的文件,

使用R语言完成序列比对及进化树美化
使用R语言完成序列比对及进化树美化

下面是R语言实操部分,小果只推荐跑10条左右的短序列,如果太多还是使用mega等软件比较好:

###BiocManager::install("msa")
require(msa)
mySequenceFile <- readAAStringSet(“sequence.txt”)


#多序列比对
myFirstAlignment <- msa(mySequenceFile)


head(mySequenceFile)


library(ggplot2)


require(seqinr)
myAlignment <- msaConvert(myFirstAlignment, type="seqinr::alignment")
d <- dist.alignment(myAlignment, "identity")


#构建NJ树
require(ape)
tree <- nj(d)


#画树并输出到PDF文件ggtree.pdf
require(ggtree)           
使用R语言完成序列比对及进化树美化

环形进化树

##环状图
p1<-ggtree(tree, layout='circular', ladderize=FALSE, size=0.8, branch.length="none",col="red")+
  geom_tiplab2(hjust=-0.3)+
  geom_tippoint(size=1.5,col="blue")+ 
  geom_nodepoint(color="black", alpha=1/4, size=2) +
  theme(legend.title=element_text(face="bold"), legend.position="bottom", legend.box="horizontal", legend.text=element_text(size=rel(0.5)))
# 图例位置、文字大小           
使用R语言完成序列比对及进化树美化

长方形进化树

###长方形图
p2<- ggtree(tree, layout='rectangular', size=0.8, col="deepskyblue3") +
  
  geom_tiplab(size=3, color="purple4", hjust=-0.05)+
  geom_tippoint(size=1.5, color="deepskyblue3")+
  geom_nodepoint(color="pink", alpha=1/4, size=5)+
  theme_tree2() 
ggsave(p1, file="tree_circular.pdf", width=9, height=9)
ggsave(p2, file="tree_rectangular.pdf", width=9, height=9)           

进化树的美化大家可以使用itol或者自己阅读ggtree包的参数了,好了今天小果的分享就到这里了,关注小果,下期会给大家带来给多生信入门实操知识。

推荐阅读

  • GEO数据库之GPL文件学习
  • 风险比看不懂?小果带你弄明白单因素COX回归结果
  • 你不知道的PCA及在R中的实现
  • LAASO的非癌症形态,LASSO的诊断分析
  • 一步到位?R代码构建列线图