跳到主要内容

BLAST+:体系结构和应用程序

摘要

背景

序列相似性搜索是一项非常重要的生物信息学任务。虽然基本局部对齐搜索工具(BLAST)通过使用启发式优于精确方法,但当前BLAST软件的速度对于非常长的查询或数据库序列来说是次优的。当前命令行应用程序的用户界面也存在一些缺陷。

结果

我们描述了重写后的BLAST软件的特性和改进,并介绍了新的命令行应用程序。长查询序列被分解成块进行处理,在某些情况下会大大缩短运行时间。对于长数据库序列,可以只检索序列的相关部分,从而减少针对重叠群或染色体数据库搜索短查询的CPU时间和内存使用。程序现在可以从BLAST数据库检索数据库序列的屏蔽信息。新的模块化软件库现在可以从任意数据源访问主题序列数据。我们引入了几个新功能,包括允许用户保存和重用其喜爱的选项集的策略文件。战略文件可上传至NCBI BLAST网站并从该网站下载。

结论

与当前的BLAST工具相比,新的BLAST命令行应用程序在长查询和染色体长度数据库序列方面表现出了显著的速度改进。我们还改进了命令行应用程序的用户界面。

背景

基本局部对齐搜索工具(BLAST)[1,2]是一个序列相似性搜索程序,可用于快速搜索序列数据库以查找与查询序列的匹配项。BLAST的几个变体用于将所有核苷酸或蛋白质查询组合与核苷酸或蛋白质数据库进行比较。除了执行校准外,BLAST还提供了一个“期望”值,即关于每个校准重要性的统计信息。

BLAST是一种比较流行的生物信息学工具。研究人员使用命令行应用程序在本地执行搜索,通常搜索自定义数据库并批量执行搜索,可能会将搜索分布在自己的计算机集群上。当前的BLAST命令行应用程序(即blastall和blastpgp)于1997年末向公众开放。它们是NCBI C工具包的一部分[]和在当前包括Linux、各种UNIX(包括Mac OS X)和Microsoft Windows的许多平台上都受支持。

1997年最初的BLAST应用程序缺乏许多目前被视为理所当然的功能。在首次公开发布后的三年内,BLAST进行了修改,以处理超过20亿个字母的数据库,限制通过GenInfo标识符(GI)列表进行搜索,并同时搜索多个数据库。PHI-BLAST公司[4],英帕拉[5]、和基于合成的统计信息[6]也在这段时间内推出,随后推出了MegaBLAST[7]以及查询串联的概念(即对数据库进行一次扫描以进行多次查询)。康柏计算机公司的Chris Joerg在1999年建议提高性能。2002年,苹果公司的一个小组建议了其他增强功能[8]. 这些功能和其他功能对BLAST用户来说非常重要,但不断添加不可预见的修改使得BLAST代码很脆弱,很难维护。

许多哺乳动物的基因组包含大量的穿插重复序列,其中38.5%的小鼠基因组和46%的人类基因组被报告为穿插重复[9]. 传统上,在独立BLAST中屏蔽分散重复的唯一支持方法是执行单独的工具(例如RepeatMasker[10])在查询中,生成一个FASTA文件,其中包含以小写字母表示的屏蔽区域,并让BLAST将小写字母视为屏蔽查询序列。这需要在BLAST搜索之前对每个查询进行单独的处理。

NCBI最近重新设计了BLAST网站[11]提高可用性[12],这有助于确定独立的BLAST命令行应用程序中也可能出现的问题。不幸的是,这些更改使得很难将独立搜索中使用的参数与NCBI网站上的默认参数进行匹配。

完整基因组的出现导致了更长的查询和主题序列,导致了当前框架无法应对的新挑战。与此同时,通用计算机内存的增加使得相似性搜索的其他方法可行。BLAT(爆炸)[13]使用存储在内存中的索引。Cameron和合作者设计了BLAST初始单词查找模块的“缓存意识”实现[14]. 本节中列出的问题以及NCBI新C++工具包的启动[15]促使我们重写BLAST代码并发布一组全新的命令行应用程序。在这里,我们报告了新BLAST代码的设计、由此产生的改进以及一组新的BLAST命令行应用程序。

