注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

wangyufeng的博客

祝愿BB 健康开心快乐每一天

 
 
 

日志

 
 

BLSAT本地化完全教程  

2010-11-13 10:57:08|  分类: 生物信息分析 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Setp1: Blast软件下载与安装

1.对于windows 2000/xp 用户,下载blast-2.2.18-ia32-win32.exe安装文件
ftp://ftp.ncbi.nlm.nih.gov/blast/executables/LATEST/blast-2.2.18-ia32-win32.exe

2.创建一个新目录,例如C:\blast,将下载的文件blast-2.2.18-ia32-win32.exe复制到该目录,双击这个文件,自 解压产生bin、data、doc三个目录,bin是程序目录,data是程序使用数据的目录,doc是文档目录。

表:bin目录中的程序

程序

说明

bl2seq.exe 进行两条序列比对
blastall.exe 做普通的blast比对
blastclust.exe  
blastpgp.exe  
copymat.exe  
fastacmd.exe 通过gi号,接收号等,在数据库中检索序列
formatdb.exe 格式化数据库
formatrpsdb.exe  
impala.exe  
makemat.exe  
megablast.exe megablast程序
rpsblast.exe  
seedtop.exe  

3.用文本编辑器创建一个ncbi.ini文件,文件包含下面内容:

[NCBI]
Data="C:\blast\data\"

将ncbi.ini文件存放到系统的Windows 或者 WINNT目录。

4.将”C:\blast\bin”目录添加路径中(该步骤非必须,但会给以后的操作带来方便),方法:
1)右击我的电脑选择属性,选择高级,点击环境变量,

设置环境变量

设置环境变量

2)系统变量中,选择Path,点击“编辑”,在变量值的后面添加“; C:\blast\bin”,点击确定

将安装路径添加到path

将 安装路径添加到path

5.测试,打开dos窗口(点击开始,选择运行,打开的输入框中输入“cmd”,确定),键入“blastall”,回车,如果安装正确,将显示 blastall的所有参数说明。

安装测试

安装测试

注意:

  • 如果报错:“‘blastall’不是内部或外部命令,也不是可运行的程序或批处理文件。”,请检查环境变量设置,或者切换到安装目录的bin目 录下,再执行。
  • 如果报错:“FATAL ERROR: FindPath failed.”,请检查ncbi.ini文件。
Step2: 构建自己的搜索数据库
blast数据库指包含fasta格式的核苷酸或者蛋白质序列的文件,有三种方式得到fasta格式的序列。

1 从NCBI的FTP下载相关的数据库文件

FTP地址:ftp://ftp.ncbi.nih.gov/blast/db/, 如果你仅是一个测试,请下载一个较小的文件作为例子,例如下载大肠杆菌的核酸序列库——ecoli.nt.Z (1349 Kb)。FTP上的数据库文件都经过了压缩,有关每个文件的含义,请看该目录下说明文件(ftp://ftp.ncbi.nih.gov/blast/db/blastdb.html ),下表FASTA目录下文件的说明:

