Blast入门【1】

date: 2023-11-14 update slug: Blast_1 key: blast ref: cover:

【1】blast介绍

BLAST:Basic local alignment search tool (BLAST)

包括:

  • blastn
  • blastp
  • blastx
  • tblastn
  • tblastx等

BLAST的主要理念:

  • 可检索DNA、RNA和Protein;总得来说分为核苷酸数据库和蛋白数据库两类
  • 检索可以应用“检索策略”: 针对特定任务的优化。不同的搜索策略会返回不同的排列结果。
  • 检索使用基于打分矩阵(scoring matrices)的比对(alignments)
  • 检索可以使用许多附加参数来自定义。
  • 此外,BLAST 有许多微妙的功能,大多数用户都用不上

【2】blast本地安装

conda install -c bioconda blast
# blast安装perl模块的方法
# conda install perl-digest-md5  # ? 暂未安装

【3】本地BLAST的基本步骤

  1. 准备BLAST所用数据库
  2. 选择所需BLAST工具
  3. 运行BLAST并解读结果

【3.1】准备BLAST所用数据库

BLAST提供了大量官方数据库,如nr、nt库,可以直接下载使用。

当然BLAST也支持自建数据库来进行检索。

【3.1.1】配置并下载官方数据库

首先下载BLAST数据库下载和更新的专用工具,是NCBI提供的一个官方perl命令行工具: update_blastdb.pl,下载地址为https://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/lxr/source/src/app/blast/update_blastdb.pl

测试运行update_blastdb.pl

# 报错gsutile等依赖项缺失则运行 conda install -c conda-forge google-cloud-sdk
# 运行测试
perl update_blastdb.pl --help

# 查看能下载的所有BLAST数据库
perl update_blastdb.pl --showall

使用update_blastdb.pl下载官方数据库,以nr数据库为例

# 该命令将从 NCBI 下载压缩的 nr BLAST 数据库到当前工作目录并解压缩。
perl update_blastdb.pl --decompress nr

# 随后在该目录中以相同参数调用此脚本时,只有在下载的数据与 NCBI 数据的时间戳不同时,才会下载任何数据。该脚本可判断您是否在云提供商内部调用该脚本,并自动从相应的云存储下载。


# 如果需要这些 BLAST 数据库中的 FASTA,可以通过以下方式获取:
blastdbcmd -entry all -db nr -out nr.fsa

# 如果需要从这些 BLAST 数据库中选择序列的 FASTA,可按以下方式获取(本例中感兴趣的序列以加入号 u00001 标识)
blastdbcmd -entry u00001 -db nr -out u00001.fsa
  • 如果在调用时遇到任何问题,尝试使用 --passive 选项,该选项在BLAST+ 2.8.1 及其后续版本中默认启用。
  • 只有当源数据来自 NCBI 时,才需要使用--decompress 选项。

【3.1.2】配置自建数据库

BLAST数据库分为两类,核酸数据库和氨基酸数据库,可以用makeblastbd创建。可以用help参数简单看下说明。

makeblastdb -help
USAGE
  makeblastdb [-h] [-help] [-in input_file] [-input_type type]
    -dbtype molecule_type [-title database_title] [-parse_seqids]
    [-hash_index] [-mask_data mask_data_files] [-mask_id mask_algo_ids]
    [-mask_desc mask_algo_descriptions] [-gi_mask]
    [-gi_mask_name gi_based_mask_names] [-out database_name]
    [-max_file_sz number_of_bytes] [-logfile File_Name] [-taxid TaxID]
    [-taxid_map TaxIDMapFile] [-version]
-dbtype <String, `nucl', `prot'>

# eg.

$ makeblastdb –in swissprot –dbtype prot –parse_seqids 
$ makeblastdb –in nt –dbtype nucl –parse_seqids 

【3.2】选择所需BLAST工具

【3.3】运行BLAST并解读结果

【附录】官方数据库文件介绍

blast目录下的解释

https://ftp.ncbi.nlm.nih.gov/blast/

Index of /blast
Name                    Last modified      Size  
Parent Directory                             -   
WGS_TOOLS/              2019-12-16 16:51    -   
db/                     2023-11-06 23:25    -   
demo/                   2019-11-05 10:10    -   
documents/              2021-07-30 15:56    -   
executables/            2019-10-24 12:34    -   
matrices/               2023-06-05 10:29    -   
temp/                   2023-07-06 09:10    -   
windowmasker_files/     2023-10-01 05:22    -   
blastftp.txt            2004-05-10 14:09   20K  

