Blast使用

簡介
Blast,全稱Basic Local Alignment Search Tool,即"基於局部比對算法的搜索工具",由Altschul等人於1990年發佈。Blast能夠實現比較兩段核酸或者蛋白序列之間的同源性的功能,它能夠快速的找到兩段序列之間的同源序列並對比對區域進行打分以確定同源性的高低。
Blast的運行方式是先用目標序列建數據庫(這種數據庫稱爲database,裏面的每一條序列稱爲subject),然後用待查的序列(稱爲query)在database中搜索,每一條query與database中的每一條subject都要進行雙序列比對,從而得出全部比對結果。
Blast是一個集成的程序包,通過調用不同的比對模塊,blast實現了五種可能的序列比對方式:
blastp:蛋白序列與蛋白庫做比對,直接比對蛋白序列的同源性。
blastx:核酸序列對蛋白庫的比對,先將核酸序列翻譯成蛋白序列(根據相位可以翻譯爲6種可能的蛋白序列),然後再與蛋白庫做比對。
blastn:核酸序列對核酸庫的比對,直接比較核酸序列的同源性。
tblastn:蛋白序列對核酸庫的比對,將庫中的核酸翻譯成蛋白序列,然後進行比對。
tblastx:核酸序列對核酸庫在蛋白級別的比對,將庫和待查序列都翻譯成蛋白序列,然後對蛋白序列進行比對。
Blast提供了核酸和蛋白序列之間所有可能的比對方式,同時具有較快的比對速度和較高的比對精度,因此在常規雙序列比對分析中應用最爲廣泛。可以毫不誇張的說,blast是做比較基因組學乃至整個生物信息學研究所必須掌握的一種比對工具。
下載
NCBI提供免費下載,網址:ftp://ftp.ncbi.nih.gov/blast/executables/release/,可根據自己得機器選擇相應操作系統的版本。
安裝
直接解壓縮包即可。解壓縮命令:
zcat *.tar.gz | tar xvf -
使用
Blast的運行分爲兩個步驟:第一,建立目標序列的數據庫;第二,做blast比對。
1.運行建庫程序formatdb:
建庫的過程是建立目標序列的索引文件,所用程序是formatdb。程序允許的輸入格式FASTA或者ASN.1格式,通常我們使用FASTA格式的序列作爲輸入。用於建庫的FASTA序列是db.seq,formatdb的基本命令是:
formatdb -i db.seq [-options]
常用的參數有以下幾個:
-p (T/F):-p參數的意義是選擇建庫的類型,"T"表示蛋白庫,"F"表示核酸庫。缺省值爲"T"。
-o (T/F):-o參數的意義是判斷是否分析序列名並建立序列名索引。"T"表示建立序列名索引,"F"表示不建立序列名索引。缺省值爲"F"。
程序輸出:
如果建立的是核酸庫,輸出爲db.seq.nhr、db.seq.nin、db.seq.nsq,如果選擇了參數"-o T",還會同時輸出db.seq.nsd、db.seq.nsi、db.seq.nni、db.seq.nnd。
蛋白庫和核酸庫的輸出類似,相應的輸出文件爲:db.seq.phr、db.seq.pin、db.seq.psq和db.seq.psd、db.seq.psi、db.seq.pni、db.seq.pnd。
除了這些結果,程序還會輸出LOG文件(默認爲formatdb.log),裏面記錄了運行時間、版本號、序列數量等信息。
幾點需要注意的問題:
1、建庫以後,做blast比對的輸入文件就是建庫所得的文件db.seq.n**或者db.seq.p**,而不是原始的FASTA序列。也就是說,建庫以後,原始的序列文件是可以刪除的。
2、如果命令行中選擇了"-o T",並且目標序列中含有gi號重複的的序列名時,程序會停止建庫並報錯。例如,下列序列文件中出現了重複的序列名:
>gi|112385745|gb|DQ859020.1| Oryza sativa (japonica cultivar-group) glutathione S-transferase 2 mRNA, complete cds
ATGGCGGAGGCGGCGGGGGCGGCGGTGGCGCCGGCGAAGCTGGGTCTGTACTCGTACTGGCGGAGCTCGT
GCTCGCACCGCGTCCGCATCGCCCTCAACCTCAAAGGATTGGAGTACGAGTACAAGGCGGTGAACCTGCT
CAAGGGGGAGCACTCTGATCCAGAATTCATGAAGGTTAATCCTATGAAGTTCGTCCCGGCATTGGTCGAT
......
CAAGCAGCACTCCCAGACAGACAACCAGATGCCCCTTCCTCTACCTAG
>gi|112385745|gb|DQ859020.1| Oryza sativa (japonica cultivar-group) glutathione S-transferase 2 mRNA, complete cds
ATGGCGGAGGCGGCGGGGGCGGCGGTGGCGCCGGCGAAGCTGGGTCTGTACTCGTACTGGCGGAGCTCGT
GCTCGCACCGCGTCCGCATCGCCCTCAACCTCAAAGGATTGGAGTACGAGTACAAGGCGGTGAACCTGCT
CAAGGGGGAGCACTCTGATCCAGAATTCATGAAGGTTAATCCTATGAAGTTCGTCCCGGCATTGGTCGAT
......
運行時就會報如下錯誤:
[formatdb] ERROR: Failed to create index.  Possibly a gi included more than once in the database.
3、如果輸入序列不符合FASTA格式或者ASN.1格式,程序會自動退出,並報錯:
[formatdb] ERROR: Could not open db
4、核酸序列可以用於建核酸庫和蛋白庫,但是蛋白序列不能用於建核酸庫。
其他參數簡介:
-l:"-l 文件名"用來改變LOG文件的命名
-n:"-n 文件名"可以自定義生成的庫文件命名
-a:輸入文件爲ASN.1格式
2.運行比對程序blastall:
Blast的主程序是blastall。程序的輸入文件是query序列(-i 參數)和庫文件(-d 參數),比對類型的選擇(-p 參數)和輸出文件(-o 參數)由用戶指定。其中“-p”參數有5種取值:
-p blastp:蛋白序列與蛋白庫做比對。
-p blastx:核酸序列對蛋白庫的比對。
-p blastn:核酸序列對核酸庫的比對。
-p tblastn:蛋白序列對核酸庫的比對。
-p tblastx:核酸序列對核酸庫在蛋白級別的比對。
這些元素就構成了blast的基本運行命令(以blastn爲例):
blastall -i query.fasta -d database_prefix -o blast.out -p blastn
其中如果"-o"參數缺省,則結果輸出方式爲屏幕輸出。下面以一個blastn比對爲例,來說明比對全過程:
Query序列(query.fasta):
>gi|45593933|gb|AY551259.1| Oryza sativa precursor microRNA 319c gene
AGGAAGAGGAGCTCCTTTCGATCCAATTCAGGAGAGGAAGTGGTAGGATGCAGCTGCCGATTCATGGATA
CCTCTGGAGTGCATGGCAGCAATGCTGTAGGCCTGCACTTGCATGGGTTTGCATGACCCGGGAGATGAAC
CCACCATTGTCTTCCTCTATTGATTGGATTGAAGGGAGCTCCACATCTCT
>gi|45593932|gb|AY551258.1| Oryza sativa precursor microRNA 319b gene
CATATTCTTTTAATTTGATGGAAGAAGCGATCGATGGATGGAAGAGAGCGTCCTTCAGTCCACTCATGGG
CGGTGCTAGGGTCGAATTAGCTGCCGACTCATTCACCCACATGCCAAGCAAGAAACGCTTGAGATAGCGA
AGCTTAGCAGATGAGTGAATGAAGCGGGAGGTAACGTTCCGATCTCGCGCCGTCTTTGCTTGGACTGAAG
GGTGCTCCCTCCTCCTCGATCTCTTCGATCTAATTAAGCTACCTTGACAT
庫文件Database(db.seq,已經運行formatdb -i db.seq -p F -o T建庫):
>fake_seq
AGGAAGAGGAGCTCCTTTCGTTCCAATTCAGGAGAGGAAGTGGTAGGATGCAGCTGCCGATTCATGGATA
CCTCTGGAGTGCATGCAGCAATGCTGTAGGCCTGCACTTGCATGGGTTTGCATGACCCGGCGAGATGAAC
CCACCATTGTCTTCCTCTATTGATTGGATTGAAGGGAGCTCCACATCTCT
運行命令:
blastall -i query.fasta -d db.seq -o blast.out -p blastn
運行結果:
BLASTN 2.2.8 [Jan-05-2004]
Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer,
Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997),
"Gapped BLAST and PSI-BLAST: a new generation of protein database search
programs",  Nucleic Acids Res. 25:3389-3402.
Query= gi|45593933|gb|AY551259.1| Oryza sativa precursor microRNA 319c
gene, complete sequence
         (190 letters)
