MegaBlast—更快得定位目标序列

introduction

序列比对是生物信息中永不过时的一个话题,是任何想要入行的人都必须掌握的一项技能。把一段序列定位到一个基因组上,找到它的同源序列,更是其中的一个经典问题。本文的主要内容就是介绍如何使用MegaBlast更快地找出你想要的同源序列,更快地得到一段序列在基因组上的定位。
注:不会介绍基本的blast用法,只是介绍如何开启MegaBlast。

什么是MegaBlast

  • MegaBlast是经典比对软件Blast的一个子模块,在现版本的Blast+中隶属于blastn的一个子模块(task)。
  • blastn是用于核酸序列比对的一个模块,MegaBlast执行同样的功能,但是它可以跑得更快
  • 缺点是只能找出相似度比较高的序列,一般用于同一物种内部或者分歧不太远的物种之间。
  • 经过实际使用发现,MegaBlast对于相似度90%以上的序列是可以找到的,但是不能保证全部找到,而90%以下就几乎找不出来了。
MegaBlast—更快得定位目标序列_第1张图片
官方介绍

如何调用MegaBlast

对于linux本地版本:
很简单,只要在你原来的blastn脚本里面加上一个参数:

-task megablast

就可以了!

但是你的MegaBlast其实还可以更快!

MegaBlast使用的database依然是正常的,用makeblastdb建立的database文件,但是我们还可以对database再建立一个MegaBlast专用的index!方法如下:

makembindex -iformat blastdb -input Your_database_name

建立好索引之后,在你的blastn命令中添加:

-use_index true

然后你的MegaBlast就可以快地飞起!

Using an index can improve search times significantly under certain conditions. It is most beneficial when the queries are much shorter than the database and works best for queries under 1 Mbases long. The advantage comes from the fact that the whole database does not have to be scanned during the search.

当然也有些限制:

1.Index files are about four times larger than the blast databases. If an index does not fit into computer operating memory, then the advantage of using it is eliminated.
2.Word size must be set to 16 or more in order to use an indexed search.
3.Discontiguous search is not supported.

但总得来说,对于相似度高的序列,尤其是相似度95%以上的,用这个都不会有啥问题。

序列相似度不够高怎么办?

对于相似度较低的序列,同样有一种对应的比blastn更快的方法,那就是dc-megablast(Discontiguous-megablast)。它对于70%以上的比对差不多可以找到。
开启dc-megablast的方法也很简单(靠记忆写的,要是出现问题欢迎留言):

-task dc-megablast

但是! dc-megablast 不能使用MegaBlast专用的那个index,所以就不用再用makembindex来建立index了!

结语

根据实际需求合理使用MegaBlast可以有效提升效率。
如果你只是想快速地找到高相似度序列(而不是找到一大堆比较相似的序列),那么MegaBlast会是个比较好的选择。
对于相似度比较低的序列,可以使用dc-megablast。

有问题欢迎留言。

ps. 也欢迎打赏...........

你可能感兴趣的:(MegaBlast—更快得定位目标序列)