序列相似性搜索和比对工具 BLAST
目录
简介
BLAST(Basic Local Alignment Search Tool)是由 NCBI 开发的基于局部比对策略的在线工具,用于在大型生物数据库中 (包括 NCBI 的 GenBank、RefSeq、Swiss-Prot等) 寻找和比对相似的DNA、RNA或蛋白质序列。
BLAST基本工作原理是:
- 查询序列: BLAST的第一步是获取用户提供的查询序列,这可以是蛋白质序列(用于BLASTp)或核酸序列(用于BLASTn、BLASTx等)。
- 构建字典: BLAST首先会将目标数据库中的序列构建成一个快速搜索的字典(索引)结构,以便加快搜索过程。
- 生成k-mer片段: 对于查询序列,BLAST会将其切割成多个重叠的、固定长度的k-mer片段。这些片段将用于与目标数据库中的序列进行比对。
- 初始匹配: BLAST从目标数据库中选取一个候选序列,并从该序列中提取与查询序列的k-mer片段匹配的区域。
- 扩展匹配: 如果找到了初始匹配,BLAST会尝试扩展这些初始匹配以寻找更长的、局部的相似区域。这是通过动态规划算法(如Smith-Waterman算法)来完成的。
- 评分和阈值: BLAST为每个匹配分配一个分数,分数表示相似性的程度。用户可以定义一个阈值,只有分数高于阈值的匹配才会被报告。
- 返回匹配: BLAST将找到的相似匹配返回给用户,通常以表格形式呈现,包括匹配的序列、分数、E值(期望值,表示随机得到该匹配的概率),以及其他信息。
综上,BLAST的工作原理的关键在于使用k-mer片段进行局部比对,这允许它高效地在大型数据库中查找相似性,而不需要比对整个查询序列。此外,BLAST允许用户调整参数以平衡搜索速度和精确性。
进入官网, 主页面显示如下几个主要工具:
-
BLASTn
: 用于比对核酸序列(DNA或RNA)与核酸数据库中的其他序列。 -
BLASTp
: 用于比对蛋白质序列与蛋白质数据库中的其他蛋白质序列。 -
BLASTx
: 用于比对核酸序列(通常是DNA)与蛋白质数据库中的蛋白质序列。它的目标是识别DNA序列中可能编码的蛋白质。 -
tBLASTn
: 用于比对蛋白质序列与核酸数据库中的转录本或基因组序列。它的应用场景通常是在已知蛋白质序列的情况下,寻找与之同源的核酸序列。 -
tBLASTx
: tBLASTx用于比对核酸序列与核酸数据库中的转录本或基因组序列,但在这种情况下,它会将查询序列和目标序列都翻译成蛋白质序列,然后进行比对。
还有一些其他功能模块:
得到目标序列的3个相似序列(Accession号分别为NC_002685.2、NC_020074.1和NC_004037.2),同一性百分比(序列相似程度)分别为73.05%、72.75%和73.76%:
E value 对序列比对可靠性的评价,表明在随机的情况下,其他序列与目标序列相似度要大于这条显示的序列的可能性,因此E value分值越低越好。
下面截图展示了比对结果概况(Graphic Summary),颜色表明目标序列与比对序列的相似程度,相似度从高到低排列分别为:红、紫、绿、蓝、黑,红色区域越多则表示有较好的比对结果:
下面截图展示了具体比对结果(Alignments),Expect、Identities、Gaps是评价BLAST结果的标准。Expect 越接近零,匹配结果越好;Identities 匹配上的碱基数占总序列长的百分数:
点击右上角“Download”,选择自己所需的格式,即完成整个BLAST过程:
命令行工具
除了在线网页端,NCBI 还提供了一套名为 BLAST+ 的命令行工具来运行 BLAST。这允许用户在自己的服务器上针对专有序列数据执行 BLAST 搜索。
Step 1: 按顺序在 Linux shell 中执行下面命令可将 BLAST 安装在本地中:
wget -c https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.14.1+-x64-linux.tar.gz
tar -xzvf ncbi-blast-2.14.1+-x64-linux.tar.gz
mv ncbi-blast-2.14.1+ blast+
export PATH=/blast+/bin:$PATH
source ~/.bashrc
Step 2: 可以利用自己的专有序列数据库,需要建立检索库:
makeblastdb -in Virus_2020_RefSeq_DB.fasta -parse_seqids -hash_index -dbtype nucl
-dbtype 后接所格式化的序列的类型,核酸用nucl,蛋白质用prot。
运行完上面命令可生成下面文件:
也可以利用BLAST database
Step 3: BLASTn序列比对:
blastn -query BLAST_test.fasta -out BLAST_test.blast -db Virus_2020_RefSeq_DB.fasta
寻求帮助:
blastn -help
参考
- Camacho C, Coulouris G, Avagyan V, et al. BLAST+: architecture and applications. BMC Bioinformatics. 2009;10:421. Published 2009 Dec 15. doi:10.1186/1471-2105-10-421
- 微信文章(如何在NCBI官网进行序列比对 -- BLAST简介)
- 微信文章(一文秒懂Blast结果图(附序列比对网址)!教你快速上手,绝对实用!)
- 微信文章(本地BLAST的安装与使用)
- 微信文章(生物学经典Blast序列比对算法原理,如何在R语言和Python中实现序列的比对分析?)