Database: db.seq
           1 sequences; 190 total letters
Searching.done
                                                                    Score    E
Sequences producing significant alignments:                         (bits) Value
 
fake_seq                                                             339   2e-98
>fake_seq
          Length = 190
Score =  339 bits (171), Expect = 2e-98
 Identities = 188/191 (98%), Gaps = 2/191 (1%)
 Strand = Plus / Plus
Query: 1   aggaagaggagctcctttcgatccaattcaggagaggaagtggtaggatgcagctgccga 60
           |||||||||||||||||||| |||||||||||||||||||||||||||||||||||||||
Sbjct: 1   aggaagaggagctcctttcgttccaattcaggagaggaagtggtaggatgcagctgccga 60
Query: 61  ttcatggatacctctggagtgcatggcagcaatgctgtaggcctgcacttgcatgggttt 120
           |||||||||||||||||||||||| |||||||||||||||||||||||||||||||||||
Sbjct: 61  ttcatggatacctctggagtgcat-gcagcaatgctgtaggcctgcacttgcatgggttt 119
Query: 121 gcatgacccgg-gagatgaacccaccattgtcttcctctattgattggattgaagggagc 179
           ||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct: 120 gcatgacccggcgagatgaacccaccattgtcttcctctattgattggattgaagggagc 179
Query: 180 tccacatctct 190
           |||||||||||