文件名 大小(kb) 内容
alu.a.gz 90 alu重复序列的转录的蛋白质
alu.n.gz 24 alu重复序列
drosoph.aa.gz 4183 果蝇的蛋白质序列 
drosoph.nt.gz 36059 果蝇基因组组序列
env_nr.gz 806964 环境蛋白质序列
env_nt.gz 2298189 环境核酸序列
est_human.gz 1395676 人的EST序列
est_mouse.gz 774668 老鼠的EST序列
est_others.gz 7360044 除人和老鼠以外的其他物种的EST序列
gss.gz 4772615 来源于GenBank, EMBL, and DDBJ的GSS序列
htg.gz 6148203 来源于GenBank, EMBL, and DDBJ的高通量基因组测序序列
human_genomic.gz 2509222 人类基因组序列(NC_######)
igSeqNt.gz 18900 人和老鼠的免疫球蛋白可变区的核酸序列
igSeqProt.gz 3072 人和老鼠的免疫球蛋白可变区的蛋白质序列
mito.aa.gz 316 线粒体蛋白质序列
mito.nt.gz 935 线粒体基因组
month.aa.gz 50009 每月更新的蛋白质序列
month.est_human.gz 1 每月更新的人的EST序列
month.est_mouse.gz 1 每月更新的老鼠的EST序列
month.est_others.gz 237790 每月更新的其他物种的EST序列
month.gss.gz 71872 每月更新的GSS序列
month.htgs.gz 238921 每月更新的htgs序列
month.nt.gz 54904 每月更新的核酸序列
nr.gz 1512614 来源于GenPept, Swissprot, PIR, PDF, PDB, and RefSeq的非冗余蛋白质序列
nt.gz 6619394 除wgs, gss, sts, pat, est, htg以外的核酸序列,注意不是非冗余的
other_genomic.gz 1066358 人以外的其他物种的染色体序列(NC_######)
pataa.gz 65344 专利的蛋白质序列
patnt.gz 890761 专利的核酸序列
pdbaa.gz 7541 来源于pdb蛋白质结构数据库中的蛋白质序列
pdbnt.gz 269 来源于pdb的核苷酸序列
sts.gz 159256 STS序列
swissprot.gz 86939 swiss-prot 蛋白质序列
vector.gz 812 载体序列
wgs.gz 31769282 全基因组shotgun拼接序列
yeast.aa.gz 1906 酵母蛋白质序列
yeast.nt.gz 3645 酵母基因组序列

注:更新时间为2008-5-26

2 从搜索结果构建数据库

通过NCBI提供的数据库搜索引擎,选择相关数据库进行搜索,将得到的结果保存为fasta格式,作为blast比对用的数据库。以建立一个G蛋白 基因核苷酸数据库为示:
1)打开http://www.ncbi.nlm.nih.gov/ 主页,选择核苷酸数据库(Nucleotide),输入“G protein”,点击“Go”,开始搜索

在NCBI执行搜索

在 NCBI执行搜索

2)搜索到结果页面中,在Display的下拉框中选择FASTA

切换为fasta格式

切换为 fasta格式

3)在Send to的下拉菜单,选择file

选择file进行保存

选择 file进行保存

4)将结果保存到磁盘

保存到磁盘

保存到磁盘

3 由测序结果直接构建自己的数据库

测序结果,经过处理(比如去除载体、重复序列、拼接等)后,然后将结果转换为fasta格式。自己构建的数据库,数据库中fasta格式序列命名有 以下三种方式:

  • a) gnl|database|identifier
  • b) lcl|identifier
  • c) identifier

