2012-11-27 56 views
3

這是我第一次在biopython中使用blast,並且遇到問題。定製爆炸數據庫與NcbiblastxCommandline

我創建從FASTA文件的自定義數據庫鼓風含有用20序列:

使用os.system( 'makeblastdb -in newtest.fasta -dbtype NUCL -out newtest.db')

,這也產生我目前工作中的當前目錄內的幾個文件(newtest.db.nhr,newtest.db.nin,newtest.db.nsq):(/home/User/Documents/python/fasta-files

現在我試圖 使用查詢內biopython這個數據庫:

blastx_cline = NcbiblastxCommandline(query="queryfile.fas", db="newtest.db", evalue=0.00000001, outfmt=5, out="opuntia.xml") 

但我得到這個錯誤:

> Bio.Application.ApplicationError: Command 'blastx -out opuntia.xml 
> -outfmt 5 -query queryfile.fas -db newtest.db -evalue 1e-08' returned non-zero exit status 2, 'BLAST Database error: No alias or 
> index file found for protein database [newtest.db] in search path 
> [/home/User/Documents/python/fasta-files:/usr/share/ncbi/blastdb:]' 

所以我嘗試複製從/home/User/Documents/python/fasta-files生成的文件以/usr/share/ncbi/blastdb,但它說,我沒有允許。

*編輯*

當我使用:os.system("blastn -db newtest.db -query "fastafile.fas" + " -out test.txt") 它正常工作產生一個輸出文件。但不是相反 **

所以我卡在這裏,我不知道如何解決這個問題。

任何幫助,將不勝感激

回答

5

注重短語蛋白質數據庫錯誤信息,而newtest.db是NUCL數據庫。

索引文件發現蛋白質數據庫 [newtest.db]在搜索路徑

所以BLASTX期待的蛋白質數據庫。這不明顯嗎? :-)

如果你沒有按目的做,你應該通過添加「cmd ='blastn'」指定BLAST程序來使用。所以,這是更好的:

blastx_cline = NcbiblastxCommandline(cmd='blastn', query="queryfile.fas", db="newtest.db", evalue=0.00000001, outfmt=5, out="opuntia.xml") 
+0

謝謝你,我真的不祈禱,關注它。謝謝指點出來.. – ifreak

+0

我很高興:-) – biocyberman

+0

小問題,我爲什麼不能添加這個命令行的-m選項?它給了我一個錯誤.. – ifreak