0

我是 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()

有人知道我在做什么错吗?

4

1 回答 1

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())
于 2012-12-06T13:01:23.333 回答