[Bioperl-l] Problem with EUtilities

Warren Gallin wgallin at ualberta.ca
Mon Oct 22 13:53:24 EDT 2007


I've encountered a problem with retrieving a set of records using  
efetch.

Code snippet:

     my $gpeptfactory = Bio::DB::EUtilities->new(
         -eutil   => 'efetch',
         -db      => 'protein',
         -rettype => 'genbank',
         -id      => \@ginumber_search
     );
     $file = 'temp_hold.gb';

     $gpeptfactory->get_Response( -file => $file );



If the array of gi numbers that I submit is large (482 elements does  
not give the problem but 1517 does) I am getting an error at the  
get_response step:

------------- EXCEPTION: Bio::Root::Exception -------------
MSG: Response Error
Request-URI Too Large
STACK: Error::throw
STACK: Bio::Root::Root::throw /Library/Perl/5.8.1/Bio/Root/Root.pm:357
STACK: Bio::DB::GenericWebAgent::get_Response /Library/Perl/5.8.1/Bio/ 
DB/GenericWebAgent.pm:184
STACK: Stable_gb_update.pl:144
-----------------------------------------------------------


Am I correct in thinking that the individual array elements are being  
submitted as part of the URI, and therefore a large array is  
exceeding the acceptable size limit for a URI?

If so, is there a workaround?  Breaking the large request into a set  
of smaller requests?
Or is there a way of submitting a file of gi numbers using  
EUtilities, rather than an array?

Warren Gallin


More information about the Bioperl-l mailing list