blastdbcmd,makeblastdb,blastn.使用簡介
1 blastdbcmd
作用: Retrieves sequences or other information from a BLAST database
它相當于以前的fastacmd.利用這個命令,可以從blast數據庫中獲得你想要的信息:
例子0:
`blastdbcmd?-db?refseq_rna?-info`
`blastdbcmd -db refseq_rna -info`
可以查看數據庫refseq_rna的信息
例子1:
`blastdbcmd?-db?refseq_rna?-entry?224071016?-outtest.fa`
`blastdbcmd -db refseq_rna -entry 224071016 -out test.fa`
可以從數據庫中提取除gi號為224071016的序列,并且以fasta格式存入文件(當然也可以以其它格式獲得序列)
注:
gi ID是許多用來標志序列的標識符中的一種.是數據庫文件中普遍使用,通行有效的保持索引的形式。所有來源于NCBI的序列都有一個gi號“gi|gi_identifier”.是絕對唯一的,而自己利用makeblastdb命令 構建的數據庫中,利用以下三種標識符:
gnl|database|identifier
lcl|identifier
identifier
這些標識符的作用是區別于gi號在本數據庫中,使得序列標識符唯一在查詢和比對中分辨query序列與subject序列,
更加詳細的參數參照 blastdbcmd -help
2 makeblastdb
makeblastdb?-ininput_file?-dbtype?molecule_type?-input_type?type_string?-title?database_title?-parse_seqids?-outdatabase_name?-logfile?File_Name
makeblastdb -in input_file -dbtype molecule_type -input_type type_string -title database_title -parse_seqids -out database_name -logfile File_Name
-in 后接輸入文件,你要格式化的序列
-dbtype 后接序列類型,nucl為核酸,prot為蛋白
-title 給數據庫的別名
-input_type 給出輸入文件的序列格式.
-parse_seqids 將序列分列
-out 后接數據庫名,自己起一個有意義的名字,以后blast+搜索時要用到的-db的參數
-logfile 日志文件,如果沒有默認輸出到屏幕
更加詳細的參數參照 makeblastdb -help
3 blastn簡單介紹
作用: 核苷酸序列的比對以及結果分析
例子0: 最簡單的使用格式
```
blastn?-query?test_query.fa?-db?refseq_rna?-outtest_results
blastn -query test_query.fa -db refseq_rna -out test_results
```
例子1:
```
blastdbcmd?-db?refseq_rna?-entry?nm_000249?-outtest_query.fa
blastn?-query?test_query.fa?-db?refseq_rna?-task?blastn?-dust?no?-outfmt?7?-num_alignments?2?-num_descriptions?2
blastdbcmd -db refseq_rna -entry nm_000249 -out? test_query.fa
blastn -query test_query.fa -db refseq_rna -task blastn -dust no -outfmt 7 -num_alignments 2 -num_descriptions 2
```
-task 規定搜索采用的策略:可選為'blastn' 'blastn-short' 'dc-megablast'??'megablast' 'vecscreen'. 默認為`megablast'
例子2: 常用的格式:
blastn?-db?database_name?-query?input_file?-outoutput_file?-evalue?evalue?-max_target_seqs?num_sequences?-num_threads?int_value?-outfmt"7?qacc?sacc?evalue?length?pident"
blastn -db database_name -query input_file -out output_file -evalue evalue -max_target_seqs num_sequences -num_threads int_value -outfmt "7 qacc sacc evalue length pident"
-evalue 預期的從hit篩選hsp的閾值
-outfmt 選擇性輸出的一些內容. 如 : 7 代表查詢結果表格化并且帶有注釋行. 而 qacc 以及 sacc等則是自定義的所需的信息.可供選擇的信息選項詳見 -outfmt參數.-outfmt直接觸發分析程序,而不用另外使用分析程序了.
更加詳細的參數參照 blastn -help
經過觀察發現: 用于blastn的query序列使用 fasta格式即可. 而數據庫則不能直接使用fasta格式.而且數據庫實際上是一個文件夾,而非單個文件.
可以使用makeblastdb將fasta格式的文件轉化為數據庫
另一方面可以用blastdbcmd從數據庫中獲取信息
makeblastdb,blastdbcmd,blastn使用示例:
現有fasta文件test.fasta
注意:自己生成的數據庫中序列命名有以下三種形式:
a) > gnl|database|identifier
b) > lcl|identifier
c) ?> identifier
1 makeblastdb使用示例:
1)用命令將test.fasta轉化為數據庫test_db:makeblastdb -in test.fasta -dbtype nucl -title ctjsw -parse_seqids -out test_db
```
ctjsw@xps:~/blast-lastest$?makeblastdb?-intest.fasta?-dbtype?nucl?-title?ctjsw -parse_seqids?-outtest_db
ctjsw@xpsp:~/blast-lastest$ makeblastdb -in test.fasta -dbtype nucl -title ctjsw -parse_seqids -out test_db
```
2)格式化數據庫后,創建三個主要的文件——庫索引(indices),序列(sequences)和頭(headers)文件。生成的文件的擴展名分別是:.pin、.psq、.phr(對蛋白質序列)或.nin、.nsq、.nhr(對核酸序列)。而其他的序列識別符和索引則包含在.psi和.psd(或.nsi和.nsd)中。
該示例是核苷酸所以生成的數據庫文件是: .nin , .nsq ,nhr , .nsi ,.nsd ,.nog
2 blastdbcmd使用示例
```
ctjsw@xps:~/blast-lastest$ blastdbcmd -db test_db -info
ctjsw@xps:~/blast-lastest$ blastdbcmd -db test_db -info
```
Database: nr
3 sequences; 1,029 total bases
Date: May 19, 2011 ?5:56 PM Longest sequence: 389 bases
Volumes: ?/home/ctjsw/blast-lastest/test_db
2)從test_db中抽取一段 數據庫的序列(seq1),并以fasta形式顯示
```
$ctjsw@xps:~/blast-lastest$ blastdbcmd -db test_db -entry seq1
$ctjsw@xps:~/blast-lastest$ blastdbcmd -db test_db -entry seq1
```
>lcl|seq1
ATGTTCAACGCGAAGAACGGTTTTTCTGAGGCACACGTGAGGGGATGTCAGACCAAACGACTCACCAAACAGAACTACGC
CGAACTTTCTCGATGTGACACGTTGGAAGACATCAAGACGTACTTGCAAACGATGAGTGATTATTCAGAATATGTTCGTG
ATCTTCAAGCGCCAGTGAGACCGGTTGACATTATTGAATGCTGCAGAAAGAGACAGATCGCAGAGTTTAATATTTGCTGT
CAGCAGGCTTCTTCCCCTTTGTCCAATTTTTTGGAGTATTTGACGTACGGATACATGATCGATAATCTTGTGTTGGCTTT
test_db是自定義的數據庫.利用自己的標識符"seq1",可以成功抽取了在數據庫中標識符為 lcl|seq1 的序列.
在使用下載的數據庫時同樣可以使用gi ID 抽取序列.
3)將抽取的序列以fasta格式保存到 test_query文件
```
ctjsw@xps:~/blast-lastest$ blastdbcmd -db test_db -entry seq1 -out test_query
ctjsw@xps:~/blast-lastest$ blastdbcmd -db test_db -entry seq1 -out test_query
```
1)利用上面生成 fasta格式的 test_query與 自定義的數據庫 test_db進行比對.
```
ctjsw@xps:~/blast-lastest$ blastn -query test_query -db test_db
ctjsw@xps:~/blast-lastest$ blastn -query test_query -db test_db
```
```
ctjsw@xps:~/blast-lastest$ blastn -query test_query -db test_db -task blastn -dust no -outfmt 7 -num_alignments 2 -num_descriptions 2
ctjsw@xps:~/blast-lastest$ blastn -query test_query -db test_db -task blastn -dust no -outfmt 7 -num_alignments 2 -num_descriptions 2
```
# 1 hits found
lcl|seq1 seq1 100.00 320 0 0 1 320 1 320 2e-169 578