在本文中,搜索类型由全部大写字母中的一两个单词描述。例如,BLASTX搜索将核苷酸查询转换为六个帧,并将其与蛋白质数据库进行比较。

实施

本节首先报告新软件的总体设计,然后讨论BLAST的几个增强功能。

总体设计

在新BLAST代码的设计中,两个标准是最重要的:1)代码结构应足够模块化,以便于修改;和2.)相同的BLAST代码应该嵌入到至少两个不同的主机工具包中。这将允许新的NCBI C++工具包和旧的NCBIC工具包使用相同的BLAST源代码。

在较高层次上,BLAST过程可以分解为三个模块(图1). “设置”模块设置搜索。“扫描”模块扫描每个主题序列中的单词匹配并扩展它们。“trace-back”模块通过插入和删除来生成全间隙对齐。

图1
图1

BLAST搜索示意图第一阶段是“设置”。查询被读取,低复杂性或其他过滤可能应用于查询,并构建“查找”表。下一阶段是“扫描”。每个主题序列都会扫描与查找表中匹配的单词(“命中”)。这些点击被进一步处理,通过无间隙排列和有间隙排列延伸,并被评分。将保存重要的“初步”匹配以供进一步处理。BLAST算法的最后一个阶段称为“回溯”,用于查找扫描阶段保存的对齐的插入和删除位置。

设置阶段读取查询序列,对其应用低复杂性或其他过滤,并构建“查找”表(即完美散列)。查找表仅包含核苷酸搜索查询中的单词,如BLASTN或MEGABLAST。DISCONTIGUOUS MEGABLAST允许在初始种子中进行非连续匹配。BLASTP等蛋白质搜索允许“相邻”单词。根据评分矩阵和阈值判断,相邻单词与查询中的单词类似。

扫描阶段扫描数据库并执行扩展。每个主题序列都会被扫描,以查找与查找表中匹配的单词(“hits”)。这些撞击用于启动无间隙对准。超过阈值分数的无间隙对齐将启动间隙对齐,而超过另一阈值分数的间隙对齐将保存为“初步”匹配以供进一步处理。扫描阶段采用了一些优化。间隙对齐仅返回对齐的分数和范围。插入、删除和匹配字母的数量和位置不存储(无“回溯”),减少了CPU时间和内存需求。对核苷酸主题序列的搜索只考虑具有模糊碱基(例如N)的明确碱基(A、C、G、T)在编制BLAST数据库或受试者序列期间随机替换。四个字母的字母表允许将四个碱基封装成一个字节,主题序列一次扫描四个字母。最后,对于间隙对准,使用了不太敏感的启发式参数,在极少数情况下,可能无法找到间隙对准的全部范围。

BLAST搜索的最后阶段是回溯。针对扫描阶段发现的对齐,计算插入和删除。为核苷酸主题序列恢复模糊的碱基,并使用更敏感的启发式参数进行间隙对齐。基于成分的统计[6]也可用于BLASTP(蛋白质-蛋白质)和TBLASTN(蛋白质与翻译的核苷酸受试者序列进行比较)。

理想情况下,应该能够独立替换图中每个小矩形中描述的功能1(例如,“构建查找表”)。需要进行一些协调:例如,查找单词匹配时使用查找表,因此需要同时更改“构建查找表”和“查找单词匹配”。查找单词匹配是BLAST搜索中计算量最大的部分,因此实现应该尽可能快。为了解决这个问题,查找表实现的作者必须提供查找单词点击的扫描例程。其他模块可以独立更改。

选择ISO C99允许在C和C++环境中使用新的BLAST代码。主机工具包提供了一个软件层,允许BLAST与每个工具包的其余部分进行通信。这种设计需要在BLAST的算法部分和从数据库检索主题序列的模块之间进行清晰的分离。为了实现这一点,通过抽象数据类型(ADT)执行由BLAST代码核心处理的主题序列检索,该类型指定了一组数据值和允许的操作。实际的检索是通过在宿主工具包中实现ADT实现的。实现方式可以根据需要进行更改,并且不需要对BLAST算法代码本身进行更改。

