本地BLAST

从NCBI下载对应系统的BLAST+程序

根据自己的操作系统,从NCBI的FTP下载合适的BLAST+版本。我的操作系统是Ubuntu 18.04,选择的是ncbi-blast-2.10.0+-x64-linux.tar.gz。

1
ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/

解压,将程序路径添加到环境变量

1
2
tar –zxvf ncbi-blast-2.10.0+-x64-linux.tar.gz
vi ~/.bashrc

在末尾添加:

1
export PATH=/home/chenwen/bin/ncbi-blast-2.10.0+-x64-linux/bin:$PATH

这里的路径视具体情况而定,我喜欢将软件都放在/home/chenwen/bin目录下
更新,使配置生效:

1
source ~/.bashrc

从NCBI下载数据库

下载地址:

1
ftp://ftp.ncbi.nih.gov/blast/db/

有关每个文件的含义请阅读README文件。下面摘录几种:
human_genomic.gz 人类基因组序列
nr.gz All non-redundant GenBank CDS translations + RefSeq Proteins + PDB + SwissProt + PIR + PRF所有非冗余的的GenBank CDS区的翻译序列 + 参考序列的蛋白 + PDB数据库 + SwissProt蛋白数据库 + PRF蛋白数据库
nt.gz 除wgs, gss, sts, pat, est, htg以外的核酸序列,注意不是非冗余的
htg.gz 来源于GenBank, EMBL, and DDBJ的高通量基因组测序序列

格式化数据库

BLAST+使用makeblastdb命令格式化数据库。老版本BLAST使用formatdb命令。

1
makeblastdb -in db.fasta -dbtype prot -parse_seqids -out db_name

参数说明:
-in:待格式化的序列文件
-dbtype:数据库类型,prot或nucl
-out:数据库名

运行BLAST+

BLAST+提供多种比对程序:
blastp: 用蛋白质序列搜索蛋白质序列库
balstn: 用核酸序列搜索核酸库
blastx:核酸序列对蛋白库的比对,核酸序列在比对之前自动按照六个读码框翻译成蛋白质序列
tblastn:蛋白质序列对核酸库的比对,核酸库中的序列按照六个读码框翻译后与蛋白质序列进行比对搜索
tblastx:核酸序列对核酸库在蛋白质级别的比对,两者都在搜索之前翻译城蛋白质进行比对
核酸序列比对核酸数据库(blastn):

1
blastn -query seq.fasta -out out.txt -outfmt 6 -db dbname -evalue 1e-5 -num_threads 8

参数说明:
-query: 输入文件路径及文件名
-out:输出文件路径及文件名
-db:格式化了的数据库路径及数据库名
-evalue:设置输出结果的e-value值
-num_threads:线程数
-outfmt:输出文件格式,6是tabular格式
-max_target_seqs:设置最大目标序列匹配数
其他程序比对跟blastn相似,更多参数可以用-help查询。

-outfmt 6的输出文件格式详解

1
2
3
4
5
6
7
8
9
10
11
12
[00] Query id
[01] Subject id
[02] % identity
[03] alignment length
[04] mismatches
[05] gap openings
[06] q. start
[07] q. end
[08] s. start
[09] s. end
[10] e-value
[11] bit score