identifier为你指定的序列名称,dababase为你要指定的数据库的名称(详细的说明参见fasta序列格式

Step3: 格式化数据库(formatdb详解)

构建的fasta格式的数据库文件必须被formatdb格式化后,才能被blastall、blastpgp、MegaBLAST使用。数据库文 件也可以是ASN.1格式,但较少用到,所以下面还是主要以FASTA格式为例。

formatdb格式化数据库后,创建三个主要的文件——库索引(indices),序列(sequences)和头(headers)文件。生成 的文件的扩展名分别是:.pin、.psq、.phr(对蛋白质序列)或.nin、.nsq、.nhr(对核酸序列)。另外,为便于查找还有一些ISAM 索引文件同时生成:.pni和.pnd(或.nni和.nnd)文件,其中的数字索引只包含gi号;而其他的序列识别符和索引则包含在.psi 和.psd(或.nsi和.nsd)中。

1.1.1.    参数说明

表:formatdb命令的参数说明

参数 说明 默认值 备注
-t 数据库的标题【可选】 字符    
-i 需要创建数据库的文件名 文件名    
-l 日志文件名 文件名 formatdb.log  
-p 文件数据类型 [T/F] T T – 蛋白质F – 核苷酸
-o 解析选项 [T/F] F T表示解析序列文件并产生索引文件,F则不解析
-a 数据库文件是否为ASN.1格式 [T/F] F T为是ASN.1格式
-b ASN.1的模式 [T/F] F T为二进制,F为文本模式
-e ASN.1数据库的序列数 [T/F] F T表示数据库中只有一条序列
-n 重命名数据库文件的名称 字符窜    
-v 数据库卷的大小 整数 0 单位:兆字符
-s 限制索引的类型 [T/F] F T为仅用接收号创建索引
-L 创建数据库别名 输出文件名    
-F Gi列表的文件名 输入文件   配合-L使用
-B 生成的Gi二进制的文件名 输出文件   配合-F使用

1.1.2.    使用示例与说明

格式一个蛋白质数据库

formatdb -i protein_db_file_name -p T –o T

格式一个核酸数据库

formatdb -i protein_db_file_name -p T –o T

用指定的Gi列表生成一个子数据库

如果经常搜索一个数据库的子集,比如一个核酸库中的家蚕的序列或者蛋白库中的G蛋白序 列,可以用这些序列的gi号来限制搜索的范围,而没有必要重新构建这样的数据库,这样即加快了查询速度,又避免另外的磁盘开销。这里以昆虫核酸数据库的限 定家蚕的序列为例子:

a)  获得家蚕序列的gi号,可以从文章或者数据库中检索得到。将gi号保存到一个文本文件中,这里命名为“silkworm.gi.txt”;

b)  利用formatdb程序将这个文本文件,转变为二进制文件;

    formatdb -F silkworm.gi.txt -B silkworm.gi

c)  调用formatdb创建别名文件

formatdb -i insects -p T -L silkworm -F silkworm.gi -t "My silkworm database"

该命令会创建一个silkworm.pal文件,包含silkworm数据库的标题,限 制的gi号文件,及其他一些统计信息,如下:

#
# Alias file created Thu Jul 5 15:04:29 2001
#
#
TITLE My database
#
DBLIST ../blast/insects
#
GILIST silkworm.gi
#
#OIDLIST
#
NSEQ 1836
LENGTH 640724

d)  搜索家蚕数据库

   blastall -p blastn -d silkworm -i MYQUERY -o MYOUTPUT

 –o参数的使用

下列情况下,“-o”必须设置为TRUE:

  • a) 使用blastall 或者blastpgp程序,产生的结果为ASN.1格式时;
  • b) blast比对中,“-m”参数设置为非零的值;
  • c) blast比对中,使用“-I”参数,blast结果生成gi列表时;
  • d) 使用fastacmd程序,用接收号或者gi号从数据库中取出序列时。

从NCBI FTP服务器上下载的数据库,或者能保证数据库中的fasta序列都有唯一标识符的数据库,格式数据库时,建议将-o参数设置为TRUE。

超大数据库的格式化

一个单独的blast数据库最大只能为4G,如果格式的数据库大于4G,在“-v”参数 未设置的情况下,farmatdb程序会自动对数据库分卷,每卷最大为4G。可以使用“-v”参数设置卷的大小,比如下面命令将卷的大小设置为2G:

formatdb -i hugefasta -p F -v 2000000000

卷的命名规则是,原数据库的名称加两个数字的卷号扩展名,使用数据库时,还是使用原来的 数据库名称:

blastall -i infile -d hugefasta -p blastn -o out

其实,blast程序是根据文件名为数据库名加扩展名为“nal”(对于蛋白质数据库扩 展名为“pal”)的文件来判断要搜索的数据库的,如上例中,是根据文件“hugefasta.nal”来确定分卷的数据库。“.nal”或“.pal” 文件的格式为:

#
# Alias file created Tue Jan 18 13:12:24 2000
#
#
TITLE hugefasta
#
DBLIST hugefasta.00 hugefasta.01 hugefasta.02
#
#GILIST
#
#OIDLIST
#