BLAST所需的主题序列信息非常简单。它包括要搜索的序列总数、任何给定序列的长度以及检索实际序列的方法。计算期望值需要数据库的总长度。为了高效地实现某些功能,还需要数据库名称和最长主题序列的长度。为了满足上述要求,称为BlastSeqSrc的ADT[16],已实现。

数据库屏蔽

低复杂性区域和交错重复通常与许多序列相匹配。这些匹配通常不具有生物学意义,可能会导致虚假结果,并混淆BLAST使用的统计数据。BLAST提供了两种查询屏蔽模式以避免此类匹配。其中一个被称为“hard-masking”,在搜索的所有阶段用X或N替换查询的屏蔽部分。另一方面,“soft-masking”使查询的屏蔽部分无法用于查找初始单词点击,但一旦找到初始单词点击后,屏蔽部分可用于无间隙扩展和有间隙扩展。

也可以屏蔽BLAST数据库。屏蔽信息以一系列间隔存储,以便可以打开或关闭屏蔽。来自多个屏蔽算法的信息可以存储在同一个BLAST数据库中,并可以单独访问。目前,数据库屏蔽包括在扫描阶段跳过数据库的屏蔽部分,但仍然可以通过数据库的屏蔽区域进行扩展;因此,数据库屏蔽类似于对查询进行软屏蔽。

最小化内存和缓存占用

研究了减少具有长查询或主题序列的BLAST搜索的CPU时间和内存占用的修改。首先,对BLAST搜索的扫描阶段进行了优化。然后,描述了对回溯阶段的改进。

具有非常大查询的BLAST搜索是常规的,但一些数据结构会随着查询长度的增加而扩展。以下分析检查扫描阶段(图1)BLAST搜索。

在扫描阶段,经常访问两个大型结构。第一个是“查找表”,它将主题序列中的单词映射到查询中的位置。第二个是“diag数组”,它跟踪BLAST在任何给定对角线上已经扩展单词命中的程度;其大小随查询长度而变化。扫描阶段是大多数BLAST搜索时间的很大一部分,因此必须快速访问这些结构。当代CPU通常通过几个级别的缓存(称为“内存层次结构”)与主内存通信。例如,一级缓存最小,延迟最低;二级缓存较大,但速度较慢。在配备Intel Xeon CPU的机器上,一级缓存可能约为16 kB,二级缓存的大小可以在0.5-4 MB之间。如果CPU在高速缓存中找不到数据或指令,则必须从主内存中提取数据或指令;“缓存未命中”。通过使查找表和图表数组足够小以适合二级缓存,同时仍留有指令和其他数据的空间,可以提高性能。

为了具体起见,接下来两段的讨论仅限于BLASTX搜索,该搜索将核苷酸查询翻译为六帧(每条链上有三帧),并将其与蛋白质数据库进行比较。

查找表包含一个长数组(“主干”),每个单元格映射到一个唯一的单词。查找表将每个残数类型转换为1到24之间的数字,因此三个字母的单词映射为1到二十四之间的整数.对于三字母单词,为32768(32)的数组)单元格允许在扫描数据库中的单词匹配时快速计算主干的偏移量。主干的每个单元由四个整数组成。第一个整数指定该单词在查询中出现的次数;其他三个可以有两个功能之一。对于出现三次或更少的情况,这三个整数只是指定单词在查询中的位置。但是,如果出现的次数超过三次,则这些整数是另一个数组的索引,该数组包含单词在查询中的位置。主干占用的总内存为16字节×32768,或约524 kB。最后,有一个占4096字节(32768/8)的位向量。在包含条目的主干单元的位向量中设置相应的位。对于主干可能稀疏填充的简短查询,这允许快速检查单元格是否包含任何信息。

当用六个蛋白质序列表示时,BLASTX对N个核苷酸的查询会增加一倍。diag-array在查询中每个字母消耗一个四字节整数。对于长度为N的核苷酸查询,查找表主干和图表阵列所占用的总内存的估计值(以字节为单位)为:

