[Bioperl-l] EUtilities term handling

Sendu Bala bix at sendu.me.uk
Thu Oct 5 07:19:39 UTC 2006


This is actually a general question and not limited to EUtilities. As I 
see it EUtiltiies lets you do queries in Bioperl that you can do on a 
website. The question is, should a Bioperl module always work with 
queries that the website it is a front-end to works with?

So for example, Bio::DB::EUtilities::esearch in -db mode 'gene' is 
essentially a frontend onto:

http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?retmode=xml&db=gene&term=

With a web-browser you can complete that url by supplying a term. For 
example, the term 'BRCA2+9606[taxid]' works and returns results:

http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?retmode=xml&db=gene&term=BRCA2+9606[taxid]

If you supply the exact same term to EUtilities::esearch like so:

my $esearch = Bio::DB::EUtilities->new(-eutil => "esearch", -db => 
"gene", -term "BRCA2+9606[taxid]");

The search fails. From my 'user' perspective this is highly unexpected. 
Chris (the author) and I both understand /why/ it fails, but Chris 
doesn't think it is a bug, or at least something than can/should be 
changed. What do other people think? At the very least, if something 
unexpected happens, I'd suggest making a note of it in the POD 
somewhere. Eg. "Do not use + in term strings, even though they might 
work on the website".

Chris: what is the disadvantage of always submitting '+' as '+' to the 
server?



More information about the Bioperl-l mailing list