Search code examples
perlbioinformaticsbioperl

BioPerl module Bio::DB::EntrezGene no longer working


I've been using the Bio::DB::EntrezGene module from BioPerl to retrieve Entrez gene names given the numerical ID.

This worked fine for months, and as recently as two weeks ago. Recently, though, it only returns an error.

The strangest thing (to me) is that this happens even if I just run the sample code from the documentation. For example, if I run this:

#!/usr/bin/perl

use strict;
use warnings;
use Bio::DB::EntrezGene;

my $db = Bio::DB::EntrezGene->new;

my $seqio = $db->get_Stream_by_id([2, 4693, 3064]); # Gene ids
    while ( my $seq = $seqio->next_seq ) {
            print "id is ", $seq->display_id, "\n";
    }

exit;

I get this:

Replacement list is longer than search list at /Library/Perl/5.12/Bio/Range.pm line 251.
UNIVERSAL->import is deprecated and will be removed in a future perl at /Library/Perl/5.12/Bio/Tree/TreeFunctionsI.pm line 94
Data Error: none conforming data found on line 1 in /var/folders/2f/55z0d46n3l10bq650j6svgw89rmqw1/T/mkguvw1MOO/VR86iPUDSJ!
first 20 (or till end of input) characters including the non-conforming data:
::= {
  {
    track-
 at /Library/Perl/5.12/Bio/SeqIO/entrezgene.pm line 171

If anyone has any ideas about what might be going on and how to fix it, it'd be much appreciated. Thanks!


Solution

  • You appear to have an error in the data on which this module depends. What is in this folder?

    /var/folders/2f/55z0d46n3l10bq650j6svgw89rmqw1/T/mkguvw1MOO/VR86iPUDSJ!
    

    And how is it generated?


    Update

    You may be pleased to know that I get the same fault. The data is downloaded from the internet, and the source is corrupt. I don't know enough to tell you who to contact, but that is where the fault is.