Python的肌肉排列

2024-09-29 22:04:08 发布

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

我在python中从muscle aligning打印输出时遇到问题。我的代码是:

from Bio.Align.Applications import MuscleCommandline
from StringIO import StringIO
from Bio import AlignIO

def align_v1 (Fasta): 
    muscle_cline = MuscleCommandline(input="hiv_protease_sequences_w_wt.fasta")
    stdout, stderr = muscle_cline()
    MultipleSeqAlignment = AlignIO.read(StringIO(stdout), "fasta") 
    print MultipleSeqAlignment 

有什么帮助吗?在


Tags: 代码fromimportstdoutfastabioalign打印输出
1条回答
网友
1楼 · 发布于 2024-09-29 22:04:08

很高兴知道您收到了什么错误,但以下内容可以解决您的问题:

from Bio.Align.Applications import MuscleCommandline
from StringIO import StringIO
from Bio import AlignIO

muscle_exe = r"C:\muscle3.8.31_i86win32.exe" #specify the location of your muscle exe file

input_sequences = "hiv_protease_sequences_w_wt.fasta"
output_alignment = "output_alignment.fasta"

def align_v1 (Fasta): 
    muscle_cline = MuscleCommandline(muscle_exe, input=Fasta, out=output_alignment)
    stdout, stderr = muscle_cline()
    MultipleSeqAlignment = AlignIO.read(output_alignment, "fasta") 
    print MultipleSeqAlignment

align_v1(input_sequences)

在我的例子中,我收到一个值错误:

^{pr2}$

通过保存输出并用重新打开可以避免这种情况对齐.read. 在

我还收到了一个FileNotFoundError,可以通过指定muscle exe文件的位置来避免这个错误。例如:

muscle_exe = r"C:\muscle3.8.31_i86win32.exe" 

这方面的说明显示在帮助(MuscleCommandline)中,但目前在Biopython教程页面中没有。在

最后,假设您希望使用不同的输入序列来运行该命令,因此我将函数修改为“function_name(input_file)”格式

我使用了python3.3。希望上面的代码是为Python2.x编写的,就像您在最初的文章中那样。对于python3.x,将“from StringIO import StringIO”更改为“from io import StringIO”,当然也可以将“print MultipleSeqAlignment”更改为“print(MultipleSeqAlignment)”。在

相关问题 更多 >

    热门问题