首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Biopython blastn命令不是在脚本中工作,而是从命令行工作的。

Biopython blastn命令不是在脚本中工作,而是从命令行工作的。
EN

Stack Overflow用户
提问于 2014-05-08 23:51:50
回答 1查看 1.1K关注 0票数 1

因此,我正在编写一个脚本来运行一个blast查询,在这一点上,我对变量进行了硬编码(只是为了确保它们不会被搞砸)。即:

代码语言:javascript
复制
blastCLine = NcbiblastnCommandline(query="temp.fasta", db="refseq_rna", outfmt=5, out="test.txt", evalue=0.05)
stdt, stdr = blastCLine()
print stdt
print stdr

我什么也没有得到,输出文件是空白的,没有错误或任何东西。如果我在命令行上使用来自blastCLine的blast命令,它就能工作。如果我在python环境中使用上面的代码,它就能工作。只是不按我的剧本写。

我一直在谷歌上搜索大量的例子。据我所知,这应该是可行的。我尝试过将其更改为blastx,并且使用cmd="blastn“也没有效果。有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-09 06:35:24

在这一行中,您将生成带参数的BLAST命令。如果您打印blastCLine,您将看到BLAST命令:

代码语言:javascript
复制
>>> blastCLine = NcbiblastnCommandline(query="temp.fasta", db="refseq_rna", outfmt=5, out="test.txt", evalue=0.05)
>>> print blastCLine
blastn -out test.txt -outfmt 5 -query /home/mamun/temp.fasta -db refseq_rna -evalue 0.05

现在,使用stdt, stdr = blastCLine(),您将从python执行该命令。这里发生的事情是,您得到了一个新的输出,它覆盖了test.txt文件中现有的内容。您可以通过删除现有的test.txt文件并从python再次运行上述两个命令来检查这一点。由于命令成功运行,并且不生成任何输出或错误,因此在命令成功运行后,stdout和stderr都会获得空字符串。霍普,这个解释有助于理解这里发生了什么。如果它甚至不能工作,请尝试使用os.system执行它:

代码语言:javascript
复制
>>> import os
>>> os.system(str(blastCLine))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23554551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档