2013-06-26 5 views
0

이 코드는 올바르게 작동하지만 지금은 genbank 구조가 변경 되었습니까?genbank formt에서 시퀀스를 꺼냅니다

#!/usr/bin/perl -w                                         
#use strinct ;                                          

use Bio::SeqIO; 
use Bio::Seq; 
use Bio::DB::EUtilities; 


    @refSeqIDs=qw(NC_000915.1 NC_017379.1 NC_017371.1 NC_017354.1); 
    foreach my $refSeqIDs (@refSeqIDs){ 
     my $factory = Bio::DB::EUtilities->new(-eutil => 'efetch',-db=> 'protein',- rettype => 'gb', 
              -email => '[email protected]',-id=> $refSeqIDs); 
     my $rawfile = "$refSeqIDs.gbk"; 
     $factory->get_Response(-file =>"$refSeqIDs.gbk"); 
     my $seqio_object = Bio::SeqIO->new(-format=>"Genbank",-file =>"$refSeqIDs.gbk"); 
     while (my $seq_object=$seqio_object->next_seq){ 
      $sequence=$seq_object->seq; 
      print ("$sequence\n"); 
     } 
    } 
+1

어떤면에서 불평합니까? – Toto

+0

$ 시퀀스가 ​​비어 있습니다. – user1876128

+0

http://www.biostars.org/ – Pierre

답변

0

$sequence이 genbank 레코드에 시퀀스가 ​​없으므로 변수가 비어 있습니다. 이 ID에 대한 전체 게놈 시퀀스를 다운로드하려면 genbank 레코드 대신 fasta를 지정하십시오.

#!/usr/bin/env perl 

use strict; 
use warnings; 
use Bio::DB::EUtilities; 


my @refSeqIDs = qw(NC_000915.1 NC_017379.1 NC_017371.1 NC_017354.1); 

my $factory = Bio::DB::EUtilities->new(-eutil => 'efetch', 
             -db  => 'nucleotide', 
             -rettype => 'fasta', 
             -email => '[email protected]', 
             -id  => \@refSeqIDs); 

print $factory->get_Response->content; 

다른 것을 원한다면 가져 오려고했던 것을 나타내십시오. 또한 이러한 유형의 메시지를 진단하기 위해서는 스크립트 상단에 항상 use strict;use warnings;을 입력하는 것이 좋습니다.