其中TITLE行定义数据库的标题,DBLIST定义要搜索的数据库名称,数据库名称用空格分开。用户如果要同时搜索多个数据库,可以按照上面文件 的格式,用文本编辑器创建类似的文件,文件名就是数据库的名称,如果是核苷酸数据库,就加“.nal”后缀,如果是蛋白质数据库就加“.pal”后缀。 DBLIST行放入数据库的名称,这样可以像使用其他数据库一样使用这个数据库。例如创建一个”multi.nal”文件,内容如下:
#
# Alias file created Tue Jan 18 13:12:24 2000
#
#
TITLE multi
#
DBLIST part1 part2 part3
#
#GILIST
#
#OIDLIST
#

他包含part1,part2,part3三个数据库,如下命令,对该数据库进行blast

blastall -i infile -d multi -p blastn -o out

数据库的路径问题

如果你的数据库和工作目录不在同一个目录,或者你在几个目录下处理数据,并且对于数据库的需求也同,比如一个家蚕数据处理,一个是果蝇的数据处理, 这时你可以用“-n”参数在工作目录下创建一个数据库别名文件,这样可以避免指定数据库是带入冗长的目录:

formatdb -i insects -n ../blast/insects -p T -L wilkworm -F silkworm.gi -t "My database"

这时,会生成类似与下面内容的silkworm.pal文件:

 

#

# Alias file created Thu Jul  5 15:04:29 2001

#

#

TITLE My database
#
DBLIST ../blast/insects
#
GILIST silkworm.gi
#
#OIDLIST
#
NSEQ 1836
LENGTH 640724

(通过上面的几个例子,大家一定对.pal文件有了深入的了解,就可以用文本编辑器,编写这个文件,灵活订制数据库,使搜索变得更方便) 

格式化自定的数据库

 如果是自己构建的数据库,数据库中fasta格式序列命名有以下三种方式:

  • a)  gnl|database|identifier
  • b)  lcl|identifier
  • c)  identifier

identifier为你指定的序列名称,dababase为你要指定的数据库的名称(详细的说明参见fasta序列格式章节)。如果要使用“-o T”设置,序列的名称应该唯一,不能重复。

UNIX或linux下压缩文件不经解压直接格式数据库

uncompress -c nt.Z|formatdb -i stdin -o T -p T -n "nt" -v 100000000

formatdb的日志文件

formatdb会默认生成一个名称为formatdb.log的日志文件,记录数据库生成的时间,及其程序运行的结果。运行程序后,读一下日志文 件是很好的习惯,以确保数据库正确格式化。也可以通过“-l”参数指定日志文件。

命令举例:

formatdb-t “E. coli genome”-i U00096.fna -p F -o T -n ecoli

formatdb-t “Clusters of OrthologusGroups”-i COGsDB

formatdb-t “Non-Redundant Protein Database”-i nr -o T


用blastall进行序列比对