Sbjct: 180 tccacatctct 190
  Database: db.seq
    Posted date:  Aug 28, 2006  8:14 PM
  Number of letters in database: 190
  Number of sequences in database:  1
Lambda     K      H
    1.37    0.711     1.31
Gapped
Lambda     K      H
    1.37    0.711     1.31
Matrix: blastn matrix:1 -3
Gap Penalties: Existence: 5, Extension: 2
Number of Hits to DB: 3
Number of Sequences: 1
Number of extensions: 3
Number of successful extensions: 3
Number of sequences better than 10.0: 1
Number of HSP's better than 10.0 without gapping: 1
Number of HSP's successfully gapped in prelim test: 0
Number of HSP's that attempted gapping in prelim test: 0
Number of HSP's gapped (non-prelim): 1
length of query: 190
length of database: 190
effective HSP length: 8
effective length of query: 182
effective length of database: 182
effective search space:    33124
effective search space used:    33124
T: 0
A: 0
X1: 6 (11.9 bits)
X2: 15 (29.7 bits)
S1: 12 (24.3 bits)
S2: 6 (12.4 bits)
BLASTN 2.2.8 [Jan-05-2004]
 
Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer,
Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997),
"Gapped BLAST and PSI-BLAST: a new generation of protein database search
programs",  Nucleic Acids Res. 25:3389-3402.
Query= gi|45593932|gb|AY551258.1| Oryza sativa precursor microRNA 319b
gene, complete sequence
         (260 letters)
Database: db.seq
           1 sequences; 190 total letters
Searching.done
***** No hits found ******
  Database: db.seq
    Posted date:  Aug 28, 2006  8:14 PM
  Number of letters in database: 190
  Number of sequences in database:  1
Lambda     K      H
    1.37    0.711     1.31
Gapped
Lambda     K      H
    1.37    0.711     1.31
Matrix: blastn matrix:1 -3
Gap Penalties: Existence: 5, Extension: 2
Number of Hits to DB: 0
Number of Sequences: 1
Number of extensions: 0
Number of successful extensions: 0
Number of sequences better than 10.0: 0
Number of HSP's better than 10.0 without gapping: 0
Number of HSP's successfully gapped in prelim test: 0
Number of HSP's that attempted gapping in prelim test: 0
Number of HSP's gapped (non-prelim): 0
length of query: 260
length of database: 190
effective HSP length: 8
effective length of query: 252
effective length of database: 182
effective search space:    45864
effective search space used:    45864
T: 0
A: 0
X1: 6 (11.9 bits)
X2: 15 (29.7 bits)
S1: 12 (24.3 bits)
S2: 6 (12.4 bits)
 
Blast的結果包含的信息很豐富。每一個query的比對結果從"BLASTN"開始,記錄了版本和作者信息,"Query= "之後記錄了query名和序列長度。如果兩條序列沒有找到相關性信息,那麼在"Searching.done"下方顯示"***** No hits found ******";反之,則在"Searching.done"下方記錄了該query序列和庫中每一條subject序列的比對概況列表,包括比對得分(Score)和期望值(E value)。期望值是一個大於0的正實數,代表兩條序列不相關的可能性。期望值是在整體上綜合評定兩條序列的相似性的參數,期望值數值越小,序列相似性就越高,反之期望值數值越大,相似性越低。比對的輸出結果會按照期望值從低到高的順序來排列。
Query序列和每一條subject序列比對結果的詳細信息以">"開始。需要注意的是同一個query和同一個subject可能會有多個比對結果,每一個具體的結果從"Score ="開始,記錄了比對得分、期望值、相似度百分比(identities)、比對的空位和兩條序列的比對方向,之後是比對條形圖,顯示了比對區域內每個鹼基的比對情況。列出兩條序列的所有比對結果後,羅列比對的參數設置和統計信息,至此兩條序列間的比對結果輸出完畢。
如上述結果所示, AY551259和fake_seq同爲正鏈相比得到一個結果,期望值爲2e-98,identities爲98%,中間有2個空位,兩條序列相似度很高。而AY551258和fake_seq沒有找到同源性。
對於蛋白相關的比對,需要在blastall的運行目錄下放置取代矩陣,並在運行時指定此替代矩陣,程序才能正常運行,否則blastall會報錯退出。一般來講,蛋白比對時最常用的取代矩陣是BLOSUM62矩陣。
參數
僅僅運行blast的基本運行命令,得到的結果往往不能清晰準確的表示出有用的信息。最大的問題就是有太多的冗餘,很多很短的比對都會出現在輸出結果中,導致結果雜亂無章。例如:
                                                                    Score    E
Sequences producing significant alignments:                         (bits) Value
Contig3421   out.ace.2                                              2367   0.0
Contig3424   out.ace.2                                               165   1e-40
Contig3423   out.ace.2                                                30   4.9
Contig3314   out.ace.2                                                30   4.9
……
>Contig3423   out.ace.2
          Length = 148505
Score = 30.2 bits (15), Expect = 4.9
 Identities = 15/15 (100%)
 Strand = Plus / Plus
Query: 571    aaagaataaaattat 585
              |||||||||||||||