对于N=50k的查询,这接近100万字节,已经是许多用于BLAST搜索的计算机中二级缓存的总大小。对这些结构的修改可能会允许更大的查询,但对于连接和染色体,这些结构仍会溢出二级缓存。为了克服这一点,在搜索的扫描阶段,查询被分割成更小的重叠部分。然后,BLAST合并结果,并在跟踪备份阶段对齐整个查询,获得与未拆分搜索相同的结果。拆分查询还有一个额外的优点;由于在扫描阶段使用的子查询具有有界长度,因此可以在查找表中使用较小的数据类型(具体来说,是两个字节而不是四个字节的整数)。这将上述等式中的第一项从528384字节减少到266240字节。

BLAST搜索的最后阶段是trace-back,它处理初步匹配,通过插入和删除生成对齐。此外,可以为启发式参数分配一个更敏感的值,解决核苷酸数据库序列中的歧义,并且在计算期望值时可以考虑受试者序列的组成。为了进行此计算,必须再次检索一些主题序列,但由于初步阶段可以找到任何对齐的大致范围,因此通常不需要整个序列。这对于在序列更长的数据库中搜索的简短查询最为重要。在适当的情况下,现在只检索部分受试者序列,性能结果显示在下面的“部分受试者序列检索”下。

结果和讨论

首先,我们介绍一组使用上述软件库构建的BLAST命令行应用程序。然后,我们给出了一个使用数据库屏蔽的示例,以及两个性能分析,证明了搜索时间的改进:使用很长的查询进行搜索,以及对染色体大小的数据库序列进行搜索。对于每个性能分析,我们都准备了一个基线应用程序,该应用程序将禁用正在测试的新功能。最后,我们讨论了从任意源检索主题序列的示例。

带有Intel Xeon 3.6 GHz CPU、16 kB一级缓存、1 MB二级缓存和8 GB RAM的SUSE Linux机器为此处描述的比较提供了数据。

BLAST+命令行应用程序

使用NCBI C++工具包开发了新的命令行应用程序,它们被称为BLAST+命令行应用(或BLAST+applications)。提供了关于不同命令行选项的大量文档[17],因此此处仅提供有关接口的一般注释。NCBI C++工具包参数解析器允许使用多字母命令行参数。根据查询和主题序列的分子类型,引入了新的BLAST+命令行应用程序。例如,有一个“blastx”应用程序翻译核苷酸查询并将其与蛋白质数据库进行比较,还有一个“brastn”应用程序将核苷酸查询与核苷酸数据库进行比较。命令行选项和帮助消息特定于每个应用程序。相反,当前的C工具包命令行应用程序(“blastall”)提供了有关核苷酸匹配和不匹配分数的使用说明,这些说明仅适用于BLASTN,即使用户希望执行BLASTX搜索也是如此。用户还需要针对单个命令行应用程序中的不同任务进行优化。例如,MEGABLAST将核苷酸查询与核苷酸数据库进行比较,但对密切相关的序列进行了优化(例如,搜索测序错误),使用了较大的字长和线性间隙惩罚。另一方面,BLASTN是传统的核苷酸搜索程序,默认情况下使用较小的单词大小和仿射间隙。“任务”的概念允许用户在一个应用程序中优化对不同场景的搜索。为blastn应用程序设置任务会更改许多命令行参数的默认值,例如单词大小,但也会更改插入、删除和不匹配的默认评分参数。这些值将更改为用于所选任务的典型值。对于MEGABLAST任务,核苷酸匹配和不匹配值为1和-2,因为这对应于95%的身份匹配。相反,对于BLASTN和DISCONTIGUOUS MEGABLAST,值为2和-3,因为它们对应85%的一致性[18].

BLAST的高级用户通常有一组精心编制的命令行选项,他们发现这些选项对他们的特定任务很有用。然而,由于缺乏保存这些内容的方法,他们必须为每次搜索编写脚本或简单地重新键入脚本。BLAST+应用程序可以将BLAST搜索的查询、数据库和命令行选项写入“策略”文件。然后,用户可以通过指定策略文件重新运行一组命令,但可以使用命令行指定新的查询和数据库。该文件目前被编写为ASN.1(抽象语法表示法,一种类似于XML的结构化语言),但将来可以添加XML选项。用户还可以将该文件上传到NCBI BLAST网站以填充BLAST搜索表单,或者下载在NCBI BLAST网站上执行搜索的策略文件。

