我正在尝试使用python来完成多序列比对。我使用bioython模块作为基础,但bioython的命令行包装器意味着语法:
from Bio.Align.Applications import MuscleCommandline
muscle_exe = r"pathmuscle.exe"
in_file = r"pathExample.fasta"
out_file = r"PathExamplealn.fasta"
muscle_cline = MuscleCommandLine(input=in_file, out=out_file)
print(muscle_cline)
这将代码打印为:
muscle -in Example.fasta -out Examplealn.fasta
然而,当我从命令行运行MUCLE时,它使用格式
muscle -align Example.fasta -ouput Examplealn.fasta
这意味着当我执行python脚本时,它会返回为";无效命令行";我对CL的经验有限,所以我很好奇是否有一种方法可以解决这个问题,而不必以某种方式创建python可执行脚本。
提前感谢
BioPython很好,但如果你能在命令行上让它工作,而不是通过BioPython,最简单的解决方案可能是使用Python而不是BioPython运行命令行命令。
有几种方法可以运行命令,但一个简单的起点是:
import subprocess
subprocess.call('muscle -align %s -output %s'%(input_fname,output_aname))
然后你可以使用BioPython读取多序列比对并对其进行操作