串行的blast+2.2.25本地化系列: blastdbcmd,makeblastdb,blastn.使用簡介
-----------------------------------------------------------------------
blast+中有許多命令.
blastdbcmd,makeblastdb是處理數據庫較爲常用的命令
blastn是核苷酸與核苷酸比對的命令.
以下結果來自 blast+ 2.2.25,
運行平臺是 ubuntu 10.04
GCC 4.4.3
------------------------------------------------------------------------
1 blastdbcmd
- 作用: Retrieves sequences or other information from a BLAST database
它相當於以前的fastacmd.利用這個命令,可以從一個blast數據庫中獲得你想要的信息:
一般的使用如:
例子0:blastdbcmd -db refseq_rna -info
可以查看數據庫refseq_rna的信息
例子1:
可以從數據庫中提取除gi號爲224071016的序列,並且以fasta格式存入文件(當然也可以以其它格式獲得序列)
- 注:
gi ID是許多用來標誌序列的標識符中的一種.是數據庫文件中普遍使用,通行有效的保持索引的形式.
所有來源於NCBI的序列都有一個gi號“gi|gi_identifier”.是絕對唯一的.
而自己利用makeblastdb命令 構建的數據庫中,利用以下三種標識符
- gnl|database|identifier
- lcl|identifier
- identifier
這些標識符的作用是
- 區別於gi號
- 在本數據庫中使得序列標識符唯一
- 在查詢和比對中分辨query序列與subject序列
- 更加詳細的參數參照 blastdbcmd -help
------------------------------------------------------------------------------------------
2 makeblastdb
- 作用: Formats input FASTA file(s) into a BLAST database
顧名思義,它的作用是將各種格式的文件轉換爲一個可供blast算法使用的blast數據庫
- 一般的使用如:
-in 後接輸入文件,你要格式化的序列
-dbtype 後接序列類型,nucl爲核酸,prot爲蛋白
-title 給數據庫的別名
-input_type 給出輸入文件的序列格式.
-parse_seqids 將序列分列
-out 後接數據庫名,自己起一個有意義的名字,以後blast+搜索時要用到的-db的參數
-logfile 日誌文件,如果沒有默認輸出到屏幕
- 更加詳細的參數參照 makeblastdb -help
----------------------------------------------------------
3 blastn簡單介紹
- 作用: 核苷酸序列的比對以及結果分析
- 例子0: 最簡單的使用格式
- 例子1:
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 -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文件的格式,形如:
> identifier1
ATCG...ATCG
>identifier2
ATCG...ATCG
...
...
...
> identifier3
ATCG...ATCG
****/
現有fasta文件test.fasta如下:
>seq1
ATGTTCAACGCGAAGAACGGTTTTTCTGAGGCACACGTGAGGGGATGTCAGACCAAACGACTCACCAAACAGAACTACGC
CGAACTTTCTCGATGTGACACGTTGGAAGACATCAAGACGTACTTGCAAACGATGAGTGATTATTCAGAATATGTTCGTG
ATCTTCAAGCGCCAGTGAGACCGGTTGACATTATTGAATGCTGCAGAAAGAGACAGATCGCAGAGTTTAATATTTGCTGT
CAGCAGGCTTCTTCCCCTTTGTCCAATTTTTTGGAGTATTTGACGTACGGATACATGATCGATAATCTTGTGTTGGCTTT
>seq2
AAATGGCATGCTTCGTGGACGTACCACAGAGGCAATACTTGAGAAGTGTAGCCCCATTGGTTTTTTCGATTCTTTATCCG
CGGTTGTCGTGTCGAGTAGTGTCCAAGAACTCTACAGACTAGCTCTCGTGGATACACCGCTTGCCTCTTATTTCAGTAGC
TCGATTAAGGCAGAAGATCTGGATGAGTTAAATATTGAGCTCATACGGAACGTCCTATACAAGGAATATTTGCAAGATTT
CATGGTTTTCTGCAACAAAATGGATCAAAACACACGTCAATTGATGGAGAAACTACTTAGCATGGAGGCCGATCGGCACG
>seq3
CGATAAGAATCACACTGAACTCTTTCGGAACAGAGCTTTCCAAGGCTGATCGAAGAAATCTTTATACGAATTTTGGCACC
ATGTACCCCGATGGCTTCGCGCGTCTTGCGAATTGTGAAACGGTAGATGAAGTGAAACGCATACTAGTAGCTTATCCAGA
ATTCAGAGAGTTGACGAAAAGTGATGATCCCCACTACATTGACAGGGGACTACGCGTTCTCGAACTGGAAGCATGTGGAC
AAGCACTCGATGAGCAATTCAATTTCGCTATCTTTTATGCTTTCGTAAAGTTTCAGGAGAACGAAATAAACAACCTGATG
TGGCTCACTGAGTGTGTTGCTCAAAGGCAAAAAAGTAGTCTAGGCGAGGGCATTGTCTACATACAATAG
/***
注意:自己生成的數據庫中序列命名有以下三種形式:
a) > gnl|database|identifier
b) > lcl|identifier
c) > identifier
***/
1 makeblastdb使用示例:
1)用命令將test.fasta轉化爲數據庫test_db:makeblastdb -in test.fasta -dbtype nucl -title lidachao -parse_seqids -out test_db
oboyo@oboyo-laptop:~/blast-lastest$ makeblastdb -in test.fasta -dbtype nucl -title lidachao -parse_seqids -out test_db
Building a new DB, current time: 05/19/2011 17:31:55
New DB name: test_db
New DB title: lidachao
Sequence type: Nucleotide
Keep Linkouts: T
Keep MBits: T
Maximum file size: 1073741824B
Adding sequences from FASTA; added 3 sequences in 0.00573689 seconds.
2)格式化數據庫後,創建三個主要的文件——庫索引(indices),序列(sequences)和頭(headers)文件。生成的文件的擴展名分別是:.pin、.psq、.phr(對蛋白質序列)或.nin、.nsq、.nhr(對核酸序列)。而其他的序列識別符和索引則包含在.psi和.psd(或.nsi和.nsd)中。
該示例是核苷酸所以生成的數據庫文件是: nin , nsq ,nhr , .nsi ,.nsd ,.nog
2 blastdbcmd使用示例
1)查看生成的test_db數據庫的信息
- oboyo@oboyo-laptop:~/blast-lastest$ blastdbcmd -db test_db -info
Database: lidachao
3 sequences; 1,029 total bases
Date: May 19, 2011 5:56 PM Longest sequence: 389 bases
Volumes:
/home/oboyo/blast-lastest/test_db
2)從test_db中抽取一段 數據庫的序列(seq1),並以fasta形式顯示
>lcl|seq1
ATGTTCAACGCGAAGAACGGTTTTTCTGAGGCACACGTGAGGGGATGTCAGACCAAACGACTCACCAAACAGAACTACGC
CGAACTTTCTCGATGTGACACGTTGGAAGACATCAAGACGTACTTGCAAACGATGAGTGATTATTCAGAATATGTTCGTG
ATCTTCAAGCGCCAGTGAGACCGGTTGACATTATTGAATGCTGCAGAAAGAGACAGATCGCAGAGTTTAATATTTGCTGT
CAGCAGGCTTCTTCCCCTTTGTCCAATTTTTTGGAGTATTTGACGTACGGATACATGATCGATAATCTTGTGTTGGCTTT
test_db是自定義的數據庫.利用自己的標識符"seq1",可以成功抽取了在數據庫中標識符爲 lcl|seq1 的序列.
在使用下載的數據庫時同樣可以使用gi ID 抽取序列.
3)將抽取的序列以fasta格式保存到 test_query文件
- oboyo@oboyo-laptop:~/blast-lastest$ blastdbcmd -db test_db -entry seq1 -out test_query
3 blastn使用示例.
1)利用上面生成 fasta格式的 test_query與 自定義的數據庫 test_db進行比對.
- oboyo@oboyo-laptop:~/blast-lastest$ blastn -query test_query -db test_db
BLASTN 2.2.25+
Reference: Zheng Zhang, Scott Schwartz, Lukas Wagner, and Webb
Miller (2000), "A greedy algorithm for aligning DNA sequences", J
Comput Biol 2000; 7(1-2):203-14.
Database: lidachao
3 sequences; 1,029 total letters
Query= lcl|seq1
Length=320
Score E
Sequences producing significant alignments: (Bits) Value
lcl|seq1 592 2e-173
>lcl|seq1
Length=320
Score = 592 bits (320), Expect = 2e-173
Identities = 320/320 (100%), Gaps = 0/320 (0%)
Strand=Plus/Plus
Query 1 ATGTTCAACGCGAAGAACGGTTTTTCTGAGGCACACGTGAGGGGATGTCAGACCAAACGA 60
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct 1 ATGTTCAACGCGAAGAACGGTTTTTCTGAGGCACACGTGAGGGGATGTCAGACCAAACGA 60
Query 61 CTCACCAAACAGAACTACGCCGAACTTTCTCGATGTGACACGTTGGAAGACATCAAGACG 120
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct 61 CTCACCAAACAGAACTACGCCGAACTTTCTCGATGTGACACGTTGGAAGACATCAAGACG 120
Query 121 TACTTGCAAACGATGAGTGATTATTCAGAATATGTTCGTGATCTTCAAGCGCCAGTGAGA 180
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct 121 TACTTGCAAACGATGAGTGATTATTCAGAATATGTTCGTGATCTTCAAGCGCCAGTGAGA 180
Query 181 CCGGTTGACATTATTGAATGCTGCAGAAAGAGACAGATCGCAGAGTTTAATATTTGCTGT 240
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct 181 CCGGTTGACATTATTGAATGCTGCAGAAAGAGACAGATCGCAGAGTTTAATATTTGCTGT 240
Query 241 CAGCAGGCTTCTTCCCCTTTGTCCAATTTTTTGGAGTATTTGACGTACGGATACATGATC 300
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct 241 CAGCAGGCTTCTTCCCCTTTGTCCAATTTTTTGGAGTATTTGACGTACGGATACATGATC 300
Query 301 GATAATCTTGTGTTGGCTTT 320
||||||||||||||||||||
Sbjct 301 GATAATCTTGTGTTGGCTTT 320
Lambda K H
1.33 0.621 1.12
Gapped
Lambda K H
1.28 0.460 0.850
Effective search space used: 307764
Database: lidachao
Posted date: May 19, 2011 5:56 PM
Number of letters in database: 1,029
Number of sequences in database: 3
Matrix: blastn matrix 1 -2
Gap Penalties: Existence: 0, Extension: 2.5
2)選定模式進行輸出
- oboyo@oboyo-laptop:~/blast-lastest$ blastn -query test_query -db test_db -task blastn -dust no -outfmt 7 -num_alignments 2 -num_descriptions 2
# BLASTN 2.2.25+
# Query: lcl|seq1
# Database: test_db
# Fields: query id, subject id, % identity, alignment length, mismatches, gap opens, q. start, q. end, s. start, s. end, evalue, bit score
# 1 hits found
lcl|seq1 seq1 100.00 320 0 0 1 320 1 320 2e-169 578
# BLAST processed 1 queries
轉自:http://blog.csdn.net/lidachao1/article/details/6433053