[Bioperl-l] Bio::Biblio question

Sean Davis sdavis2 at mail.nih.gov
Thu Sep 2 15:57:52 EDT 2004


Dear all,

I have the following code (below) which works in most cases.  However,  
sometimes, I get.  The failure is due to a very large result set and  
fails at the get_all_ids stage.  I only want the ids and I only want  
the first 200 or so.  Is there a way to QUICKLY (ie., without  
retrieving the entire XML for each) get only the first 200 ids?


my $biblio = Bio::Biblio->new();
     my $new_biblio=$biblio->find([$gene,$mod]);
     my $results=$new_biblio->get_count;
     if ($results) {
       my @ids=map { $_=~ /([0-9]*$)/; $1; } @{$new_biblio->get_all_ids};


------------- EXCEPTION  -------------
MSG: --- SOAP FAULT ---
SOAP-ENV:Server Exception from service object: Limit exceeded. Use  
iterator instead.
STACK  
Bio::DB::Biblio::soap::__ANON__[/Library/Perl/5.8.1/Bio/DB/Biblio/ 
soap.pm:120] /Library/Perl/5.8.1/Bio/DB/Biblio/soap.pm:119
STACK SOAP::Lite::call /Library/Perl/SOAP/Lite.pm:2839
STACK SOAP::Lite::__ANON__[/Library/Perl/SOAP/Lite.pm:2806]  
/Library/Perl/SOAP/Lite.pm:2802
STACK Bio::DB::Biblio::soap::get_all_ids  
/Library/Perl/5.8.1/Bio/DB/Biblio/soap.pm:424
STACK toplevel pubsearch.pl:35

--------------------------------------
         Bio::Root::Root::throw('Bio::DB::Biblio::soap','-text','---  
SOAP FAULT ---\x{a}SOAP-ENV:Server Exception from service obj...')  
called at /Library/Perl/5.8.1/Bio/DB/Biblio/soap.pm line 119
          
Bio::DB::Biblio::soap::__ANON__[/Library/Perl/5.8.1/Bio/DB/Biblio/ 
soap.pm:120]('SOAP::Lite=HASH(0xb8ab08)','SOAP::SOM=HASH(0xd4616c)')  
called at /Library/Perl/SOAP/Lite.pm line 2839
          
SOAP::Lite::call('SOAP::Lite=HASH(0xb8ab08)','getAllIDs','SOAP:: 
Data=HASH(0xd6af78)') called at /Library/Perl/SOAP/Lite.pm line 2802
          
SOAP::Lite::__ANON__[/Library/Perl/SOAP/Lite.pm:2806]('SOAP:: 
Lite=HASH(0xb8ab08)','SOAP::Data=HASH(0xd6af78)') called at  
/Library/Perl/5.8.1/Bio/DB/Biblio/soap.pm line 424
          
Bio::DB::Biblio::soap::get_all_ids('Bio::DB::Biblio:: 
soap=HASH(0xd800d8)') called at pubsearch.pl line 35
Debugged program terminated.  Use q to quit or R to restart,
   use O inhibit_exit to avoid stopping after program termination,
   h q, h R or h O to get additional info.



my $biblio = Bio::Biblio->new();
     my $new_biblio=$biblio->find([$gene,$mod]);
     my $results=$new_biblio->get_count;
     if ($results) {
       my @ids=map { $_=~ /([0-9]*$)/; $1; } @{$new_biblio->get_all_ids};



More information about the Bioperl-l mailing list