[Bioperl-l] An example to query PMID given GEO accession number?

Peng Yu pengyu.ut at gmail.com
Mon Jun 15 01:58:06 UTC 2015


On Sun, Jun 14, 2015 at 8:33 PM, Smithies, Russell
<Russell.Smithies at agresearch.co.nz> wrote:
> You need to specify you want to use history - it doesn't do it by default.
>
> my $factory = Bio::DB::EUtilities->new(
>         -eutil   => 'esearch',
>         -db      => 'gds',
>         -term    => "${geo}[ACCN] AND (gse[ETYP] OR gds[ETYP])",
>         -email   => 'x at y.com',
>         -usehistory => 'y',   <<<<============
> );

I still can't get the correct result (it should be 23028701). Could
you try the code and see if it works on your machine?

$ ./main.pl
Query translation: GSE39684[ACCN] AND gse[ETYP]
Count = 1
200039684
$ cat main.pl
#!/usr/bin/env perl

use strict;
use warnings;
use autodie;

use FindBin;
use lib "$FindBin::Bin/.";
use Bio::DB::EUtilities;

# want to get PMID 23028701
my $geo        = "GSE39684";
my $factory = Bio::DB::EUtilities->new(
  -eutil   => 'esearch',
  -db      => 'gds',
  #-term    => "${geo}[ACCN] AND (gse[ETYP] OR gds[ETYP])", # whether
I use this line or the following line, the result is the same.
  -term    => "${geo}[ACCN] AND (gse[ETYP])",
  -email   => 'x at y.com',
  -usehistory => 'y',
);

# query terms are mapped; what's the actual query?
print "Query translation: ",$factory->get_query_translation,"\n";
# query hits
print "Count = ",$factory->get_count,"\n";
# UIDs
my @ids = $factory->get_ids;
print "@ids\n";


-- 
Regards,
Peng


More information about the Bioperl-l mailing list