Sbjct: 103697 aaagaataaaattat 103711
可以很明顯的看出,query序列和Contig3423的比對結果不能表示兩條序列的相關性。事實上這個比對結果只是一個偶然出現的重複。這樣的結果不但會浪費大量的運算和存儲資源,更給結果分析帶來了沉重的負擔。爲了處理雜亂無章的比對結果,滿足各種比對需求,blast設置了很多參數來限制比對的範圍和輸出的形式。以下多數結果以blastn舉例,如不做特殊說明,這些參數適用於所有比對方式。
1.-e參數:
-e(value)參數是用來過濾比對較差的結果的,用"-e"參數指定一個實數,blast會過濾掉期望值大於這個數的比對結果。這樣不但簡化了結果,還縮短了運行時間和結果佔用的空間。比如在上一個例子中,在命令行中加上限制期望值:
blastall -i query.fasta -d db.seq -o blast.out -p blastn -e 1e-10
那麼結果中就會只剩下比對較好的結果:
                                                                   Score    E
Sequences producing significant alignments:                        (bits) Value
Contig3421   out.ace.2                                              2367   0.0
Contig3424   out.ace.2                                               165   1e-40
……
通常,對於不同物種間的比對,期望值設在1e-5左右即可;而對於同源性較高的物種或者同種的比對,可以適當將期望值調得更小來過濾垃圾結果。比如同一物種cDNA和染色體的比對,參數可用1e-10或更高。
2.-F參數:
-F(T/F)參數是用來屏蔽簡單重複和低複雜度序列的。如果選"T",程序在比對過程中會屏蔽掉query中的簡單重複和低複雜度序列;選"F"則不會屏蔽。缺省值爲"T"。例如,我們將如下含有兩段簡單重複的序列自己和自己進行比對(重複區用小寫字母表示):
>test1
TACAATAAATAAAAAAGAGCTGTCTACAGTCTTTTcgcgcgcgcgcgTTCAGAAGTAAAG
CACTATACAtttttttGTTTGTTCTTCTCAATTTAGGAAACTCAATGAACAATGAATACG
AACTATTATTACCAGTAAATACAAGTAATAC
第一次比對採用缺省參數:
blastall -i test.seq -d test.seq -o test.blast -p blastn -e 1e-5
得到的結果:
>test1
          Length = 151
Score =  186 bits (94), Expect = 1e-52
 Identities = 132/151 (87%)
 Strand = Plus / Plus
Query: 1   tacaataaataaaaaagagctgtctacagtcttttnnnnnnnnnnnnttcagaagtaaag 60
           |||||||||||||||||||||||||||||||||||            |||||||||||||
Sbjct: 1   tacaataaataaaaaagagctgtctacagtcttttcgcgcgcgcgcgttcagaagtaaag 60
Query: 61  cactatacannnnnnngtttgttcttctcaatttaggaaactcaatgaacaatgaatacg 120
           |||||||||       ||||||||||||||||||||||||||||||||||||||||||||
Sbjct: 61  cactatacatttttttgtttgttcttctcaatttaggaaactcaatgaacaatgaatacg 120
Query: 121 aactattattaccagtaaatacaagtaatac 151
           |||||||||||||||||||||||||||||||
Sbjct: 121 aactattattaccagtaaatacaagtaatac 151
……
第二次運行採用參數“-F F”:
blastall -i test.seq -d test.seq -o test.blast -p blastn -e 1e-5 -F F
得到的結果:
>test1
          Length = 151
Score =  299 bits (151), Expect = 1e-86
 Identities = 151/151 (100%)
 Strand = Plus / Plus
Query: 1   tacaataaataaaaaagagctgtctacagtcttttcgcgcgcgcgcgttcagaagtaaag 60
           ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct: 1   tacaataaataaaaaagagctgtctacagtcttttcgcgcgcgcgcgttcagaagtaaag 60
Query: 61  cactatacatttttttgtttgttcttctcaatttaggaaactcaatgaacaatgaatacg 120
           ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct: 61  cactatacatttttttgtttgttcttctcaatttaggaaactcaatgaacaatgaatacg 120
Query: 121 aactattattaccagtaaatacaagtaatac 151
           |||||||||||||||||||||||||||||||
Sbjct: 121 aactattattaccagtaaatacaagtaatac 151
比較兩個結果,我們看出使用缺省參數的比對結果損失了一部分信息,得到的統計結果也出現失真,期望值和identity都沒有反映出真實情況。有時較長的重複序列甚至會導致比對終止。加了"-F F"就保證了比對結果的完整性。通常在大規模、低精度的比對中,往往用缺省參數,這樣能避免程序把過多的時間浪費在無意義的簡單重複上,提高運行速度;而在小規模、高精度的比對中,需要加上參數"-F F",保證比對的精確度和完整性。
3.-m參數:
“-e”參數能夠做到篩選適當的比對結果,但是即使如此,blast的輸出結果仍然非常龐大並且難以處理。爲了精簡輸出、節省存儲空間、實現更多功能並使結果易於處理,blast提供了參數“-m (integer)”來設定輸出格式,可供選擇的值爲0~11之間的整數,缺省爲0。下面就通過實例逐個解析“-m”參數能夠實現的輸出功能。
輸入文件的內容(針對-m 0到-m 7),其中:加粗的區域是三條序列的重合位置,注意subject1多一個鹼基。
query.fasta:
>query1
TACAATAAATAAAATAGAGCTGTCTACAGTACTTTTTCAGGAACTCCTTCAGAAGTAAAG
CACTATACAtttttttGTTTGTTCTTTTCAATTTAGGAAACTCAATGAACAATGAATACG
AACTATTATTACCAGTAAATACAAGTAATAC
database.fasta:
>subject1
TCCTTCAGAAGTAAAGCACTATACAtttttttGTTTGTTCTTTTCAATTTAGGAAACTCA
AATGAACAATGAATAC
>subject2
AATTTAGGAAACTCAATGAACAATGAATACGAACTATTATTACCAGTAAATACAAGTAAT
輸出:
-m 0:缺省參數,顯示一個query和一個subject兩兩比對的信息。
>subject1
          Length = 76
