2014-02-10 74 views
0

我想通過使用NCBIWWW進行biopython運行blastn。
我在給定的示例文件上使用qblast函數。
我有一些定義的方法,當我的fasta包含足夠長的序列時,一切都像魅力一樣工作。唯一一次失敗的情況是當我需要將來自Illumina測序的讀段過短時。所以我想說這可能是由於在提交作品時沒有自動重新定義爆破參數。Biopython短核苷酸序列的blast參數

我嘗試了所有我可以接近blastn-short條件(請參閱here的表C2),但沒有取得任何成功。

它看起來像我不能喂正確的參數。

越接近我想我來的工作情況與以下內容:

result_handle = NCBIWWW.qblast("blastn", "nr", 
           fastaSequence, 
           word_size=7, 
           gapcosts='5 2', 
           nucl_reward=1, 
           nucl_penalty='-3', 
           expect=1000) 

感謝您的任何提示/建議,使其工作。

我的樣本FASTA讀的是以下之一:

>TEST 1-211670 
AGACTGCGATCCGAACTGAGAAC 

,我得到的是下面的一個錯誤:

>ValueError: Error message from NCBI: Message ID#24 Error: Failed to read the Blast query: Protein FASTA provided for nucleotide sequence 

當我看this page,看來我的問題是關於修復門檻,但顯然我沒有設法使其工作到目前爲止。

謝謝你的幫助。

回答

0

一旦我遇到了爆破肽的問題,它似乎是一個適當的參數選擇問題。我花了很長時間才發現他們實際上應該是什麼(各種網站上的不一致和稀缺的數據,包括在NCBI文檔的這方面相當複雜)。我知道你對爆炸核苷酸序列感興趣,但據推測你會在下面的代碼中找到你的解決方案。請特別注意參數爲filtercomposition_based_statisticsword_sizematrix_name。在我看來,它們似乎是至關重要的。

blast_handle = NCBIWWW.qblast("blastp", "nr", 
           peptide_seq, 
           expect=200000.0, 
           filter=False, 
           word_size=2, 
           composition_based_statistics=False, 
           matrix_name="PAM30", 
           gapcosts="9 1", 
           hitlist_size=1000) 
+0

感謝您的幫助。據我所知,矩陣類型只適用於蛋白質對齊;對於'word_size'我應該有正確的(來自文檔),'composition_based_statistics'和'filter'我不知道。我嘗試了兩種,但似乎沒有幫助.. – eetuko

0

此代碼對我的作品(Biopython 1.64):

from Bio.Blast import NCBIWWW 

fastaSequence = ">TEST 1-211670\nAGACTGCGATCCGAACTGAGAAC" 

result_handle = NCBIWWW.qblast("blastn", "nr", 
           fastaSequence, 
           word_size=7, 
           gapcosts='5 2', 
           nucl_reward=1, 
           nucl_penalty='-3', 
           expect=1000) 

print result_handle.getvalue() 

也許你正在傳遞一個錯誤的fastaSequence。 Biopython不會從SeqRecords(或任何其他)轉換爲普通的FASTA。您必須提供如上所示的查詢。

Blast確定序列是否是核苷酸或蛋白質讀取前幾個字符。如果它們處於閾值以上的「ACGT」中,則它是一種核苷酸,否則它是一種蛋白質。因此,你的序列處於「ACGT」的100%閾值,不可能被解釋爲蛋白質。

相關問題