Blast+本地化及使用方法

原来一直用blast的,但NCBI已停止了对blast的更新,而强力推荐使用blast+,这次因为要做blast的数据量比较大,所以试了一下blast+,同时也用blast做了一下,发现blast+果然要快得多,看来习惯要改变了。其实blast+和blast的原理差不多,只不过程序参数和名称有了点变化而已,现简要介绍一下其本地化的方法:
1、下载最新版的程序,根据自己的系统选择合适的版本。
2、解压后进入程序目录……ncbi-blast-2.2.31+/bin,各个程序的功能说明可以参考我的另外一篇博客
3、各程序的参数说明可以用自带的help,例如想查blastx的参数说明可以用: ./blastx -help
4、做blast前一般要先格式化数据库,除非只是几个序列之间的比对,例如格式化一个蛋白数据库可以用下列参数:
$HOME/……/ncbi-blast-2.2.31+/bin/makeblastdb -in uniprot_sport -dbtype prot -input_type fasta -parse_seqids -hash_index
主要几个程序的使用例子:
blastp -query protein.fa -out /protein.output -db dbname -outfmt 0 -evalue 1e-3 -max_target_seqs 20
blastn -query nucl.fa -out output -db dbname -outfmt 6 -evalue 1e-5 -num_descriptions 10
blastx -query nucl.fa -out output -db dbname -outfmt 6 -evalue 1e-5 -num_descriptions 10
参数说明:
-query: 输入文件路径及文件名
-out:输出文件路径及文件名
-db:格式化了的数据库路径及数据库名
-outfmt:输出文件格式,2.2.31版共有14种格式,6是tabular格式对应BLAST的m8格式
-evalue:设置输出结果的e-value值
-max_target_seqs:找到的最大的目标的数目,也可用-num_descriptions,tabular格式输出结果的条数

TGICL安装和使用

TGI Clustering tools(简称TGICL),是对大量EST或者转录本数据进行快速聚类的软件,也就是将序列进行组装拼接。原理是先用NCBI的megablast先粗略进行聚类,然后用CAP3进行组装。
1、下载
TGICL在sourceforge网站可以下载到(TGICL-2.1.tar.gz),我这里是下载的是最新的2.1版。
2、安装
$tar zxvf TGICL-2.1.tar.gz
$cd TGICL-2.1

$perl Makefile.PL
$make
$make test
$make install
完成

或者
perl Build.PL
./Build
./Build test
./Build install

tgicl就安在用户目录上了,可将刚安装好的perl包和程序分别拷贝到/usr/local/lib64/perl5/ 和/usr/local/bin/perl5/中。
用的时候调用此程序就可以了,如
/usr/local/bin/perl5/tgicl -F /home/用户/all.contigs.fasta

3、安装存在的问题及解决方法
(1)Can’t locate TGI/Mailer.pm in @INC (@INC contains:
那是找不到Mailer.pm,将TGICL-2.1/lib里的文件拷贝到/usr/local/lib64/perl5/中去就可以了。
(2)Can’t locate File/HomeDir.pm in @INC (@INC contains:
那是缺少perl的File/HomeDir.pm包,进入cpan,install File::HomeDir.pm
(3)Package main, File ./tgicl, Line 27 == Failed to find tgicl.cfg config file in
那是因为tgicl.cfg配置文件没有找到,将TGICL-2.1/conf/tgicl.cfg拷贝到tgicl所在的目录,如/usr/local/bin/perl5/。
(4)Use of :locked is deprecated at ……/TGI/DBDrv.pm line 36.
打开此文件,在our $VERSION = ‘0.01’;这句的下面加上一行,
no warnings ‘deprecated’;
###直接忽略掉deprecated警告
(5)运行时产生错误err_tgicl_all_contigs.fa.log文件显示不能运行formatdb程序,因为tgicl是32 bit系统的程序,在64位系统不能运行,要安装32位运行库glibc.i686和libstdc++.i686。直接yum install glibc.i686和yum install libstdc++.i686
(6)error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
安装zlib.i686
sudo yum install zlib.i686