看这个即可

https://www.ncbi.nlm.nih.gov/books/NBK62345/#blast_ftp_site.The_blastdb_subdirectory

Subdirectory File content
db Preformatted BLAST database files and FASTA sequence files (only for a few representative databases, kept under the /FASTA subdirectory)
预格式化的 BLAST 数据库文件和 FASTA 序列文件(仅针对少数代表性数据库,保存在 /FASTA 子目录下)
demo Various demonstration packages for software developers
面向软件开发人员的各种演示软件包
documents Preliminary documentation (mostly from software developers) and pointers to other documentation
初步文件(主要来自软件开发人员)和其他文件的指针
executables Different releases for standalone BLAST packages, including blast+
独立 BLAST 软件包的不同版本,包括 blast+
matrices Different scoring matrices, only a selected subset are supported by blast
不同的评分矩阵,blast仅支持选定的子集
temp Miscellaneous files
杂项文件
WGS_TOOLS Perl scripts for generating WGS project-based database alias for TSA and WGS datasets, to be used with vdb blast
用于为 TSA 和 WGS 数据集生成基于 WGS 项目的数据库别名的 Perl 脚本,可与 vdb blast 一起使用
windowmasker_files A collection of windowmasker files, organized into subdirectory named by the taxonomic ids
窗口掩码文件集,按分类 ID 命名的子目录

/db"子目录

该子目录包含一套通用的第 5 版格式的预格式化BLAST 数据库文件。一些广泛使用的数据库的 FASTA序列存储在"/FASTA "子目录下。现有预格式化数据库的内容按其序列性质和来源(核苷酸数据库)分别汇总。为基于云的 BLAST 软件包提供的数据库位于"/cloud "子目录下。第 4 版数据库保存在"/v4 "子目录中,这些条目将不会更新。 /v5 "子目录是返回"/db "目录的软链接。

预格式化的蛋白质数据库文件
File name Contents
landmark.tar.gz landmark数据库包括从少数几个具有代表性的基因组中选取的完整蛋白质组,其分类范围很广,是 SmartBLAST 服务使用的主要数据库。记录的是蛋白质序列
cdd_delta.tar.gz 用于 deltablast 蛋白序列搜索的浓缩保守结构域(domain)数据库
nr.##.tar.gz 收集了来自 GenPept、Swissprot、PDB、PRF、PIR 和 NCBI Reference Sequence (RefSeq) 项目的蛋白质序列条目
pataa.tar.gz 美国专利商标局(USPTO)提供的专利中的蛋白质序列。这些条目不包括在 nr 数据库中。
pdbaa.tar.gz 来自 PDB 结构数据库记录的蛋白质成分的蛋白质序列
refseq_protein.##.tar.gz 来自 NCBI RefSeq 项目的蛋白质序列
swissprot.tar.gz 来自 swiss-prot 序列数据库的蛋白质序列(最近一次重大更新)。
tsa_nr.##.tar.gz 来自 Trascriptome Shotgun Assembly (TSA)的蛋白质序列其条目已从 nr 数据库中删除。
env_nr.##.tar.gz 来自大型环境测序项目(如马尾藻海(Sargasso Sea)、酸性矿井排水(Acid Mine Drainage))的蛋白质序列。其条目已从 nr 数据库中删除。
预格式化的 RefSeq 核苷酸数据库文件
File Contents
16S_ribosomal_RNA.tar.gz 来自 RefSeq 目标基因座(Targeted Loci)项目的微生物 16S RNA 序列.
refseq_rna.##.tar.gz 来自 NCBI RefSeq 项目的 RNA 序列,也包含在 nt 数据库中。
refseq_euk_rep_genomes.##.tar.gz 来自 NCBI RefSeq 项目的真核生物(Eukaryotic)代表性基因组
refseq_prok_rep_genomes.##.tar.gz 来自 NCBI RefSeq 项目的原核生物(Prokaryotic)代表基因组
refseq_viroids_rep_genomes.##.tar.gz 来自 NCBI RefSeq 项目的 Viriods 代表基因组
refseq_viruses_rep_genomes.##.tar.gz 来自 NCBI RefSeq 项目的病毒代表基因组
human_genome.##.tar.gz Current refseq human genome assembly (GRCh) with various database masking
使用各种数据库屏蔽的当前 refseq 人类基因组组装 (GRCh)
mouse_genome.##.tar.gz Current refseq mouse genome assembly (GRCm) with various database masking
使用各种数据库屏蔽的当前 refseq 小鼠基因组组装 (GRCm)

