blast本地化:格式化数据库(formatdb详解)
(2010-07-27 09:45:42)
标签:
it |
分类: bioinformatics |
转载地址:http://boyun.sh.cn/bio/?p=1483
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)
b)
c)
该命令会创建一个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 1836LENGTH 640724d)
–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文件:
(通过上面的几个例子,大家一定对.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 100000000formatdb的日志文件
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

加载中…