blastall是最常用的blast程序之一,其功能非常强大,其下面有非常多的参数,但是一般使用的参数如:-p、-i、-d、-o、-e等几 个。

  • -p: 执行的程序名称
  • -d: 搜索的数据库名称
  • -i : 要查询的序列文件名(Query File)
  • -e:(数学)期望值(Expectation value),E值是个统计阈值,缺省值10, 意指比对结果中由于随机偶然性产生的匹配结果不大于10,E值越小结果越可靠。
  • -o :查询结果输出文件名
  • -m: 比对结果显示格式选项,缺省值为0 ,即pairwise格式。另外还可以根据不同的需要选择1~6等不同的格式。
  • -I :在描述行中显示gi号[T/F],缺省值F
  • -v :单行描述(one-line description)的最大数目,缺省值500
  • -b :显示的比对结果的最大数目,缺省值250
  • -F :对于要查询的序列做低复杂度区域(low complexity regions, LCR)的过滤[T/F],缺省值T。对blastn用的是DUST程序,其他比对用的是SEG程序。
  • 所谓“低复杂度区域”是指某些或一些残基过多表现,短周期重复等。对于高等哺乳动物的基因组序列,可以先用RepeatMask程序遮蔽重复元 件。在输出结果中,对LCR区的序列核酸用“N”代替,蛋白质序列用“X”代替。
  • -a:运行BLAST程序所使用的处理器的数目,缺省值1
  • -S:在数据库中搜索时所使用的核酸链(strand),只对blastn、blastx和tblastx有效;1表示top,2表示 bottom,3表示both;缺省值3
  • -T: 产生HTML格式的输出[T/F],缺省值F
  • -n: 使用MegaBlast搜索[T/F],缺省值F
  • -G: 打开一个gap的罚分(0表示使用缺省设置值),默认0
  • -E: 扩展一个gap的罚分(0表示使用缺省设置值),默认0
  • -q: 一个核酸碱基的错配(mismatch)的罚分(只对blastn有效),缺省值-3
  • -r : 一个核酸碱基的正确匹配(match)的奖分(只对blastn有效),缺省值1
  • -M: 所使用的打分矩阵,缺省值BLOSUM62

1.1.1.    参数说明

基本参数、比对优化参数、结果输出参数、控制输入参数

表:blastall命令的参数说明

参数 说明 默认值 备注
-p 使用的程序 字符[String]   blastnblastpblastx

tblastn

tblastx

-d 使用的数据库 文件名[File In] nr  
-i 搜索用的序列 文件名[File In] stdin  
-e 期望值 数字[Real] 10.0  
-m 控制比对结果的样式 0到11的整数[Integer] 0 0 = pairwise,1 = query-anchored showing identities,2 = query-anchored no identities,

3 = flat query-anchored, show identities,

4 = flat query-anchored, no identities,

5 = query-anchored no identities and blunt ends,

6 = flat query-anchored, no identities and blunt ends,

7 = XML Blast output,

8 = tabular,

9 tabular with comment lines

10 ASN, text

11 ASN, binary

-o 比对结果存放的文件名 文件名[File Out] stdout  
-F 过滤询问序列 [String] T DUST with blastn, SEG with others
-G 打开gap得分 [Integer] -1  
-E 延伸gap得分 [Integer] -1  
-X X dropoff value for gapped alignment (in bits) [Integer] 0 blastn 30, megablast 20, tblastx 0, all others 15
-I 显示gi号Show GI’s in deflines [T/F] F  
-q 核酸错配罚分 [Integer] -3 blastn only
-r 核酸匹配得分 [Integer] 1 blastn only
-v Number of database sequences to show one-line descriptions for (V) [Integer] 500  
-b Number of database sequence to show alignments for (B) [Integer] 250  
-f Threshold for extending hits [Integer] 0 blastp 11, blastn 0, blastx 12, tblastn 13, tblastx 13, megablast 0
-g Perform gapped alignment [T/F] T not available with tblastx
-Q 指定询问序列使用的遗传密码 [Integer] 1  
-D 指定数据使用的遗传密码 [Integer] 1 for tblast[nx] only
-a 使用CPU的数目 [Integer] 1  
-O SeqAlign file [File Out]   可选
-J Believe the query defline [T/F] F  
-M 比对使用的矩阵 [String] BLOSUM62  
-W Word size [Integer] 0 blastn 11, megablast 28, all others 3
-z 数据库的有效长度Effective length of the databas [Real] 0 use zero for the real size
-K Number of best hits from a region to keep [Integer] 0 off by default, if used a value of 100 is recommended
-P 0 for multiple hit, 1 for single hit [Integer] 0 does not apply to blastn
-Y Effective length of the search space [Real] 0 use zero for the real size
-S Query strands to search against database [Integer] 3 for blast[nx], and tblastx, 3 is both, 1 is top, 2 is bottom
-T 将结果保存为HTML格式 [T/F] F  
-l 通过gi号列表,限制搜索范围 [String] Optional  
-U Use lower case filtering of FASTA sequence [T/F] Optional  
-y X dropoff value for ungapped extensions in bits [Real] 0.0 0.0 invokes default behavior blastn 20, megablast 10, all others 7
-Z X dropoff value for final gapped alignment in bits [Integer] 0 blastn/megablast 50, tblastx 0, all others 25
-R PSI-TBLASTN checkpoint file [File In] Optional  
-n MegaBlast search [T/F] F  
-L Location on query sequenc [String] Optional  
-A Multiple Hits window size [Integer] 0 default if zero (blastn/megablast 0, all others 40)
-w Frame shift penalty [Integer] 0 OOF algorithm for blastx
-t Length of the largest intron allowed in a translated nucleotide sequence when linking multiple distinct alignments [Integer] 0 0 invokes default behavior; a negative value disables linking.
-B Number of concatenated queries [Integer] 0 for blastn and tblastn
-V Force use of the legacy BLAST en gine [T/F] F Optional
-C Use composition-based statistics for tblastn [String] D D or d: default (equivalent to F)      0 or F or f: no composition-based statistics      1 or T or t: Composition-based statistics as in NAR 29:2994-3005, 2001

      2: Composition-based score adjustment as in Bioinformatics 21:902-911,

          2005, conditioned on sequence properties

      3: Composition-based score adjustment as in Bioinformatics 21:902-911,

          2005, unconditionally

      For programs other than tblastn, must either be absent or be D, F or 0.

