2012-12-06 5 views
0

저는 Biopython을 처음 사용하기 때문에 단순히 DNA Fasta 파일을 번역하고 출력을 새로운 파일에 쓰려고합니다. 나는 그것이 쉬울 것이라고 생각했지만 스크립트를 작동시킬 수는 없다.Biopython 번역 스크립트가 작동하지 않습니까?

#!/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

이 오류를 얻고있다 :

는 또한 버전에 최적화? 기대하지 않는다는 것을 당신은 무엇을보고 있습니까? – thegrinner

답변

3

이 모든 것이 무엇인지 모르겠지만, 나는이 파일을 잘못 취급한다고 확신합니다.

는 특히

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

나에게 잘못 보인다. 즉, 문자열 무엇 .translate() 반환하는 경우

out.write(messenger_rna.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()) 
+0

예, Glglgl이 맞습니다. 원본 코드는 출력 핸들을 열고이를 '출력'으로 저장 한 다음 변환 된 시퀀스를 만들고 '출력'변수에 지정합니다 (출력 핸들의 write 메소드를 호출해야 함). 이렇게하면 출력 핸들에 대한 참조가 삭제되고 자동으로 닫힙니다. 마지막으로 번역 된 시퀀스를 닫으라고 말하면 실패합니다. – peterjc

+0

정말 고마워요! – user1882385

+0

@ user1882385 Ckeck 마크를 클릭하여 가장 도움이되는 답을 수령 해 주셔서 감사합니다. :-) – glglgl

관련 문제