3

这是我第一次在 biopython 中使用 blast,我遇到了问题。

我从一个包含 20 个序列的 fasta 文件创建了一个自定义爆炸数据库,使用:

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-filesto生成的文件,/usr/share/ncbi/blastdb但它说我没有权限。

*编辑*

当我使用时:os.system("blastn -db newtest.db -query "fastafile.fas" + " -out test.txt") 它可以正常工作,生成输出文件。但不是相反**

所以我被困在这里,我不知道如何解决这个问题。

任何帮助,将不胜感激

4

1 回答 1

6

注意错误信息中的短语protein database ,而 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")
于 2012-12-02T23:24:12.740 回答