中科院超级计算青岛分中心ncbi-blast安装手册

安装目录: 
/public/bio_app/ncbi-blast-2.2.22
安装步骤: 

1. 安装配置BLAST+程序

ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ 中下载最新的BLAST可执行程序( 不要下载源代码 ,源码编译非常慢),选择预编译版本,如ncbi-blast-2.2.29+-x64-linux.tar.gz。如果服务器能联网,可直接用wget下载。或者,下载后用SFTP客户端传输到服务器上。

wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2....

wget ftp : //ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.2.29+-x64-linux.tar.gz
 

解压缩:

tar -zxvf ncbi-blast-2.2.29+-x64-linux.tar.gz

tar - zxvf ncbi - blast - 2.2.29 + - x64 - linux .tar .gz
 

(按理说解压缩后就可以通过绝对路径直接使用了,但为了今后的方便,还是继续配置吧)为了方便,将其移动到我安装本地程序的目录(参考《 Linux上设置良好的目录结构 》),并重命名(固定命名,不带版本号,避免因升级而修改配置文件),统一管理。

mv ncbi-blast-2.2.29+ ~/local/app/ # 移动
cd ~/local/app/                    # 进入本地程序安装路径
mv ncbi-blast-2.2.29+ blast        # 修改目录名

 

mv ncbi - blast - 2.2.29 + ~ / local / app / # 移动

cd ~ / local / app /                      # 进入本地程序安装路径

mv ncbi - blast - 2.2.29 + blast          # 修改目录名
 

现在,已经将BLAST+安装到 ~ / local / app / blast    中了(~知道吧,就是用户的家目录,可用环境变量$HOME代替)。

[shenwei@mu01 blast]$ pwd # 查看当前目录的绝对路径
/db/home/shenwei/local/app/blast
[shenwei@mu01 blast]$ ls  # 查看当前目录的内容
bin  ChangeLog  doc  LICENSE  ncbi_package_info  README

 

[ shenwei @ mu01 blast ] $ pwd # 查看当前目录的绝对路径

/ db / home / shenwei / local / app / blast

[ shenwei @ mu01 blast ] $ ls    # 查看当前目录的内容

bin   ChangeLog   doc   LICENSE   ncbi_package_info   README
 

将BLAST+可执行程序所在目录(bin)的绝对路径加入到环境变量$PATH中,方便通过程序名直接调用。编辑~/.bashrc文件,在最后加入以下行:

export PATH=/db/home/shenwei/local/app/blast/bin:$PATH

export PATH = / db / home / shenwei / local / app / blast / bin : $PATH
 

如果不会使用vi/vim等编辑器,可直接运行下列一行命令,将上述内容添加到~/.bashrc文件(看清楚,和上面不同的是:$被转义了的):

echo "export PATH=/db/home/shenwei/local/app/blast/bin:\$PATH" >> ~/.bashrc

echo "export PATH=/db/home/shenwei/local/app/blast/bin:\$PATH" >> ~ / . bashrc
 

让配置生效:

source ~/.bashrc

source ~ / .bashrc
 

到此,你就可以直接输入BLAST的子程序,如blastn进行比对了。试试输入 blast - version    ,看看是否如下显示:

[shenwei@mu01 blast]$ blastn -version
blastn: 2.2.29+
Package: blast 2.2.29, build Dec 10 2013 14:41:40

 

[ shenwei @ mu01 blast ] $ blastn - version

blastn : 2.2.29 +

Package : blast 2.2.29 , build Dec 10 2013 14 : 41 : 40
 

——————————————– [ 休息一下,鼓励一下自己 ]  ——————————————–

2. 配置本地BLAST库

当需要进行大量比对的时候,将BLAST数据库本地化能极大提高效率。

我存放库文件的目录为 ~ / data / blast    。建立并编辑(如果还不会编辑,就复制到本地的一个文本文件ncbirc.txt,然后传到服务器,再改名 mv ncbirc .txt .ncbirc    )NCBI BLAST全局配置文件(在家目录),内容如下:

[shenwei@mu01 ~]$ cat .ncbirc  # 这是查看文件内容的命令,下面才是内容
; Start the section for BLAST configuration

[BLAST]

; Specifies the path where BLAST databases are installed
BLASTDB=/db/home/shenwei/data/blast

; Specifies the data sources to use for automatic resolution

; for sequence identifiers
DATA_LOADERS=blastdb

; Specifies the BLAST database to use resolve protein sequences
BLASTDB_PROT_DATA_LOADER=/db/home/shenwei/data/blast/nr

; Specifies the BLAST database to use resolve protein sequences
BLASTDB_NUCL_DATA_LOADER=/db/home/shenwei/data/blast/nt

BATCH_SIZE=10G

; Windowmasker settings

