生物信息学中,BLAST(英语:Basic Local Alignment Search Tool)它是一个用来比对生物序列的一级结构(如不同蛋白质的氨酸序列或不同基因的DNA序列)的算法。 已知一个包含若干序列的数据库,BLAST可以让研究者在其中寻找与其感兴趣的序列相同或类似的序列。 例如如果某种非人动物的一个以前未知的基因被发现,研究者一般会在人类基因组中做一个BLAST搜索来确认人类是否包含类似的基因(通过序列的相似性)。BLAST算法以及实现它的程序由美国国家生物技术信息中心(NCBI)的Eugene Myers(英语:Eugene Myers)、Stephen Altschul(英语:Stephen Altschul)、Warren Gish(英语:Warren Gish)、David J. Lipman(英语:David J. Lipman)及Webb Miller(英语:Webb Miller)博士开发的。
研究者利用BLAST来解决的其他问题有:
……等等。
BLAST是一个被广泛使用于分析生物信息的程序,因为它可以兼顾我们在做搜索时的速度以及搜索结果的精确度。因为当我们所要搜索的目标数据库非常庞大的时候,速度就变成一项很需要考量的因素。在像BLAST和FASTA(英语:FASTA)这些快速算法被开发之前,我们是使用动态规划算法来作数据库的序列搜索,这真的非常的耗时。BLAST使用启发式搜索来找出相关的序列,在速度上比完全只使用动态规划大约快上50倍左右,不过它不像动态规划能够保证搜索到的序列(Database sequence)和所要找的序列(Query sequence)之间的相关性,BLAST的工作就是尽可能找出数据库中和所要查询的序列相关的信息而已,精确度稍微低一点。此外,BLAST比FASTA更快速,因为BLAST只对比较少出现或是较重要的一些关键字作更进一步的分析,而FASTA是考虑所有共同出现在所要搜索的序列和目标序列的字。从下面介绍的算法可以更进一步的了解。
这边我们以蛋白质对蛋白质序列搜索所用的程序BLASTP之实做的步骤,来了解BLAST这程序的主要思想。
由NCBI管理的BLAST网站允许任何人使用浏览器来在包含大部分新测序的物种的不停更新的DNA或蛋白质数据库中进行相似性搜索。这个服务器包含很多程序,最重要的几个如下:
已知一个蛋白的氨酸序列,通过这个程序可以找出在用户选择的蛋白质数据库中与其最相似的序列。
已知一段已经转录的序列,借由这个程序对这段序列的6个ORF对上用户所选择的蛋白质数据库,比对最相似的序列。其功用可以找出在基因体DNA(genomic DNA)上翻译出蛋白质的序列。
已知一段蛋白质的氨酸序列,借由这个程序可将此序列,对用户所选择的已转录序列数据库(包含这个数据库的6个ORF),比对出最相似的序列。
已知一段已转录的序列,借由这个程序对这已知序列的6个ORF,对上用户所选择的已转录序列数据库(亦包含6个ORF),比对出最相似的序列,因为这个程序比对来源的6个ORF,与数据库的6个ORF,所以会执行相当久。
这个程序用来搜索蛋白质的"远亲".首先,一个用户提交的蛋白质序列的所有"近亲"的列表被建立起来,然后这些蛋白质被结合在一个作为对序列的某种平均的"特征序列"当中。再然后用这个特征序列在蛋白质数据库中进行搜索,就会找出更大的一组蛋白质的列表。这个蛋白质列表有一个不同的特征序列,这个序列被用来迭代地运行上述过程。
通过在搜索中包含相关的蛋白质,PSI-BLAST对于寻找已知蛋白进化上的"远亲"的灵敏度要比一般的blastp高很多。
Focuses search around pattern (motif)