多序列比对Multiple sequence alignment(MSA,多序列比对)大家一定不陌生了吧,多序列比对是一种用于比较多个序列间相似性和差异性的分析方法。
在Linux中,有一些常用的多序列比对工具可供选择,其中最常见的是ClustalW
、Muscle和MAFFT等,在Windows中一般使用Mega。这里在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)
环形进化树
##环状图
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)
多序列比对logo图
###加载R包,如果没有安装则自动安装
if(!require(ggmsa))install.packages("ggmsa")
####读取数据:
fai<-"t.fa"
###画图并保存图片,如图不清晰或字体重叠,需要调整长宽,可输入序列比对数据
pdf(file = "aligned_fasta.pdf",width = 30,height = 3)
ggmsa(fai,char_width = 0.5, seq_name = TRUE)+
geom_seqlogo() + geom_msaBar()
dev.off()