使用python运行blast时,“blastp”未被识别为内部或外部命令错误

2024-06-16 12:32:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Bio.BLAST.Applications与biopython一起运行本地BLAST。但是,在运行以下代码时:

from Bio.Blast.Applications import NcbiblastpCommandline

result = r"C:\Users\Uzytkownik\Desktop\tests\result.xml" 
q = r"C:\Users\Uzytkownik\Desktop\tests\fastas\my_example2.faa"
database = r"C:\Users\Uzytkownik\Desktop\tests\my_examplemultif.faa"

blastp_cline = NcbiblastpCommandline(query = q, db = database, evalue = 0.001, outfmt=5, out = result)
stdout, stderr = blastp_cline()

我收到一个错误,说明:

ApplicationError: Non-zero return code 1 from 'blastp -out C:\\Users\\Uzytkownik\\Desktop\\tests\\result.xml -outfmt 5 -query C:\\Users\\Uzytkownik\\Desktop\\tests\\fastas\\my_example2.faa -db C:\\Users\\Uzytkownik\\Desktop\\tests\\my_examplemultif.faa -evalue 0.001', message "'blastp' is not recognized as an internal or external command,"

我试着用子进程和操作系统运行这个程序,但每次都出现相同的错误

当我通过命令行运行查询时,一切正常(我使用的是blast 2.9.0+),所以我真的不确定问题出在哪里。如果有任何帮助,我将不胜感激


Tags: frommytestsxmlresultusersbioblast
1条回答
网友
1楼 · 发布于 2024-06-16 12:32:16

首先找到blastp可执行文件的安装位置,并将其作为NcbiblastpCommandline的参数

from Bio.Blast.Applications import NcbiblastpCommandline

blastp_path = r"C:\path\to\blastp.exe"
result = r"C:\Users\Uzytkownik\Desktop\tests\result.xml" 
q = r"C:\Users\Uzytkownik\Desktop\tests\fastas\my_example2.faa"
database = r"C:\Users\Uzytkownik\Desktop\tests\my_examplemultif.faa"


blastp_cline = NcbiblastpCommandline(cmd=blastp_path, query=q, db=database, evalue=0.001, outfmt=5, out=result)

如果现在执行print(blastp_cline),它应该打印出将要运行的完整命令。通过复制/粘贴此输出并从命令行运行它,双重检查此操作是否有效。如果这行得通,那么

stdout, stderr = blastp_cline()

应该也行

相关问题 更多 >