3

I'm posting this message out of pure desperation, because I really don't know what else to try. I'm a beginner in bioperl and I'm working on a script to parse out some results I got from MolQuest fgenesh. Results are out in .txt format and I want to parse them to GFF and fasta file for mRNA and protein sequences to facilitate comparison with other results we have. So I found the Bio::Tools::Fgenesh module and I'm working on a script with it. Problem is, BioPerl doesn't seem to work on my ubuntu pc

I followed the instructions here http://www.bioperl.org/wiki/Installing_Bioperl_for_Unix . I managed to install CPAN in root mode (otherwise it wouldn't work) and BioPerl via CPAN. All tests were ok, but when I ran this script to test the installation

 use strict;
 use warnings;

 use Getopt::Long;
 use Bio::EnsEMBL::Registry;

 my $reg = "Bio::EnsEMBL::Registry";
 $reg->load_registry_from_db(
              -host => "ensembldb.ensembl.org",
              -user => "anonymous"
 );
 my $db_list=$reg->get_all_adaptors();
 my @line;

foreach my $db (@$db_list){
    @line = split ('=',$db);
    print $line[0]."\n";
 }

I got the error: "Can't locate Bio/EnsEMBL/Registry.pm in @INC"

I tried to install BioPerl again via Build.PL, running as root, but still came to the same outcome.

Thanks for your help Merche

user1192137
  • 59
  • 2
  • 5

2 Answers2

3

You seem to be attempting to use the Ensembl API. This is not part of the BioPerl distribution. Please see http://www.ensembl.org/info/docs/api/api_installation.html for more information about how to install it. We do not recommend you install this in any of the default Perl library location as the API is heavily tied into the data made in the same release. Ensembl provides 4-5 releases per year so maintaining this can be difficult.

Should you have anymore issues then you can contact the developers. We have an active developers mailing list & a helpdesk. See http://www.ensembl.org/info/about/contact/index.html for more information.

andeyatz
  • 428
  • 3
  • 9
0

I had ecountered the same error as you, working on a windows 64x. Seems Bio::EnsEMBL::Registry is not recognized on my windows computer. Following all the ENSEMBL-API instructions, I finally came across a debugging page (http://www.ensembl.org/info/docs/api/debug_installation_guide.html). After running C:\src\ensembl/misc-scripts/ping_ensembl.pl, I got again the same error message as listed above.

According to the PERL API help for windows, I need to run "set PERL5LIB=C:\src\bioperl-1.2.3;C:\src\ensembl\modules;C:\src\ensembl-compara\modules;C:\src\ensembl-variation\modules;C:\src\ensembl-funcgen\modules" from the cmd box. Did that, but error remained the same.

Now I included these paths (C:\src\bioperl-1.2.3;C:\src\ensembl\modules;C:\src\ensembl-compara\modules;C:\src\ensembl-variation\modules;C:\src\ensembl-funcgen\modules) directly in my perl script, and this seems to work. Probably this is not the way to do it, but as long as it works, I'm happy. See an example script (based on excercises provided by Bert Overduin) below:

#!/usr/bin/perl -w

use lib "C:/src/ensembl/modules";

use lib "C:/src/ensembl/modules/Bio/EnsEMBL";

use lib "C:/src/ensembl-compara/modules/Bio/EnsEMBL/Compara";

use lib "C:/src/ensembl-functgenomics/modules/Bio/EnsEMBL/Funcgen";

use lib "C:/src/ensembl-variation/modules/Bio/EnsEMBL/Variation";

use strict;

use Bio::EnsEMBL::Registry;

my $registry = 'Bio::EnsEMBL::Registry';

$registry->load_registry_from_db(

-host => 'ensembldb.ensembl.org',

-user => 'anonymous',

-verbose => '1'

);

my $slice_adaptor = Bio::EnsEMBL::Registry->get_adaptor( "human", "core", "slice" );

get a slice on the entire chromosome X

my $chr_slice = $slice_adaptor->fetch_by_region( 'chromosome', '13', 32_889_000, >32_891_000 );

print "#######################################################\n";

print $chr_slice->seq;

Or alternatively:

#!/usr/bin/perl -w

BEGIN{ push @INC,'C:/src/bioperl-live','C:/src/ensembl/modules','C:/src/ensembl-compara/modules','C:/src/ensembl-variation/modules','C:/src/ensembl-functgenomics/modules';};

use strict;

use Bio::EnsEMBL::Registry;

my $registry = 'Bio::EnsEMBL::Registry';

$registry->load_registry_from_db(

-host => 'ensembldb.ensembl.org',

-user => 'anonymous',

-verbose => '1'

);

my $slice_adaptor = Bio::EnsEMBL::Registry->get_adaptor( "human", "core", "slice" );

get a slice on the entire chromosome X

my $chr_slice = $slice_adaptor->fetch_by_region( 'chromosome', '13', 32_889_000, >32_891_000 );

print "#######################################################\n";

print $chr_slice->seq;