masking

Also known as filtering. The removal of repeated or low complexity regions from a sequence in order to improve the sensitivity of sequence similarity searches performed with that sequence.

也称为过滤。从序列中去除重复或低复杂度区域,以提高序列相似性搜索的敏感性。

https://www.ncbi.nlm.nih.gov/books/NBK62051/

预格式化的非 RefSeq 核苷酸和目标基因座数据库

Preformatted non-RefSeq nucleotide and target loci databases

File Contents
nt.##.tar.gz 包含 GenBank、EMBL 和 DDBJ 传统分部(traditional divisions)的条目的核苷酸序列数据库。
不包括大量分部(bulk divisions)的序列,即 gss、sts、pat、est、htg、wgs、con 和环境序列。
RefSeq 基因组条目(genomic entries)也不包括在内
patnt.##.tar.gz Nucleotide sequences from patents as supplied by USPTO to GenBank, or from EU/Japan Patent Agencies through EMBL/DDBJ. Entries are EXCLUDED from the nt database.
美国专利商标局向 GenBank 提供的,或欧盟/日本专利局通过 EMBL/DDBJ 提供的来自专利的核苷酸序列。条目被排除在 nt 数据库之外。
pdbnt.##.tar.gz PDB 结构数据库记录的核苷酸序列。
tsa_nt.##.tar.gz A database with earlier non-project based Transcriptome Shotgun Assembly (TSA) entries. Project-based TSA entries are NOT included. Entries are EXCLUDED from the nt database.
早期不基于项目的转录组枪式组装(TSA)条目的数据库。
不包括基于项目的 TSA 条目。
条目被排除在 nt 数据库之外。
ITS_*.tar.gz 真菌(fungal )或真核生物(eukaryotic )内部转录间隔序列(Internal Transcribed Spacer )的数据库。
LSU_*_rRNA.tar.gz 包含大量原核生物(prokaryotes )和真核生物(eukaryotes) rRNA 序列的提交数据库。
SSU_*_rRNA.tar.gz 真菌(fungi )和真核生物(eukaryotes)小序列数据库
taxdb.tar.gz 非序列(non-sequence )数据库文件,包含预格式化数据库中序列的分类信息(taxonomic information),为每个条目提供通用(common names)名称和科学名称(scientific names)
/db/FASTA目录下的蛋白质数据库文件
File Content
nr.gz nr.##.tar.gz 数据库文件对应的 FASTA
swissprot.gz swissprot.tar.gz 数据库文件对应的 FASTA
nt.gz nt.##.tar.gz 数据库文件对应的 FASTA

对于本地BLAST搜索建议使用父目录中给出的预格式化版本(preformatted version given in the parent directory)。对于那些没有预格式化对应文件的序列,首先需要使用 gunzip 或其他类似工具对FASTA 序列文件进行解压,然后使用 blast+ 软件包中的 makeblastdb 对解压后的文件进行格式化(format)。

格式化 igSeqNt 和 igSeqProt 的命令行示例如下。

$ makeblastdb –in swissprot –dbtype prot –parse_seqids 
$ makeblastdb –in nt –dbtype nucl –parse_seqids 

如需进行载体筛选,可从https://ftp.ncbi.nlm.nih.gov/pub/UniVec/该 ftp 目录中获取 FASTA序列,并使用 makeblastdb 对其进行格式化:

染色体条目(entries)可在 refseq_euk_rep_genomesrefseq_prok_rep_genomes 数据库中找到。基因组 FTP 目录https://ftp.ncbi.nlm.nih.gov/pub/genomes/all/下有 FASTA 格式的生物特异性序列。说明文档为https://ftp.ncbi.nlm.nih.gov/pub/factsheets/Factsheet_Assembly.pdf

NCBI 数据集工具是从 NCBI 获取基因组数据的另一种方法。更多信息请参阅此页: https://www.ncbi.nlm.nih.gov/datasets

/db/v4/子目录下的数据库文件

该子目录包含旧版本 4 格式的预格式化 blast dtabase 文件。这些数据库不会更新。它们旨在作为过渡到第 5 版数据库的权宜之计。将跳过该子目录的内容描述。

数据库升级