Score = 93.7 bits (47), Expect = 1e-24
 Identities = 68/76 (89%), Gaps = 1/76 (1%)
 Strand = Plus / Plus
Query: 45  tccttcagaagtaaagcactatacannnnnnngtttgttcttttcaatttaggaaactc- 103
           |||||||||||||||||||||||||        ||||||||||||||||||||||||||
Sbjct: 1   tccttcagaagtaaagcactatacatttttttgtttgttcttttcaatttaggaaactca 60
……
-m 1:顯示query在所有subjects上的定位信息,並顯示一致性比對信息,subject之間不同的鹼基會被標出。
Sequences producing significant alignments:                        (bits) Value
subject2                                                             119   2e-32
subject1                                                              94   1e-24
QUERY 45  tccttcagaagtaaagcactatacannnnnnngtttgttcttttcaatttaggaaactca 104
1     1                                                ............... 15
0     1   .........................ttttttt............................ 61
                                                                     \
                                                                     |
                                                                     a
……
-m 2:顯示query在所有subjects上的定位信息但是不顯示一致性比對信息,subject之間不同的鹼基會被標出。
Sequences producing significant alignments:                        (bits) Value
subject2                                                             119   2e-32
subject1                                                              94   1e-24
QUERY 45  tccttcagaagtaaagcactatacannnnnnngtttgttcttttcaatttaggaaactca 104
1     1                                                aatttaggaaactca 15
0     1   tccttcagaagtaaagcactatacatttttttgtttgttcttttcaatttaggaaactca 61
                                                                     \
                                                                     |
                                                                     a
……
-m 3:顯示query在所有subjects的定位和一致性比對信息,不顯示subjects之間的差異。
Sequences producing significant alignments:                        (bits) Value
subject2                                                             119   2e-32
subject1                                                              94   1e-24
QUERY 45  tccttcagaagtaaagcactatacannnnnnngtttgttcttttcaatttaggaaactc- 103
1     1                                                ..............- 14
0     1   .........................ttttttt...........................a 60
……
-m 4:顯示query在所有subjects上的定位信息但是不顯示一致性比對信息,不顯示subjects之間的差異。
Sequences producing significant alignments:                        (bits) Value
subject2                                                             119   2e-32
subject1                                                              94   1e-24
QUERY 45  tccttcagaagtaaagcactatacannnnnnngtttgttcttttcaatttaggaaactc- 103
1     1                                                aatttaggaaactc- 14
0     1   tccttcagaagtaaagcactatacatttttttgtttgttcttttcaatttaggaaactca 60
……
-m 5:顯示query在所有subjects上的定位信息但是不顯示每個鹼基的比對信息,補充"-"對齊比對區域,subjects之間不同的鹼基會被標出。
Sequences producing significant alignments:                        (bits) Value
subject2                                                             119   2e-32
subject1                                                              94   1e-24
 
QUERY 45  tccttcagaagtaaagcactatacannnnnnngtttgttcttttcaatttaggaaactca 104
1     1   ---------------------------------------------aatttaggaaactca 15
0     1   tccttcagaagtaaagcactatacatttttttgtttgttcttttcaatttaggaaactca 61
                                                                     \
                                                                     |
                                                                     a
……
-m 6:顯示query在所有subjects上的定位信息但是不顯示每個鹼基的比對信息,補充"-"對齊比對區域,不顯示subjects之間的差異。
Sequences producing significant alignments:                        (bits) Value
subject2                                                             119   2e-32
subject1                                                              94   1e-24
QUERY 45  tccttcagaagtaaagcactatacannnnnnngtttgttcttttcaatttaggaaactc- 103
1      1  ---------------------------------------------aatttaggaaactc- 14
0      1  tccttcagaagtaaagcactatacatttttttgtttgttcttttcaatttaggaaactca 60
……
-m 7:輸出XML格式的blast結果。
        <Hsp_num>1</Hsp_num>
        <Hsp_bit-score>119.434</Hsp_bit-score>
        <Hsp_score>60</Hsp_score>
        <Hsp_ue>1.95644e-32</Hsp_ue>
        <Hsp_query-from>90</Hsp_query-from>
        <Hsp_query-to>149</Hsp_query-to>
        <Hsp_hit-from>1</Hsp_hit-from>
        <Hsp_hit-to>60</Hsp_hit-to>
        <Hsp_query-frame>1</Hsp_query-frame>
        <Hsp_hit-frame>1</Hsp_hit-frame>
        <Hsp_identity>60</Hsp_identity>
        <Hsp_positive>60</Hsp_positive>
        <Hsp_align-len>60</Hsp_align-len>
        <Hsp_qseq>AATTTAGGAAACTCAATGAACAATGAATACGAACTATTATTA</Hsp_qseq>
        <Hsp_hseq>AATTTAGGAAACTCAATGAACAATGAATACGAACTATTATTA</Hsp_hseq>
        <Hsp_midline>||||||||||||||||||||||||||||||||||||||||||</Hsp_midline>
