我是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()
任何人都知道我做错了什么?
答案 0 :(得分:3)
虽然我不知道所有这些biopython等是什么,但我确信您对这些文件的处理错误。
特别是
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())