一般来说,BLAST 数据库每天更新一次。由于序列的删除和更新,没有既定的增量更新计划。建议定期下载数据库,以保持本地副本内容的最新性。update_blastdb.pl 脚本可以帮助简化下载过程。如果保留了原始数据库.##.tar.gz 文件,该工具可以自动检查时间戳,以确定是否需要刷新文件。

还可通过 Aspera 插件加快下载速度(可从 Aspera Soft 网站的下载标签下下载)。NCBI FTP 站点的网络接口位于: https://www.ncbi.nlm.nih.gov/public/。

Aspera 的命令行客户端 ascp 可用于访问 Aspera 索引的 NCBI FTP 站点。

/blast/demo/子目录下的内容
File/Dir Name Content
QUICKBLASTP 独立的 kmer 索引工具和 kmer blastp 工具。当 "Quick BLASTP (Accelerated protein-protein BLAST) "选项被选中时,算法将用于网络蛋白质爆炸搜索。"选项时
README.quickblastp quickblastp 自述文件
quickblastp.tar.gz 基于 Kmer 的 quickblastp 演示软件包
benchmark 包含样本数据库和query的软件包,用于衡量BLAST版本在不同平台上的性能
bmc 用于生成在 BMC 上发表的 blast+ 论文的 BLAST 搜索数据的序列
igblast 目录,其中包含与 igblast 相关的脚本集,详情请参见 README
magicbkast_article magicblast论文和用于生成规格的二进制文件的补充材料
blast_programming.ppt 关于 BLAST 编程的 PowerPoint 演示文稿
mt_tback.tgz 多线程回溯相关测试代码
openmp_test.tar.gz Openmp 多线程相关测试代码
parse_blast_xml.tar.gz 解析 xml 风格blast输出的演示软件包
test_suite.tar.gz 使用 csh 脚本的一组旧测试序列
vecscreen vecscreen 的二进制程序
.ppt, .pdf BLAST 小组在各种会议上展示的幻灯片或海报
*.fsa 杂项(Miscellaneous )序列

由于 NCBI 正在迁移到C++ 工具包 提供的 C++ 代码库,本目录中的某些文件可能会过时或更改,恕不另行通知。这里演示的大部分功能都包含在blast+软件包中的blast_formatter实用程序中。

/blast/documents/子目录下的内容

该目录主要包含 BLAST 开发人员提供的海报和其他初步文档。对于 blast+ 软件包,可通过NCBI 书架获取用户手册安装说明。内容描述将被跳过。详情请参见本目录的 README: https://ftp.ncbi.nlm.nih.gov/blast/documents/README

/blast/executables/子目录下的内容

该目录包含多个子目录,每个子目录都有一组特定版本的 BLAST 软件包。基于新 C++ 工具包的二进制文件位于 /blast+ 子目录下,最新版本可通过 /LATEST 符号链接直接访问。唯一的程序文件是 remote_fuser,用于在云实施中获取数据库。

/blast/executables/LATEST/子目录下的内容

该目录是一个符号链接,指向由 NCBI C++ 工具包构建的 BLAST+ 程序的最新版本。下表汇总了不同格式的通用平台软件包。

File Contents
ChangeLog 本版本中引入的更改
ncbi-blast-src. 不同格式的 blast+ 源代码
ncbi-blast-#.#.##+.x86_64.rpm 用于运行 64 位 Linux 的电脑的 rpm 安装包
ncbi-blast-#.#.##+-x64-linux.tar.gz 运行 64 位 Linux 电脑的 Tar 压缩包
ncbi-blast-*.dmg 用于运行 64 位 OSX 的 Macintosh 的磁盘镜像
ncbi-blast-*-macosx.tar.gz 运行 64 位 OSX 的 Macintosh 的 Tar 压缩包
ncbi-blast-*-win64.exe 适用于运行 64 位 Windows 的电脑的安装程序
ncbi-blast-#.#.##+-x64-win64.tar.gz 运行 64 位 Windows 的电脑的 Tar 压缩包

所有非源代码存档或软件包都是等价的。它们包含适用于不同平台的独立命令行程序和附件工具的标准集合。安装该软件包后,可进行本地BLAST搜索、从FASTA序列中定制数据库准备以及从现有数据库中检索序列,数据库格式以"-parse_seqids "参数为准。

关于软件包中各个程序的详细信息以及安装程序,可在WindowsMac/Linux/Unix 上找到。

