вытащить последовательность из формы генбанка

Этот код работал правильно, но теперь он жалуется, изменилась ли структура генбанка?

#!/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");
        }
    }

person user1876128    schedule 26.06.2013    source источник
comment
Каким образом он жалуется?   -  person Toto    schedule 26.06.2013
comment
вы также можете спросить biostars.org   -  person Pierre    schedule 26.06.2013


Ответы (1)


Ваша переменная $sequence пуста, потому что в этих записях генбанка нет последовательностей. Если вы просто хотите загрузить полные последовательности генома для этих идентификаторов, просто укажите, что вам нужна быстрая запись вместо записи генбанка.

#!/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; в начало вашего скрипта для диагностики этих типов сообщений.

person SES    schedule 27.06.2013