BLAST+应用程序具有许多新功能。GI或登录可用作查询,实际序列自动从BLAST数据库或GenBank检索。应用程序可以向NCBI服务器发送搜索,也可以根据FASTA主题序列在本地搜索一组查询[17].

列出命令行选项及其类型和默认值的表作为附加文件提供1用于本文。

数据库屏蔽

将屏蔽信息应用于BLAST数据库而不是查询将改进BLAST用户的工作流。一种专用工具,如WindowMasker[19]或重复遮罩[10],可以在创建单个物种数据库时为其提供屏蔽信息,因此无需屏蔽每个查询。将屏蔽信息添加到BLAST数据库需要两步。首先生成一个包含XML或ASN.1格式的屏蔽间隔的文件,然后将信息添加到BLAST数据库。NCBI C++工具包提供了为seg生成此信息的工具[20],灰尘[21]和WindowMasker[19]. 用户还可以为NCBI C++工具包不支持的算法提供间隔;参见BLAST+手册[17]有关如何生成屏蔽数据库的更多信息。目前,数据库屏蔽仅在软屏蔽模式下可用。

为了测试数据库屏蔽的性能,对UniGene簇235935中的163个人类EST进行了人类基因组构建36.1参考组合的搜索[22]. RepeatMasker处理了EST查询,生成了FASTA文件,其中的重复以小写形式标识。RepeatMasker还处理了人类基因组FASTA文件,根据该数据生成重复序列的位置,然后将这些位置作为掩蔽信息添加到BLAST数据库。运行了两组搜索。一个使用小写查询屏蔽来过滤分散的重复;另一个使用数据库屏蔽来做同样的事情。保留分数为100或以上的对齐。1显示的结果表明,RepeatMasker的查询屏蔽差异导致了额外的匹配。例如,GI 14400848只有145个碱基长,根本没有被RepeatMasker掩盖,但它匹配的基因组部分被掩盖了。对于GI 13529935,最后78个碱基没有被屏蔽,但它匹配的基因组部分被RepeatMasker屏蔽。

表1查询与数据库屏蔽的比较。

目前,数据库屏蔽不支持搜索翻译的数据库序列(即tblastn和tblastx),但在不久的将来将支持它。

数据库屏蔽不是一个新概念。肯特[13]提到BLAT用户可能会发现重复屏蔽数据库很有用的情况。Morgulis等人[23]还允许用户对其数据库应用软件编程。在这两种情况下,打开或关闭掩蔽或切换掩蔽类型(例如,从RepeatMasker到WindowMasker)并不简单。这里介绍的实现允许这种灵活性。

查询拆分

将较长的查询分解为较小的片段进行处理可以显著缩短搜索时间。同时,将查询拆分为多个部分可以确保查询长度始终有界,从而允许在查找表中使用较小的数据类型。使用较小的数据类型和BLASTP搜索(蛋白质-蛋白质)显示,500个残基以下的序列没有改进,但随着序列长度增加到8000个残基,性能提高了2%。使用较小的数据类型从来不会使性能变差,因此它用于本节中描述的测试。

针对一组人类蛋白质对斑马鱼2号染色体[Genbank:NC_007113.2]的不同大小的区块进行BLAST搜索,以测试查询拆分的实现。已准备好不拆分查询的基线blastx应用程序。2显示了这些搜索的加速比,加速比定义为(T基线/T型爆炸) - 1. 查询拆分减少了长度超过20kbases的查询的搜索时间,并且随着查询长度的增加,这种改进还在继续。Cachegrind内存分析工具[24]通过查询拆分确认了较少的缓存未命中。给出了这些结果。数字2反映了预期值截止值1.0e-6。

图2
图2

加快BLASTX搜索不同大小的查询的速度(有查询拆分和无查询拆分)。针对一组人类蛋白质搜索不同大小的[Genbank:NC_007113.2]片段。以kbases为单位的查询长度位于x轴上,具有对数刻度。y轴上是分数加速,定义为(T基线/T型爆炸) - 1. 使用基线和blastx应用程序(针对每个数据点)进行了三次搜索,并使用了每个应用程序的最低时间。

图3
图3