[WINDOW_MASKER]
WINDOW_MASKER_PATH=/db/home/shenwei/data/blast/windowmasker

; end of file

 

[ shenwei @ mu01 ~ ] $ cat .ncbirc    # 这是查看文件内容的命令,下面才是内容

; Start the section for BLAST configuration

[ BLAST ]

; Specifies the path where BLAST databases are installed

BLASTDB = / db / home / shenwei / data / blast

; Specifies the data sources to use for automatic resolution

; for sequence identifiers

DATA_LOADERS = blastdb

; Specifies the BLAST database to use resolve protein sequences

BLASTDB_PROT_DATA_LOADER = / db / home / shenwei / data / blast / nr

; Specifies the BLAST database to use resolve protein sequences

BLASTDB_NUCL_DATA_LOADER = / db / home / shenwei / data / blast / nt

BATCH_SIZE = 10G

; Windowmasker settings

[ WINDOW_MASKER ]

WINDOW_MASKER_PATH = / db / home / shenwei / data / blast / windowmasker

; end of file
 

3. 下载库文件

配置好之后, 使用BLAST+自带的update_blastdb.pl脚本下载nr和nt等库文件  (不建议下载序列文件,一是因为后者文件更大,二是因为可以从库文件中提取序列,最主要是建库需要花费很长时间),直接运行下列命令即可自动下载。

update_blastdb.pl nt nr

update_blastdb .pl nt nr
 

提醒 :下载文件较大,耗费时间较长,最好将任务转入后台。详见《Linux使用技巧备忘录》中“用screen运行大量后台任务”部分。简单的做法,也可用nohup命令(下面nohup后面用了time命令,是为了看看整个消耗的时间):

nohup time update_blastdb.pl nt nr > log &

nohup time update_blastdb . pl nt nr & gt ; log & amp ;
 

监控库文件是否下载完成,如何判断? 1. 查看log文件是否有提示;2. 查看update_blastdb.pl是否还在运行:执行 ps - aef | grep update_blastdb .pl | grep - v update_blastdb .pl    命令,如过没有结果,则说明没有运行了。

下载完成后解压所有tar.gz文件(用通配符)即可:

nohup time tar -zxvf *.tar.gz > log2

nohup time tar - zxvf * .tar .gz > log2
 

提示 :今后要更新库文件的时候,按照上述方法重新下载解压即可。

常用的BLAST库文件(比如基因组参考序列)也可以加入其中,今后调用的时候就不用输入库 文件的绝对路径了。

 

4. 基本用法

可直接Google中文教程。更权威,更详细的请参考BLAST手册 《BLAST Command Line Applications User Manual》 。具体参数信息可直接输入 blastn - help    查阅。

提示 : blast输出格式有多种,其中11包含信息最全,其它格式都可用blast_formatter程序由11转化为其它格式  。所以,比对结果请使用11格式。

1)如果本地化了nt库,直接在nt库中比对,部分参数的中文意义可见《 BLAST+使用方法 》。

blastn -query test.fa -db nt -outfm 11 -out "test.blastn@nr.asn" -num_threads 8

blastn - query test .fa - db nt - outfm 11 - out "test.blastn@nr.asn"   - num_threads 8
 

其中输出文件名test.blastn@nr.asn是个人习惯,即“序列文件名.blast子程序名@库名.结果格式”,这样是不是很直观?

转换格式(如自定义表格格式):

blast_formatter -archive "test.blastn@nr.asn" -outfmt "7 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore staxids salltitles" > "test.blastn@nr.tab"

blast_formatter - archive "test.blastn@nr.asn" - outfmt "7 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore staxids salltitles" > "test.blastn@nr.tab"
 

转为默认格式 :

blast_formatter -archive "test.blastn@nr.asn" -outfmt 0 > "test.blastn@nr.blast"

blast_formatter - archive "test.blastn@nr.asn" - outfmt 0 & gt ; "test.blastn@nr.blast"
 

2) 如果没有本地化nt库,可添加-remote选项 (就不能使用-num_threads参数了),进行在线比对(当然要慢一些,适合数据不多的情况):

blastn -query test.fa -db nt -outfm 11 -out "test.blastn@nr.asn" -remote

blastn - query test . fa - db nt - outfm 11 - out "test.blastn@nr.asn"   - remote
 

3)用自己的序列建库

makeblastdb -in db.fasta -dbtype nucl -parse_seqids -out dbname

makeblastdb - in db .fasta - dbtype nucl - parse_seqids - out dbname
 

如果该库需要经常使用,可将库文件移到前面配置的库文件的目录,今后在其它目录运行blast的时候,便可直接输入库名(不用输入绝对路径),直接使用。

mv dbname.* ~/data/blast

mv dbname . * ~ / data / blast