博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ncbi-blast 本地安装
阅读量:4325 次
发布时间:2019-06-06

本文共 4146 字,大约阅读时间需要 13 分钟。

详见:http://blog.shenwei.me/local-blast-installation/

Linux系统中NCBI BLAST+本地化教程 

本文面向初学者(最好还是懂得基本的linux使用),高手可直接忽视。不介绍Windows系统中的安装方法,一是因为思路一样,二是因为Linux中BLAST效率更高,系统更稳定,不会卡死。所以,请用Linux服务器,我想你也不忍心让自己心爱的本本跑几十个小时的程序吧。

请不要因为篇幅长,而觉得很困难,只是为了初学者能懂,叙述比较详(luo)细(suo)而已

——————-[ 做好心理准备,开始了]——————- 

1. 安装配置BLAST+程序

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

wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.2.30+-x64-linux.tar.gz解压缩:tar -zxvf ncbi-blast-2.2.30+-x64-linux.tar.gz

 

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

mv ncbi-blast-2.2.30+ ~/local/app/ # 移动cd ~/local/app/                    # 进入本地程序安装路径mv ncbi-blast-2.2.30+ 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

 

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

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

 

让配置生效:

source ~/.bashrc

 

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

[shenwei@mu01 blast]$ blastn -versionblastn: 2.2.30+Package: blast 2.2.30, 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 installedBLASTDB=/db/home/shenwei/data/blast; Specifies the data sources to use for automatic resolution; for sequence identifiersDATA_LOADERS=blastdb; Specifies the BLAST database to use resolve protein sequencesBLASTDB_PROT_DATA_LOADER=/db/home/shenwei/data/blast/nr; Specifies the BLAST database to use resolve protein sequencesBLASTDB_NUCL_DATA_LOADER=/db/home/shenwei/data/blast/ntBATCH_SIZE=10G; Windowmasker settings[WINDOW_MASKER]WINDOW_MASKER_PATH=/db/home/shenwei/data/blast/windowmasker; end of file

 

配置好后,后面选择库的时候就可以只输入名称(比如nr),不用输入绝对路径了。

3. 下载库文件

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

update_blastdb.pl nt nr

 

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

nohup time update_blastdb.pl nt nr > log &

 

监控库文件是否下载完成,如何判断? 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 &

 

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

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

——————-[ 赞扬一下自己 ]  ——————-

4. 基本用法

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

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

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

blastn -query test.fa -db nt -outfmt 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 0 > "test.blastn@nr.blast"

 

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

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

 

3)用自己的序列建库

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

 

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

mv dbname.* ~/data/blast

  

————- [ 在实践中学习,不会的请google、看手册] ————-

 

转载于:https://www.cnblogs.com/lpp900830/p/5771754.html

你可能感兴趣的文章
阶段3 2.Spring_09.JdbcTemplate的基本使用_2 JdbcTemplate的概述和入门
查看>>
阶段3 2.Spring_08.面向切面编程 AOP_7 通用化切入点表达式
查看>>
阶段3 2.Spring_09.JdbcTemplate的基本使用_6 JdbcDaoSupport的使用以及Dao的两种编写方式...
查看>>
阶段3 2.Spring_08.面向切面编程 AOP_9 spring基于注解的AOP配置
查看>>
阶段3 2.Spring_10.Spring中事务控制_1 基于XML的AOP实现事务控制
查看>>
阶段3 2.Spring_09.JdbcTemplate的基本使用_1 今日课程内容介绍
查看>>
阶段3 2.Spring_09.JdbcTemplate的基本使用_3 JdbcTemplate在Dao中的使用
查看>>
阶段3 2.Spring_09.JdbcTemplate的基本使用_5 JdbcTemplate在spring的ioc中使用
查看>>
阶段3 2.Spring_10.Spring中事务控制_2 作业-基于注解的AOP实现事务控制及问题分析_上...
查看>>
阶段3 2.Spring_10.Spring中事务控制_5 spring事务控制的代码准备
查看>>
阶段3 2.Spring_10.Spring中事务控制_4 spring中事务控制的一组API
查看>>
阶段3 2.Spring_10.Spring中事务控制_7 spring基于注解的声明式事务控制
查看>>
阶段3 2.Spring_10.Spring中事务控制_6 spring基于XML的声明式事务控制-配置步骤
查看>>
阶段3 2.Spring_10.Spring中事务控制_9 spring编程式事务控制1-了解
查看>>
阶段3 2.Spring_10.Spring中事务控制_8 spring基于纯注解的声明式事务控制
查看>>
阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_07.入门案例中使用的组件介绍
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_1 请求参数绑定入门
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_2 请求参数绑定实体类型
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_4 请求参数绑定集合类型
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_3 配置解决中文乱码的过滤器
查看>>