MuscleCommandline не работает в Biopython
Мне нужно интегрировать мой скрипт Python с инструментом мышц для выравнивания нескольких последовательностей. Я следовал за учебником по Biopython, здесь есть мой код:
from Bio.Align.Applications import MuscleCommandline
muscle_exe = "muscle.exe"
in_file = "small.fasta"
out_file = "aligned.fasta"
muscle_cline = MuscleCommandline(muscle_exe, input=in_file, out=out_file)
print(muscle_cline)
Я запускаю его в правильной папке с переименованным файлом muscle.exe. Однако python не выводит ничего, кроме команды, и файл align.fasta не создается. Я видел старые вопросы, но, похоже, никто никогда не сталкивался с этой проблемой. Мышцы работают нормально в обычной командной строке. Спасибо.
1 ответ
Решение
Руководство немного сбивает с толку, на мой взгляд. print
не запускает мышцы, а просто печатает команду, которая будет выполнена. Вы можете запустить мышцы либо позвонив
stdout, stderr = muscle_cline()
или без BioPython
import subprocess
muscle_result = subprocess.check_output([muscle_exe, "-in", in_file, "-out", out_file])