Biopython翻译脚本不起作用?

时间:2012-12-06 12:56:22

标签: python translation sequence biopython

我是Biopython的新手,我只想翻译DNA Fasta文件并将输出写入新文件。我觉得这很容易,但我不能让脚本工作。
这是我的尝试:

#!/usr/bin/env python
import sys
from Bio.Seq import Seq
from Bio.Alphabet import IUPAC

in = open(sys.argv[1],'r')
out = open(sys.argv[2],'w')

messenger_rna = Seq(in, IUPAC.unambiguous_rna)
out = messenger_rna.translate()

out.close()
in.close()

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:3)

虽然我不知道所有这些等是什么,但我确信您对这些文件的处理错误。

特别是

out = open(sys.argv[2],'w')
out = messenger_rna.translate()
out.close()

对我来说似乎不对。

替换中间一行
out.write(messenger_rna.translate())

如果这是.translate()返回的字符串。

进一步优化版本:

#!/usr/bin/env python

import sys
from Bio.Seq import Seq
from Bio.Alphabet import IUPAC

with open(sys.argv[1],'r') as infile: # for auto-closing
    messenger_rna = Seq(infile, IUPAC.unambiguous_rna)
    # if Seq() takes a string rather than a file, do infile.read() instead.

with open(sys.argv[2],'w') as outfile:
    outfile.write(messenger_rna.translate())