[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