欢迎光临散文网 会员登陆 & 注册

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

2023-02-03 09:28 作者:小云爱生信  | 我要投稿

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

原创 小果 生信果 

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

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


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


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

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


序列下载:

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


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


下面是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)

环形进化树


  • ##环状图

  • 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)))

  • # 图例位置、文字大小


长方形进化树


###长方形图
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包的参数了,好了今天小果的分享就到这里了,关注小果,下期会给大家带来给多生信入门实操知识。



推荐阅读


使用R语言完成序列比对及进化树美化的评论 (共 条)

分享到微博请遵守国家法律