新版blast2.2.24+本地化及本地数据库构建

发布时间:

Windows平台下新版blast2.2.24+本地化构建+数据库下载+序列间的相似性检索
blast-2.2.23-ia32-win32这个版本开始,本地化blast的参数有了很大改变,NCBI新近对blast程序做了一些修改推出了blast+,目前最新版本为ncbi-blast-2.2.24+-ia32-win32。与之前的blast相比,新的blast+blastn,blastx等合作与blastall命令分隔开来,对各个命令的参数定制更加方便而网上相关的一些教程大同小异,一部分操作已经不适用了,遂整理如下,仅供参考,不当之处,敬请指正。
blast+的本地化构建
1.1程序下载链接到:ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST
下载最新的BLAST+程序包,推荐版本ncbi-blast-2.2.24+-ia32-win32.tar.gz(绿色版windows32位系统),其他版本:ncbi-blast-2.2.24+-win32.exe适用于windows32位系统,ncbi-blast-2.2.24+-win64.exe适用Windows64位系统,请注意选择。
1.2安装流程
建议安装在非系统盘,如将下载的BLAST程序安装到E:\blast,生成bindoc两个子目录,其中bin是程序目录,doc是文档目录,这样就安装完毕了。

1.3用户环境变量设置
右键点击我的电脑属性,然后选择高级系统设置标签-环境变量”(1,在用户变量下方“Path”随安装过程已自动添加其变量值,即“E:\Blast\bin”。此时点击新建-变量名“BLASTDB”,变量值为“E:\Blast\db”(即数据库路径,图2


1.4查看程序版本信息
点击Windows开始菜单,输入“cmd”XP系统在运行中输入cmd(图3)调出MS-DOS命令行,转到Blast安装目录,输入命令“blastn-version”即可查看版本(图4

看到图4显示说明本地blast已经安装成功。
2blast+本地数据库的构建2.1数据的获取1直接从NCBI或者其他数据库网站下载所需序列做成数据库,或者自己已有的测序数据(格式必须是fasta名字可以自己随便命名,具体做法下面有说明)
2NCBI中的ftp库下载所需要的某一个库或几个库,其链接为ftp://ftp.ncbi.nlm.nih.gov/blast/db/FASTA/其中nr.gz为非冗余的数据库,nt.gz为核酸数据库,month.nt.gz为最近一个月的核酸序列数据。下载的month.nt.gz先用winrar解压缩,然后用makeblastdb.exe格式化。
3:利用新版blast自带的update_blastdb.pl进行下载,这需要安装perl程序。
上述三种方法各有优缺点,前两种下载速度较快,但是每次进行检索都需要对数据库进行格式化(转化成二进制数据),第三种方法下载速度较慢,但是是NCBI中已经格式化好的,在进行本地检索时不需再进行格式化,直接用即可。
2.2数据的格式化
本文以ratwy.fasta作为查询序列,以rat.fasta作为数据库文件为例进行讲解。首先将rat.fasta放到E\blast\db文件夹下,然后调出MS-DOS命令行,转到E\blast\db文件夹下运行以下命令:
格式化rat.fasta命令:makeblastdb.exe-inrat.fasta-parse_seqids-hash_index-dbtypeprot
-in参数后面接将要格式化的数据库,-parse_seqids,-hash_index两个参数一般都带上,主要是为blastdbcmd子序列时使用,-dbtype后接所格式化的序列的类型,核酸用nucl,蛋白质用prot;如图


至此,本地数据库已经建立完毕!3.序列间的相似性检索
BLAST+系列程序均要求查询序列以fasta格式存在,fasta格式已经程序事实上的序列标准被广泛采用,几乎所有的序列处理程序都要求fasta格式。所谓FASTA格式是指DNA序列第一行开始于一个标识符:">",紧接着(没有空格)是对该序列的唯一描述(即ID,然后一个空格,接着是对该序列的描述(也可以没有),从第二行开始就是一行行的序列,中间的空格,换行没有影响。为了方便阅读,每一行序列最好不要超过80个字母。详细的说明请看着这里http://biocompute.bmi.ac.cn/MPprimer/Fasta_help.html
本文以ratwy.fasta作为查询序列,以rat.fasta作为数据库文件为例进行讲解。首先将ratwy.fasta放到E\blast文件夹下,然后调出MS-DOS命令行,转到E\blast文件夹下运行以下命令:
blastp.exe-taskblastp-queryrat1.fasta-dbrat.fasta-outtext.txt
相关参数说明:blastp.exe程序执行命令,exe前的程序根据自己的需要而换;-task后面选择你所要用的程序,blastn,blatp,tblastx等;-query后接查询序列的文件名称;-db后接格式化好的数据库名称;
-out后接要输出的文件名称及格式;如图:

比对结束后可在blast文件夹下查看结果,本文存结果的文件名为ratwy_rat.txt4.从格式化本地数据库到序列比对如图:


核酸的比对与蛋白质相似,用blastn.exe
blastn的相关命令参数可用blastnhelp命令查询,blastp的相关命令参数可用blastphelp查询,依次类推,如图。这里面有很多参数,比上网找参数的意义省事的多,这个就得自己研究吧!


另外新版blastn还有一个可以定制输出结果的参数-outfmt,有了这个参数,BioPerlBiopython中的blast解析器就可以不必使用了。这确实又是BLAST+新版另外一个最大的提高,非常非常方便。本人的一些工作就依赖于BLAST结果的解析,有了这个参数,就不需要解析BLAST结果了,确实很好很强大。具体如何使用,各位可以摸索一下,非常简单。
希望各位战友将自己的经验分享以将blast越用越好。附:以下来自于网友
个人在使用blastn的过程中总结了一些自认为常用的参数,总结如下:
blastn-dbdatabase_name-queryinput_file-outoutput_file-evalueevalue-max_target_seqsnum_sequences-num_threadsint_value-outfmtformatformat_string
blastn-dbdatabase_name-queryinput_file-outoutput_file-evalueevalue-max_target_seqsnum_sequences-num_threadsint_value-outfmtformat"7qaccsaccevaluelengthpident"
例如:

blastn-dbplant_rna-querytest.fa-outtest.out-evalue0.00001-max_target_seqs5-num_threads4-outfmtformat"7qaccsaccevaluelengthpident"
blastn:这个不用说了吧,核酸对核酸的比对-db:指定blast搜索用的数据库,详见上篇文章-query:用来查询的输入序列,fasta格式-out:输出结果文件-evalue:设置ecutoff
-max_target_seqs:设置最多的目标序列匹配数(以前我都用-b5-v5,理解不对请指教)-num_threads:指定多少个cpu运行任务(依赖于你的系统,同于以前的-a参数)
-outfmtformat"7qaccsaccevaluelengthpident":这个是新BLAST+中最拉风的功能了,直接控制输出格式,不用再用parser啦,7表示带注释行的tab格式的输出,可以自定义要输出哪些内容,用空格分格跟在7的后面,并把所有的输出控制用双引号括起来,其中qacc查询序列的acc,sacc表示目标序列的accevalue即是e值,length即是匹配的长度,pident即是序列相同的百分比,其他可用的特征(红色字体)如下:
***Formattingoptions-outfmt
alignmentviewoptions:0=pairwise,
1=query-anchoredshowingidentities,2=query-anchorednoidentities,
3=flatquery-anchored,showidentities,4=flatquery-anchored,noidentities,5=XMLBlastoutput,6=tabular,
7=tabularwithcommentlines,8=TextASN.1,9=BinaryASN.1
10=Comma-separatedvalues
Options6,7,and10canbeadditionallyconfiguredtoproduceacustomformatspecifiedbyspacedelimitedformatspecifiers.Thesupportedformatspecifiersare:qseqidmeansQuerySeq-idqgimeansQueryGI
qaccmeansQueryaccesionsseqidmeansSubjectSeq-id
sallseqidmeansAllsubjectSeq-id(s,separatedbya';'sgimeansSubjectGI
sallgimeansAllsubjectGIssaccmeansSubjectaccession
sallaccmeansAllsubjectaccessionsqstartmeansStartofalignmentinqueryqendmeansEndofalignmentinquerysstartmeansStartofalignmentinsubjectsendmeansEndofalignmentinsubjectqseqmeansAlignedpartofquerysequencesseqmeansAlignedpartofsubjectsequenceevaluemeansExpectvaluebitscoremeansBitscorescoremeansRawscore
lengthmeansAlignmentlength

pidentmeansPercentageofidenticalmatchesnidentmeansNumberofidenticalmatchesmismatchmeansNumberofmismatches
positivemeansNumberofpositive-scoringmatchesgapopenmeansNumberofgapopeningsgapsmeansTotalnumberofgaps
pposmeansPercentageofpositive-scoringmatches
framesmeansQueryandsubjectframesseparatedbya'/'qframemeansQueryframesframemeansSubjectframe
Whennotprovided,thedefaultvalueis:
'qseqidsseqidpidentlengthmismatchgapopenqstartqendsstartsendevaluebitscore',whichisequivalenttothekeyword'std'Default=`0'


新版blast2.2.24+本地化及本地数据库构建

相关推荐