2014-10-23 4 views
0

BioPerl을 사용하여 GenBank 파일에서 CDS 및 해당 아미노산 서열을 추출하려고합니다. 스크립트는 아래와 같습니다BioPerl : CDS 오류 추출

while (my $seq_object = $in->next_seq){ 
for my $feat_object ($seq_object->get_SeqFeatures) { 
    if ($feat_object ->primary_tag eq "CDS") { 
    # warn("all tags are ", join ("," , $feat_object->get_all_tags),"\n");   
     if ($feat_object->has_tag ("protein_id")){ 
      my ($protein_id) = $feat_object->get_tag_values('protein_id'); 
      my ($pseq) = $feat_object->get_tag_values('translation') ; 
      my ($pepseq) = Bio::Seq->new(-id => $protein_id , -description => $seq_object -> accession_number, 
       -seq => $pseq); 
      $out->write_seq($pepseq); 
     } 
    } 
} 

}

내가 같은 오류 메시지가 점점 오전 : 핸들 GEN1이 /Library/Perl/5.12/Bio/Root/IO.pm 라인 (533)에 입력 전용 열, 행 148.

이 문제를 해결하는 데 도움이됩니다.

미리 감사드립니다.

+0

전체 스크립트를 표시하지 않았습니다. '$ out '을 어떻게 만들었습니까? 그것은'Bio :: SeqIO' 객체입니까? – SES

+0

예, $ out 파일은 Bio :: SeqIO 개체입니다. My $ out = Bio :: SeqIO-> new (-file => "Oct_test.fasta", -format => 'fasta') ; – RonnB

답변

0

오류의 원인 일 수 있으므로 답변으로 추가하겠습니다. 출력을 위해 Bio::SeqIO 오브젝트를 작성할 때 open에 대한 일반 Perl 규칙을 따라야하고 출력용 파일을 지정해야합니다. 따라서 다음을 시도해보십시오.

my $out = Bio::SeqIO->new(-file => ">Oct_test.fasta", -format => 'fasta'); 

이것은 잊기 쉬운 것이고 오류 메시지는 좀 더 설명력이 있습니다.

관련 문제