请注意,blast+ 不提供单独的客户端-服务器工具。该功能内置于单个 blast 程序(即 blastnblastpblastxtblastntblastx)中,可使用"-remote "选项调用。"-remote "选项允许使用 NCBI 的计算资源对 NCBI 的数据库进行远程搜索。此外,blast+ 不提供与已停用的 wwwblast 软件包等价的软件包。

/blast/executables/blast+/子目录下的内容

该子目录归档了 blast+ 软件包的所有版本。每个版本都有自己的目录,用版本号命名。可用版本从 2.2.18 版开始,2.2.20 版跳过。可选的版本 5 数据库支持从 2.8.0alpha 版开始。

/blast/executables/legacy.NOTSUPPORTED/子目录下的内容

该子目录归档了基于 NCBI C 工具包的传统 blast 软件包的发布版本。它们仅供历史参考,NCBI 已不再支持它们。每个版本都有自己的目录,并以版本号作为其名称。可用的构建版本从 2.0.7 版开始。

版本号为 2.2.10 或更新版本的软件包采用内置目录结构打包,以便更好地组织分发的内容。

/blast/executables/igblast/子目录下的内容

该子目录归档了独立版 igblat 软件包的不同版本(在 release 子目录下)。本软件包中的二进制程序所需的单独数据文件和数据库文件可在各版本之外的子目录中找到。

/blast/executables/igblast/release/ 子目录的文件内容

File Contents
#.#.# 不同的发布目录
LATEST 指向最新版本子目录的软链接
database * 小鼠(mouse)和恒河猴(rhesus monkey)的种系免疫球蛋白(germline immunoglobulin)基因序列。由于许可证要求,不提供其他生物的数据库。
Internal_data 需要注释的内部 vdj 基因信息文件
optional_file 附加基因注释文件
edit_imgt_file.pl * 用于处理 IMGT 免疫球蛋白序列的 deflines 的 perl 脚本,以便将其用作通过 makeblastdb 创建数据库的输入内容
  • *

    注:Internal_data、optional_file 和数据库目录包含在 1.13.0 或更高版本中;请使用随该版本下载的文件。此外,由于许可证要求,NCBI 无法将某些生物的种系序列作为可爆破数据库发布。相反,这些序列应以 FASTA 的形式从 IMGT 获取。首先使用 "edit_imgt_file.pl "脚本转换 IMGT 序列的 deflines,然后再使用 makeblastdb 将文件格式化为 igblast 可读的数据库。

    /blast/executables/magicblast/ 子目录下的内容

NCBI 下一代序列读取映射器版本的子目录。LATEST 目录映射到当前版本的目录。更多详情请参考子目录下的 README 文件。有关该软件包的详细技术说明,请访问:https://ncbi.github.io/magicblast/。

/blast/executables/rmblast/子目录下的内容

该子目录归档了重复屏蔽程序 BLAST。目前只有 2.2.27 和 2.2.28 两个版本。有关详细信息,请参阅 readme。

/blast/matrices/子目录下的内容

该目录包含大量得分矩阵,其中大部分是实验性质的矩阵,不受 blast 程序支持。这些矩阵可分为 PAM 矩阵系列、BLOSUM 矩阵系列、核苷酸矩阵和其他杂项矩阵。

在 /blast/matrices/ 子目录下找到的矩阵摘要

File Contents
BLOSUM* BLOSUM family of score matrices for protein alignment
PAM* PAM family of score matrices for protein alignment
DAYHOFF, GONNET Variants of PAM matrices for protein alignment
MATCH, IDENTITY Simplified score matrices for protein alignment
NUC* Nucleotide score matrices
PAM.tar.gz C source code for generating PAM matrices

Go to:

/blast/WGS_TOOLS/子目录下的内容

该目录分别为 WGS 和 TSA 数据集提供了两个数据库别名生成工具。这些工具接收输入的分类标识,并为基于项目的 WGS 或 TSA 数据集生成数据库别名,即 https://www.ncbi.nlm.nih.gov/Traces/wgs/ 中列出的具有四个字母项目前缀的数据集。生成的别名文件可与 sratoolkit 中的 vdb blast 工具一起使用,该工具可用于常见平台:https://www.ncbi.nlm.nih.gov/Traces/sra/?view=software。介绍这些 vdb blast 程序一般用法的手册可在以下网址获取:

ftp://ftp.ncbi.nlm.nih.gov/pub/factsheets/HowTo_Local_SRA_BLAST.pdfhttps://ftp.ncbi.nlm.nih.gov/pub/factsheets/HowTo_Local_SRA_BLAST.pdf