……
-m 8:列表格式的比對結果。從左到右各列的意義依次是:query名、subject名、identity、比對長度、錯配數、空位數、query比對起始座標、query比對終止座標、subject比對起始座標、subject比對終止座標、期望值、比對得分。
query1 sub24   91.11   45    3   1    198   241   502208  502252  2.7e-06 50.05
query1 sub21   98.68   151   2   0    532   682   1360665 1360515 1.0e-76 284.0
query1 sub21   86.17   94    12  1    198   290   479232  479139  4.8e-14 75.82
query1 sub21   87.04   54    7   0    238   291   1297867 1297920 6.9e-07 52.03
query2 sub21   99.44   892   3   2    28    918   1351055 1350165 0.0     1713.2
query2 sub21   87.58   153   17  1    343   495   1358110 1357960 2.1e-35 147.2
query2 sub21   84.11   107   16  1    699   805   1305723 1305618 4.0e-12 69.88
query2 sub21   89.58   48    5   0    519   566   1305968 1305921 6.0e-08 56.00
query2 sub14   88.24   153   16  1    343   495   145402  145252  8.7e-38 155.1
query2 sub24   88.08   151   16  1    345   495   567561  567709  1.4e-36 151.2
query2 sub24   87.80   123   14  1    686   808   563341  563220  1.9e-26 117.5
 
在m8格式中通過subject的比對起止位置可以判斷出序列的比對方向。比如上述結果中第1行,subject的起始座標小於終止座標,則兩條序列是同方向比對上的;第2行中subject起始座標大於終止座標,則query序列是和subject的互補鏈比上的。
-m 9:帶註釋行的列表格式。格式和-m 8一樣,只是在每個query的比對結果前面加了註釋行用以說明列表中各列的意義。
# BLASTN 2.2.8 [Jan-05-2004]
# Query: query1   out.ace.1
# Database: database.seq
# Fields: Query id, Subject id, % identity, alignment length, mismatches, gap openings, q. start, q. end, s. start, s. end, e-value, bit score
query1 sub24   91.11   45    3   1    198   241   502208  502252  2.7e-06 50.05
query1 sub21   98.68   151   2   0    532   682   1360665 1360515 1.0e-76 284.0
query1 sub21   86.17   94    12  1    198   290   479232  479139  4.8e-14 75.82
query1 sub21   87.04   54    7   0    238   291   1297867 1297920 6.9e-07 52.03
# BLASTN 2.2.8 [Jan-05-2004]
# Query: query1   out.ace.1
# Database: database.seq
# Fields: Query id, Subject id, % identity, alignment length, mismatches, gap openings, q. start, q. end, s. start, s. end, e-value, bit score
query2 sub21   99.44   892   3   2    28    918   1351055 1350165 0.0     1713.2
query2 sub21   87.58   153   17  1    343   495   1358110 1357960 2.1e-35 147.2
query2 sub21   84.11   107   16  1    699   805   1305723 1305618 4.0e-12 69.88
query2 sub21   89.58   48    5   0    519   566   1305968 1305921 6.0e-08 56.00
query2 sub14   88.24   153   16  1    343   495   145402  145252  8.7e-38 155.1
query2 sub24   88.08   151   16  1    345   495   567561  567709  1.4e-36 151.2
query2 sub24   87.80   123   14  1    686   808   563341  563220  1.9e-26 117.5
-m 10和11:分別是ASN格式的文本文件和二進制文件,這裏就不做介紹了。
“-m”參數的值從1到6都是爲了便於在subjects之間做比較而設立的功能;8和9保留了所有比對結果的原貌,只是統計成了列表的格式,從而大幅度降低了存儲空間的消耗,並使結果更加清晰易讀。但是m8/m9格式也有相應的缺點,就是損失了一部分比對信息,除了序列長度信息和比對條形圖以外,還會在blastx、tblastn和tblastx的比對中損失關鍵的相位信息,這是要儘量避免的。因此在大規模的blastn比對任務中,往往要採用m8格式的輸出結果來節省空間;而在小規模高精度比對中,通常用默認的輸出格式,再用其他程序來提取結果中的有用信息。
4.-v參數和-b參數:
這兩個參數都是限制輸出結果的數量的。
-v (integer):規定輸出中每一個query的比對列表最多顯示subject個數(即"Sequences producing significant alignments:"後面列出的subjects數目),缺省爲500條。
-b (integer):規定輸出中每個query最多顯示與多少條subject的比對條形圖(即每條query的結果中">"的個數),缺省爲250條。
如果同時使用"-m 8"參數,則輸出結果中的subjects數量和"-b"參數規定的數量一致。
在database數據中能和query比上的subjects過多的時候,這兩個參數就能夠幫助我們把其中比對結果最好的一部分挑出來,屏蔽掉相對差的結果。當然有些時候我們是不希望屏蔽掉這些結果的,比如在某個大基因組的Contig數據集中統計一條轉座子的重複次數,就需要把"-v"和"-b"參數定的足夠大以顯示所有結果。
5.-T參數:
-T (T/F)參數用於決定是否輸出html格式的比對結果,缺省值爲"F"。選擇"-T T"就會輸出html格式的比對結果。如果在建庫過程中選擇了"-o T",並且database數據中的序列是以gi號命名的,那麼在html結果中以gi號命名的相應序列會自動鏈接到NCBI的數據庫上。如圖3-14:
 