使用和不使用查询拆分的BLASTX搜索的二级数据缓存未命中。缓存未命中是由Cachegrind测量的[24]并且只显示从缓存读取的未命中。在x轴上,以kbases为单位的查询长度不同。二级缓存未命中数显示在y轴上。最上面一行是没有查询拆分的基线应用程序,最下面一行是blastx应用程序。这些查询是[Genbank:NC_007113.2]针对图中使用的人类蛋白质集搜索的不同大小的片段2.

Cameron等人[14]将BLAST查找表替换为DFA(确定性有限自动机)以改进缓存行为。他们报告称,BLASTP(蛋白质-蛋白质)搜索的搜索时间减少了10-15%。大多数蛋白质都太短而无法分裂,因此在本文中没有明显的BLASTP改进。这项工作强调改善长时间核苷酸查询中常见的最坏情况行为。查询拆分方法并不排除使用DFA或其他优化来代替查找表。

部分主题序列检索

当在追踪备份阶段需要一小部分受试序列时,例如在针对染色体搜索EST时,受试序列的部分检索最为有效。准备了一个基线爆破应用程序,用于在追踪备份阶段检索整个受试者序列。根据参考组件构建36.1的屏蔽人类基因组数据库搜索UniGene簇235935中的163个人类EST[22]. 4使用标准blastn应用程序和基线应用程序显示搜索时间。使用字长24和数据库屏蔽(使用RepeatMasker)。与最多受试者序列相匹配的EST表现出最好的改善。图中最右边的三个数据点4用于GI 14429426、13529935和34478925(从左到右)。这三个EST分别匹配四个、六个和八个数据库序列。总的来说,158个序列只匹配一个受试者序列,两个匹配两个序列,四个、六个和八个序列各有一个匹配。正如预期的那样,根据EST数据库搜索的EST的性能没有提高(数据未显示)。

图4
图4

有无部分检索的MEGABLAST搜索时间散点图针对所有人类染色体搜索UniGene簇235935中的.163个人类EST[22]. x轴上是基准应用程序的时间;y轴上是新blastn应用的时间。改进最好的序列是最右边的序列,它们也匹配了最多的受试者序列。单词大小为24用于运行以及使用RepeatMasker进行数据库屏蔽。使用基线和blastn应用程序对每个数据点进行了三次搜索,并使用了每个应用程序的最低时间。

从任意源检索主题序列

抽象数据类型(ADT)提供要在新的BLAST代码中搜索的主题序列。这种抽象避免了将BLAST引擎耦合到特定的数据库格式。它允许通过SRA软件开发工具包在NCBI的“短读档案”(SRA)中搜索序列[25]. 可从BLAST网站访问SRA BLAST网页[11]也创建了。

未来发展

未来的发展包括增加对数据库的硬屏蔽支持,以及为具有翻译数据库序列(tblastn和tblastx)的程序提供数据库屏蔽。此时,只有BLAST搜索的扫描阶段是多线程的;我们还计划使回溯阶段多线程化。

结论

我们报道了一个新的BLAST模块化软件库。该设计允许添加大大提高性能的功能,例如查询拆分和主题序列的部分检索。它还允许用另一种设计替换查找表,以便可以轻松添加新的实现。MEGABLAST的索引版本[23]是使用这些库实现的。新库还支持从任意数据源检索主题序列的框架。该框架是一种抽象数据类型(ADT),允许使用不同的模块读取NCBI C++和C工具包中的BLAST数据库。可以使用此ADT编写一个新模块来向BLAST引擎提供主题序列[16]不修改BLAST算法代码。编写了一个ADT实现来支持NCBI中SRA序列的生产搜索。

我们还描述了一组新的BLAST命令行应用程序。这些应用程序有一个新的、更具逻辑性的组织,将类似类型的搜索组合在一个应用程序中。任务的概念允许用户为给定任务指定最佳参数集。还引入了策略文件,允许用户记录搜索参数,以便以后以独立模式或在NCBI网站上重新运行。

可用性和要求

BLAST是公共域软件[26]. BLAST的最新版本可以从ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/最新。该软件使用C和C++编程语言实现,并在Microsoft Windows、Linux和Mac OS X下进行了测试。非学术人员使用该软件没有任何限制。用于测试的查询文件和BLAST数据库位于ftp://ftp.ncbi.nih.gov/blast/demo/bmc文件.