-s Compute locally optimal Smith-Waterman alignments [T/F] F This option is only      available for gapped tblastn.

1.1.2.    使用说明与示例

程序使用说明

程序名 搜索序列 数据库 说明 备注
blastn 核酸 核酸 用核酸序列搜索核酸数据库  
blastp 蛋白质 蛋白质 用蛋白质(氨基酸)序列搜索蛋白质数据库 寻找较高分值的匹配,对较远关系的不太适用
blastx 核酸 蛋白质 用核酸双链序列理论上的六种框架的所有翻译结果搜索蛋白质数据库,用于新的序列和ESTs的 分析 转译搜索序列
tblastn 蛋白质 核酸 用搜索的蛋白质和数据库中核酸的 用于寻找数据库中没有标注的编码区
tblastx 核酸 核酸    

  比对命令示例

blastall-p blastn-i U00096.ffn -d ecoli-o U00096_Vs_ecoli_blastn.out -F F

blastall-p blastp-i U00096.faa -d nr -o U00096_Vs_NR_blastp.htm -e 0.01 -b 1 -v 1 -T T

blastall-p blastx-i U00096.ffn -d nr -o U00096_Vs_NR_blastx.htm -e 1e-5 -b 1 -v 1

后续:blast服务器的构建

Blast本地化时,如果如果需要比对nr、nt库等,数据库比较大,数据库比较多时,每一台个人电脑上安装,是非常浪费资源的,再者如果做比较多 的运算时,也会影响到个人对电脑的需求,所以对于一个实验室或者研究小组构建自己Blast服务器是一个很好的选择。

构建Blast服务,有很多的选择,比如:

  • linux系统,安装普通的Blast程序,使用SSH登陆,共享系统;
  • windows 2003系统,安装普通Blast程序,使用远程桌面,来进行共同使用;
  • linux系统,安装Blast的WWW程序,建立web服务;
  • 自己开发web服务,调用Blast;

需要更具团队背景、使用需求以及管理人员的技术储备来选择不同的方式。我的推荐是使用linux,安装Blast的www程序,这样的技术障碍就是 linux下软件的安装问题,没有开发任务,因为都是Blast自身的东西,大家就像使用NCBI的Blast一样,不会增加任何的学习成本。

下面的这几篇文章介绍如何构建Blast服务:


本文收集整理自:http://boyun.sh.cn/

  评论这张
 
阅读(5007)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017