圖3-16 html格式的blast結果
6.-M參數:
做有關蛋白的比對時,需要用"-M"參數指定取代矩陣,比如BLOSUM45、BLOSUM62、BLOSUM80等,缺省值爲BLOSUM62。這三個矩陣都可以在blast安裝目錄的data目錄下找到。BLOSUM矩陣後面的數字代表比對結果允許的最低相似度百分比,我們可以根據不同的精度需求選擇不同的取代矩陣。BLOSUM62的內容如下:
#  Matrix made by matblas from blosum62.iij
#  * column uses minimum score
#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
#  Blocks Database = /data/blocks_5.0/blocks.dat
#  Cluster Percentage: >= 62
#  Entropy =   0.6979, Expected =  -0.5209
   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
A  4 -1 -2 -2  0 -1 -1  0 -2 -1 -1 -1 -1 -2 -1  1  0 -3 -2  0 -2 -1  0 -4
R -1  5  0 -2 -3  1  0 -2  0 -3 -2  2 -1 -3 -2 -1 -1 -3 -2 -3 -1  0 -1 -4
N -2  0  6  1 -3  0  0  0  1 -3 -3  0 -2 -3 -2  1  0 -4 -2 -3  3  0 -1 -4
D -2 -2  1  6 -3  0  2 -1 -1 -3 -4 -1 -3 -3 -1  0 -1 -4 -3 -3  4  1 -1 -4
C  0 -3 -3 -3  9 -3 -4 -3 -3 -1 -1 -3 -1 -2 -3 -1 -1 -2 -2 -1 -3 -3 -2 -4
Q -1  1  0  0 -3  5  2 -2  0 -3 -2  1  0 -3 -1  0 -1 -2 -1 -2  0  3 -1 -4
E -1  0  0  2 -4  2  5 -2  0 -3 -3  1 -2 -3 -1  0 -1 -3 -2 -2  1  4 -1 -4
G  0 -2  0 -1 -3 -2 -2  6 -2 -4 -4 -2 -3 -3 -2  0 -2 -2 -3 -3 -1 -2 -1 -4
H -2  0  1 -1 -3  0  0 -2  8 -3 -3 -1 -2 -1 -2 -1 -2 -2  2 -3  0  0 -1 -4
I -1 -3 -3 -3 -1 -3 -3 -4 -3  4  2 -3  1  0 -3 -2 -1 -3 -1  3 -3 -3 -1 -4
L -1 -2 -3 -4 -1 -2 -3 -4 -3  2  4 -2  2  0 -3 -2 -1 -2 -1  1 -4 -3 -1 -4
K -1  2  0 -1 -3  1  1 -2 -1 -3 -2  5 -1 -3 -1  0 -1 -3 -2 -2  0  1 -1 -4
M -1 -1 -2 -3 -1  0 -2 -3 -2  1  2 -1  5  0 -2 -1 -1 -1 -1  1 -3 -1 -1 -4
F -2 -3 -3 -3 -2 -3 -3 -3 -1  0  0 -3  0  6 -4 -2 -2  1  3 -1 -3 -3 -1 -4
P -1 -2 -2 -1 -3 -1 -1 -2 -2 -3 -3 -1 -2 -4  7 -1 -1 -4 -3 -2 -2 -1 -2 -4
S  1 -1  1  0 -1  0  0  0 -1 -2 -2  0 -1 -2 -1  4  1 -3 -2 -2  0  0  0 -4
T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1  1  5 -2 -2  0 -1 -1  0 -4
W -3 -3 -4 -4 -2 -2 -3 -2 -2 -3 -2 -3 -1  1 -4 -3 -2 11  2 -3 -4 -3 -2 -4
Y -2 -2 -2 -3 -2 -1 -2 -3  2 -1 -1 -2 -1  3 -3 -2 -2  2  7 -1 -3 -2 -1 -4
V  0 -3 -3 -3 -1 -2 -2 -3 -3  3  1 -2  1 -1 -2 -2  0 -3 -1  4 -3 -2 -1 -4
B -2 -1  3  4 -3  0  1 -1  0 -3 -4  0 -3 -3 -2  0 -1 -4 -3 -3  4  1 -1 -4
Z -1  0  0  1 -3  3  4 -2  0 -3 -3  1 -1 -3 -1  0 -1 -3 -2 -2  1  4 -1 -4
X  0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2  0  0 -2 -1 -1 -1 -1 -1 -4
* -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4  1
 