工具书类

  1. Altschul S、Gish W、Miller W、Myers E、Lipman D:基本局部对齐搜索工具。分子生物学杂志1990, 215(3):403–410.

    第条 中国科学院 公共医学 谷歌学者 

  2. Altschul S、Madden T、Schäffer A、Zhang J、ZhangZ、Miller W、Lipman D:缺口BLAST和PSI-BLAST:新一代蛋白质数据库搜索程序。核酸研究1997年,25(17):3389–3402。10.1093/nar/25.17.3389

    第条 公共医学中心 中国科学院 公共医学 谷歌学者 

  3. NCBI C工具包[http://www.ncbi.nlm.nih.gov/IEB/ToolBox/SDKDOCS/INDEX.HTML]

  4. Zhang Z,Schäffer A,Miller W,Madden T,Lipman D,Koonin E,Altschul S:使用模式作为种子进行蛋白质序列相似性搜索。核酸研究1998, 26(17):3986–3990. 10.1093/nar/26.17.3986

    第条 公共医学中心 中国科学院 公共医学 谷歌学者 

  5. Schäffer A、Wolf Y、Ponting C、Koonin E、Aravind L、Altschul S:IMPALA:根据PSI-BLAST构建的位置特异性得分矩阵集合匹配蛋白质序列。生物信息学1999, 15(12):1000–1011. 10.1093/生物信息学/15.12.1000

    第条 公共医学 谷歌学者 

  6. Schäffer A、Aravind L、Madden T、Shavirin S、Spouge J、Wolf Y、Koonin E、Altschul S:通过基于成分的统计和其他改进提高PSI-BLAST蛋白质数据库搜索的准确性。核酸研究2001, 29(14):2994–3005. 10.1093/nar/29.14.1994

    第条 公共医学中心 公共医学 谷歌学者 

  7. Zhang Z,Schwartz S,Wagner L,Miller W:DNA序列比对的贪婪算法。计算机生物学杂志7(1–2):203–214. 10.1089/10665270050081478

  8. A/G爆破[http://www.apple.com/downloads/macosx/math_science/agblast.html]

  9. Waterston R、Lindblad-Toh K、Birney E、Rogers J、Abril J、Agarwal P、Agarwarla R、Ainscow R、Alexandersson M、An P、,.:小鼠基因组的初始测序和比较分析。性质2002, 420(6915):520–562. 10.1038/性质01262

    第条 中国科学院 公共医学 谷歌学者 

  10. 重复掩码网站[http://www.repeatmasker.org/]

  11. NCBI BLAST网站[http://blast.ncbi.nlm.nih.gov/blast.cgi]

  12. Johnson M、Zaretskaya I、Raytselis Y、Merezhuk Y、McGinnis S、Madden T:NCBI BLAST:更好的网络界面。核酸研究2008年,36(Web服务器问题):W5–9。10.1093/nar/gkn201号

    第条 公共医学中心 中国科学院 公共医学 谷歌学者 

  13. Kent W:BLAT——类似BLAST的对齐工具。基因组研究2002年,12(4):656–664。

    第条 公共医学中心 中国科学院 公共医学 谷歌学者 

  14. Cameron M,Williams H,Cannane A:一种确定性有限自动机,用于BLAST中更快的蛋白质命中检测。计算机生物学杂志2006, 13(4):965–978. 10.1089/cmb.2006.13.965

    第条 中国科学院 公共医学 谷歌学者 

  15. NCBI C++工具包文档[http://www.ncbi.nlm.nih.gov/br.fcgi?book=toolkit网站]

  16. 实施BlastSeqSrc[http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/_impl_blast_seqsrc_howto.html]

  17. BLAST+命令行应用程序用户手册[http://www.ncbi.nlm.nih.gov/br.fcgi?book=helpblast]

  18. States DJ,Gish W,Altschul SF:使用特定应用评分矩阵提高核酸数据库搜索的灵敏度。方法:酶学方法指南1991, 3: 66–70. 10.1016/S1046-2023(05)80165-3

    第条 中国科学院 谷歌学者 

  19. Morgulis A,Gertz E,Schäffer A,Agarwala R:WindowMasker:基于窗口的基因组测序屏蔽器。生物信息学2006, 22(2):134–141. 10.1093/生物信息学/bti774

    第条 中国科学院 公共医学 谷歌学者 

  20. Wootton JC,Federhen S:序列数据库中成分偏倚区域的分析。高分子序列分析的计算机方法1996, 266: 554–571. 全文(_T)

    第条 中国科学院 谷歌学者 

  21. Morgulis A、Gertz E、Schäffer A、Agarwala R:一种快速对称的DUST实现,用于屏蔽低复杂性DNA序列。计算机生物学杂志2006, 13(5):1028–1040. 10.1089/cmb.2006.13.1028

    第条 中国科学院 公共医学 谷歌学者 

  22. 人类基因组构建参考组件36.1[http://www.ncbi.nlm.nih.gov/genemo/guide/human/release_notes.html#b36]

  23. Morgulis A、Coulouris G、Raytselis Y、Madden T、Agarwala R、Schäffer A:生产MegaBLAST搜索的数据库索引。生物信息学2008, 24(16):1757–1764. 10.1093/生物信息学/btn322

    第条 公共医学中心 中国科学院 公共医学 谷歌学者 

  24. 卡切格林[http://valgrind.org/docs/manual/cg-manual.html]

  25. NCBI SRA软件开发工具包[http://www.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?cmd=show&f=software&m=software]

  26. NCBI的公共域通知[http://www.ncbi.nlm.nih.gov/书架/br.fcgi?book=toolkit&part=toolkit.fm#A3]

下载参考资料

致谢

许多人对这个项目作出了贡献。Richa Agarwala、Alejandro Schaffer和Mike DiCuccio提供了想法和反馈。Mike Gertz、Aleksandr Morgulis和Ilya Dondoshansky贡献了BLAST核心中使用的一些代码。Denis Vakatov、Aaron Ucko和NCBI C++工具包小组的其他成员提供了帮助,还提供了用于构建BLAST+的C++工具包。Eugene Yaschenko、Kurt Rodarmer和Ty Roach在使用NCBI SRA软件开发工具包方面提供了帮助。大卫·利普曼(David Lipman)和吉姆·奥斯特尔(Jim Ostell)最初建议需要重写BLAST版本,并提供了鼓励和反馈。格雷格·博拉廷(Greg Boratyn)、莫琳·麦登(Maureen Madden)和约翰·斯波格(John Spouge)阅读了手稿,并提出了有益的建议。

这项研究得到了美国国立卫生研究院国家医学图书馆校内研究项目的支持。国家卫生研究院提供资金支付本文的开放获取出版费用。

作者信息

作者和附属机构

作者

通讯作者

与的通信托马斯·马登.

其他信息

作者的贡献

所有作者都参与了软件的设计和编码。TLM起草了手稿,其他作者提供了反馈。所有作者阅读并批准了手稿的最终版本。

电子辅助材料

12859_2009_3151_MOESM1_ESM。PDF格式

附加文件1:八个表列出了命令行应用程序选项及其类型、默认值和简短说明。第一个表包含搜索应用程序blastn、blastp、blastx、tblastn和tblastx通用的信息。接下来的五个表描述了这些应用程序的选项。最后两个表列出了makeblastdb(用于构建blast数据库)和blastdbcmd(用于读取数据库)的选项。(PDF 370 KB)

作者提交的原始图像文件

权利和权限

开放式访问本文经BioMed Central Ltd.许可发布。这是一篇开放存取文章,根据知识共享署名许可条款分发(https://creativecommons.org/licenses/by/2.0),允许在任何媒体上不受限制地使用、分发和复制,前提是正确引用了原作。

转载和许可

关于本文

引用这篇文章

卡马乔,C.,库卢里斯,G.,阿瓦吉安,V。等。BLAST+:架构和应用程序。BMC生物信息学 10, 421 (2009). https://doi.org/10.1186/1471-2105-10-421

下载引文

  • 收到以下为:

  • 已接受以下为:

  • 出版以下为:

  • 内政部以下为:https://doi.org/10.1186/1471-2105-10-421

关键词