本文提供在Linux系统中进行NCBI BLAST+本地化的方法。实测环境为Linux64位系统,无ROOT权限。
本文面向初学者(最好还是懂得基本的linux使用),高手可直接忽视。不介绍Windows系统中的安装方法,一是因为思路一样,二是因为Linux中BLAST效率更高,系统更稳定,不会卡死。所以,请用Linux服务器,我想你也不忍心让自己心爱的本本跑几十个小时的程序吧。
请不要因为篇幅长,而觉得很困难,只是为了初学者能懂,叙述比较详(luo)细(suo)而已。
——————————————– [
做好心理准备,开始了] ——————————————–
1. 安装配置BLAST+程序
在ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/中下载最新的BLAST可执行程序(不要下载源代码,源码编译非常慢),选择预编译版本,如ncbi-blast-2.2.30+-x64-linux.tar.gz。如果服务器能联网,可直接用wget下载。或者,下载后用SFTP客户端传输到服务器上。
1
wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.2.30+-x64-linux.tar.gz
解压缩:
1
tar -zxvf
ncbi-blast-2.2.30+-x64-linux.tar.gz
(按理说解压缩后就可以通过绝对路径直接使用了,但为了今后的方便,还是继续配置吧)为了方便,将其移动到我安装本地程序的目录(参考《Linux上设置良好的目录结构》),并重命名(固定命名,不带版本号,避免因升级而修改配置文件),统一管理。
1
2
3
mv ncbi-blast-2.2.30+
~/local/app/
# 移动
cd ~/local/app/#
进入本地程序安装路径
mv ncbi-blast-2.2.30+
blast#
修改目录名
现在,已经将BLAST+安装到~/local/app/blast 中了(~知道吧,就是用户的家目录,可用环境变量$HOME代替)。
1
2
3
4
[shenwei@mu01
blast]$
pwd # 查看当前目录的绝对路径
/db/home/shenwei/local/app/blast
[shenwei@mu01
blast]$
ls#
查看当前目录的内容
binChangeLogdocLICENSEncbi_package_infoREADME
将BLAST+可执行程序所在目录(bin)的绝对路径加入到环境变量$PATH中,方便通过程序名直接调用。编辑~/.bashrc文件,在最后加入以下行:
1
export PATH=/db/home/shenwei/local/app/blast/bin:$PATH
如果不会使用vi/vim等编辑器,可直接运行下列一行命令,将上述内容添加到~/.bashrc文件(看清楚,和上面不同的是:$被转义了的):
1
echo "export PATH=/db/home/shenwei/local/app/blast/bin:\$PATH"
>> ~/.bashrc
让配置生效:
1
source ~/.bashrc
到此,你就可以直接输入BLAST的子程序,如blastn进行比对了。试试输入blast-version ,看看是否如下显示:
1
2
3
[shenwei@mu01
blast]$
blastn -version
blastn:
2.2.30+
Package:
blast 2.2.30,
build Dec 10 2013 14:41:40
——————————————– [ 休息一下,鼓励一下自己
] ——————————————–
2. 配置本地BLAST库
当需要进行大量比对的时候,将BLAST数据库本地化能极大提高效率。
我存放库文件的目录为~/data/blast 。建立并编辑(如果还不会编辑,就复制到本地的一个文本文件ncbirc.txt,然后传到服务器,再改名mvncbirc.txt.ncbirc )NCBI
BLAST全局配置文件(在家目录),内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[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
配置好后,后面选择库的时候就可以只输入名称(比如nr),不用输入绝对路径了。