7.-W參數:
-W(integer):指定做比對時的“字”的長度。缺省值是0(代表blastn的搜索字長爲11,megablast是28,其他是3)。這個參數多數時候不用調整,但是需要做短序列的比對時,可能要適當調短字長,來增加比對的敏感度。
以上爲blastall 的常用參數,對於一些不常用的參數,可以查找blast的參數表,此參數表可以通過直接運行blastall得到。
常見問題
1.運行formatdb時報下列錯誤:
[formatdb] ERROR: 1.seq.nhrOutput
Blast-def-line-set.E.<title>
Invalid value(s) [9] in VisibleString [seq1#ss ...]
這種情況通常是subject序列的標題行中含有非法字符,比如Tab。
 
2.運行blastall時報下列警告:
[blastall] WARNING: seq1: Could not find index files for database sub.seq
出現這種問題通常是沒有做formatdb建庫或者建的庫不符合比對類型要求,需要重新建庫。尤其注意tblastx的建庫應該使用核酸庫。
 
3.運行blastall時報下列警告和錯誤:
[blastall] WARNING:  [000.000]  seq1: SetUpBlastSearch failed.
[blastall] ERROR:  [000.000]  seq1: BLASTSetUpSearch: Unable to calculate Karlin-Altschul params, check query sequence
[blastall] ERROR:  [000.000]  seq1: BLASTSetUpSearch: Unable to calculate Karlin-Altschul params, check query sequence
 
這種情況多出在reads等短序列的比對中,某一個query序列的有效長度是0,則會導致這個錯誤。但是這個錯誤不會影響到其他query序列的正常比對,通常情況下可以忽略。
 
4.運行blastall時報下列警告並退出:
[blastall] WARNING:  [000.000]  seq1: Unable to open BLOSUM62
[blastall] WARNING:  [000.000]  seq1: BlastScoreBlkMatFill returned non-zero status
[blastall] WARNING:  [000.000]  seq1: SetUpBlastSearch failed.
這是因爲做蛋白相關比對的時候目錄下沒有蛋白比對矩陣BLOSUM62。
實例
其他四種比對方式的使用和blastn大同小異,下面通過幾個例子加以概括:
1.用BLOSUM45矩陣、“-F F”參數對兩條相似的蛋白做blastp比對:
輸入的query序列:query.seq
輸入的database序列:db.seq
運行命令:blastall -i db.seq -d db.seq -o blastp.out -p blastp -F F -M BLOSUM45
輸出結果存放在:blastp.out
2.用一條核酸序列和一條蛋白序列做交叉比對blastx和tblastn:
輸入的核酸序列:cdna.seq
輸入的蛋白序列:pep.seq
運行命令:
blastall -i cdna.seq -d pep.seq -o blastx.out -p blastx
blastall -i pep.seq -d cdna.seq -o tblastn.out -p tblastn
輸出結果存放在:
blastx.out
tblastn.out
3.用2條核酸序列蛋白比對tblastx:
輸入的query序列:query.seq
輸入的database序列:db.seq
運行命令:blastall -i query.seq -d db.seq -o tblastx.out -p tblastx -e 0.5
輸出結果存放在:tblastx.out
 
練習
1.用blast搜索人類基因組Chr10的重複序列(提示,爲了減少比對時間,可以採取分割比對的方法)。
2.用blast查找蛋白序列ENSP00000328808在人類基因組Chr10上的位置。
3.用blast檢查以下引物primer1和primer2是否可以用作在參考序列refseq上擴增。(提示,注意引物可能發生錯配的條件和blast的比對參數)
>refseq
CTTAATTCGCCTCGTGAAAGAATATCATCTGCTGAACCCGGTCATTGTTG
ACTGCACCTCCAGCCAGGCAGTGGCGGATCAATATGCCGACTTCCTGCGC
GAAGGTTTCCACGTTGTCACGCCGACGGCACCTCCAGCCAGGCAGTCGAT
GGATTACTACCATCTGTTGCGTCATGCGGCTGAAAAATCGCGGCGTAAAT
TCCTCTATGACACCAACGTTGGGGCTGGATTACCGGTTATTGAGAACCTG
CAAAATCTGCTCAATGCTGGTGATGAATTGATGAAGTTCTCCGGCATTCT
TTCAGGTTCGCTTTCTTATATCTTCGGCAAGTTAGACGAAGGCATGAGTT
 
>primer1
ACTGCACCTCCAGCCAGGCAG
 
>primer2
GATATAAGAAAGCGAACCTG
 
參考文獻
1.   Altschul, S.F., Gish, W., Miller, W., Myers, E.W., and Lipman, D.J. 1990. Basic local alignment search tool. J. Mol. Biol.215: 403–410.
2.   Altschul, S.F., Madden, T.L., Schaffer, A.A., Zhang, J., Zhang, Z.,Miller, W., and Lipman, D.J. 1997. Gapped BLAST and PSI-BLAST: A new generation of protein database search programs. Nucleic Acids Res. 25: 3389–3402.
 
From : BGI-生物信息學培訓教材
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章