diff --git a/modules/Bio/EnsEMBL/Registry.pm b/modules/Bio/EnsEMBL/Registry.pm index dfd8b692fd6c68d9b6d9b4d206387df91059ae04..a26bea4ef504199eb9518db3db1369537f8b890c 100644 --- a/modules/Bio/EnsEMBL/Registry.pm +++ b/modules/Bio/EnsEMBL/Registry.pm @@ -150,6 +150,7 @@ my %group2adaptor = ( 'ontology' => 'Bio::EnsEMBL::DBSQL::OntologyDBAdaptor', 'otherfeatures' => 'Bio::EnsEMBL::DBSQL::DBAdaptor', 'pipeline' => 'Bio::EnsEMBL::Pipeline::DBSQL::DBAdaptor', + 'production' => 'Bio::EnsEMBL::Production::DBSQL::DBAdaptor', 'snp' => 'Bio::EnsEMBL::ExternalData::SNPSQL::DBAdaptor', 'stable_ids' => 'Bio::EnsEMBL::DBSQL::DBAdaptor', 'variation' => 'Bio::EnsEMBL::Variation::DBSQL::DBAdaptor', @@ -1587,6 +1588,11 @@ sub load_registry_from_db { my $ontology_db; my $ontology_version; + my $production_dba_ok = + eval { require Bio::EnsEMBL::Production::DBSQL::DBAdaptor; 1 }; + my $production_db; + my $production_version; + my $stable_ids_db; my $stable_ids_version; @@ -1652,6 +1658,19 @@ sub load_registry_from_db { $ontology_db = $db; $ontology_version = $1; } + } elsif ( $production_dba_ok and $db =~ /^ensembl(?:genomes)?_production(_\d+)?/x ) { + # production db can come with no version (i.e. that on ens-staging1), + # but it's backed up with a release number + my $version = $1; + if ($version) { + $version =~ s/_//; + if ($software_version and $version eq $software_version) { + $production_db = $db; + $production_version = $version; + } + } else { # this is the default choice + $production_db = $db if $db =~ /^ensembl(?:genomes)?_production$/; + } } elsif ( $db =~ /^ensembl(?:genomes)?_stable_ids_(?:\d+_)?(\d+)/x ) { if ( $1 eq $software_version ) { $stable_ids_db = $db; @@ -2065,11 +2084,6 @@ sub load_registry_from_db { } } ## end foreach my $compara_db (@compara_dbs) } ## end else [ if ($@) - - Bio::EnsEMBL::Utils::ConfigRegistry->add_alias( - -species => 'multi'.$species_suffix, - -alias => ['compara'.$species_suffix] ); - } elsif ($verbose) { print("No Compara databases found\n"); } @@ -2105,11 +2119,6 @@ sub load_registry_from_db { join( ', ', @ancestral_dbs ) ); } } - - Bio::EnsEMBL::Utils::ConfigRegistry->add_alias( - -species => 'Ancestral sequences'.$species_suffix, - -alias => ['ancestral_sequences'.$species_suffix] ); - } elsif ($verbose) { print("No ancestral database found\n"); } @@ -2132,16 +2141,35 @@ sub load_registry_from_db { if ($verbose) { printf( "%s loaded\n", $ontology_db ); } + } + elsif ($verbose) { + print("No ontology database found\n"); + } - Bio::EnsEMBL::Utils::ConfigRegistry->add_alias( - -species => 'multi'.$species_suffix, - -alias => ['ontology'.$species_suffix] ); + # Production + + if ( $production_dba_ok and defined($production_db) ) { + # require Bio::EnsEMBL::Production::DBSQL::DBAdaptor; + my $dba = + Bio::EnsEMBL::Production::DBSQL::DBAdaptor->new( + '-species' => 'multi' . $species_suffix, + '-group' => 'production', + '-host' => $host, + '-port' => $port, + '-user' => $user, + '-pass' => $pass, + '-dbname' => $production_db, ); + + if ($verbose) { + printf( "%s loaded\n", $production_db ); + } } elsif ($verbose) { - print("No ontology database found\n"); + print("No production database or adaptor found\n"); } + # Stable IDs if ( defined($stable_ids_db) && $stable_ids_version != 0 ) { @@ -2159,11 +2187,29 @@ sub load_registry_from_db { printf( "%s loaded\n", $stable_ids_db ); } + } + + + Bio::EnsEMBL::Utils::ConfigRegistry->add_alias( + -species => 'multi'.$species_suffix, + -alias => ['compara'.$species_suffix] ); + + Bio::EnsEMBL::Utils::ConfigRegistry->add_alias( + -species => 'multi'.$species_suffix, + -alias => ['ontology'.$species_suffix] ); + + $production_dba_ok and Bio::EnsEMBL::Utils::ConfigRegistry->add_alias( - -species => 'multi'.$species_suffix, - -alias => ['stable_ids'.$species_suffix] ); + -species => 'multi'.$species_suffix, + -alias => ['production'.$species_suffix] ); - } + Bio::EnsEMBL::Utils::ConfigRegistry->add_alias( + -species => 'multi'.$species_suffix, + -alias => ['stable_ids'.$species_suffix] ); + + Bio::EnsEMBL::Utils::ConfigRegistry->add_alias( + -species => 'Ancestral sequences'.$species_suffix, + -alias => ['ancestral_sequences'.$species_suffix] ); # Register aliases as found in adaptor meta tables.