【问题标题】:Why is the output file from Biopython not found?为什么找不到 Biopython 的输出文件?
【发布时间】:2021-06-24 14:00:20
【问题描述】:

我使用 Mac 工作。我一直在尝试使用 Muscle 在 Python 中进行多序列比对。这是我一直在运行的代码:

from Bio.Align.Applications import MuscleCommandline
cline = MuscleCommandline(input="testunaligned.fasta", out="testunaligned.aln", clwstrict=True)
print(cline)
from Bio import AlignIO
align = AlignIO.read(open("testunaligned.aln"), "clustal")
print(align)

我不断收到以下错误:

FileNotFoundError: [Errno 2] No such file or directory: 'testunaligned.aln'

有谁知道我该如何解决这个问题?总的来说,我对 Python 和计算机科学非常陌生,我完全不知所措。谢谢!

【问题讨论】:

  • 你安装了 MUSCLE 吗?你没有给出 MuscleCommandline 的路径
  • 我已经安装了 MUSCLE。我如何给出它的路径?
  • 你没有运行 MUSCLE,只是打印出命令行文本。运行 open("testunaligned.aln") 时不存在对齐文件。您应该能够使用 cline() 来运行 MUSCLE(前提是可执行文件在您的环境路径中,或者您提供了可执行文件的完整路径)。

标签: bioinformatics biopython sequence-alignment


【解决方案1】:

您的代码中的cline 是您使用所有参数初始化的MuscleCommandline 对象的实例。初始化之后,这个实例就可以运行muscle了,但是只有你调用它才会这样做。这意味着你必须调用cline()

当您简单地print cline 对象时,它将返回与您可以在命令行上手动运行的命令相对应的字符串,以获得与调用 cline() 时相同的结果。

这里是工作代码:

from Bio.Align.Applications import MuscleCommandline
cline = MuscleCommandline(
    input="testunaligned.fasta", 
    out="testunaligned.aln", 
    clwstrict=True
)
print(cline)
cline() # this is where mucle runs
from Bio import AlignIO
align = AlignIO.read(open("testunaligned.aln"), "clustal")
print(align)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-09
    • 2016-08-20
    • 2011-12-14
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    相关资源
    最近更新 更多