From ed319106538a97a7cdf4729fa823560b2c6c00f8 Mon Sep 17 00:00:00 2001 From: Marek Szuba <marek.szuba@ebi.ac.uk> Date: Thu, 31 Oct 2019 14:24:06 +0000 Subject: [PATCH] Registry: add support for versioned ncbi_taxonomy DBs See ENSCORESW-3253. If both a versioned and an unversioned database are present, use the versioned one if the version number matches that of the software. --- modules/Bio/EnsEMBL/Registry.pm | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/modules/Bio/EnsEMBL/Registry.pm b/modules/Bio/EnsEMBL/Registry.pm index dc97ac3efd..2ea464296f 100644 --- a/modules/Bio/EnsEMBL/Registry.pm +++ b/modules/Bio/EnsEMBL/Registry.pm @@ -1742,6 +1742,7 @@ sub load_registry_from_db { my $ontology_version; my $taxonomy_db; + my $taxonomy_db_versioned; my $ensembl_metadata_db; my $ensembl_metadata_db_versioned; @@ -1817,6 +1818,11 @@ sub load_registry_from_db { } } elsif ( $db =~ /^ncbi_taxonomy$/ ) { $taxonomy_db = $db; + } + elsif ( $db =~ m{ \A ncbi_taxonomy_(\d+) \z }msx ) { + if ( $1 eq $software_version ) { + $taxonomy_db_versioned = $db; + } } elsif ( $db =~ /^ensembl_metadata$/ ) { $ensembl_metadata_db = $db; } @@ -2327,7 +2333,7 @@ sub load_registry_from_db { # Taxonomy - if ( defined $taxonomy_db) { + if ( ( defined $taxonomy_db ) || ( defined $taxonomy_db_versioned ) ) { my $has_taxonomy = eval {require Bio::EnsEMBL::Taxonomy::DBSQL::TaxonomyDBAdaptor}; if($@ or (!defined $has_taxonomy)) { @@ -2335,6 +2341,16 @@ sub load_registry_from_db { print "ensembl_taxonomy API not found - ignoring $taxonomy_db\n"; } } else { + + my $taxonomy_dbname; + # Versioned database has priority over unversioned one. + if ( defined $taxonomy_db_versioned ) { + $taxonomy_dbname = $taxonomy_db_versioned; + } + else { + $taxonomy_dbname = $taxonomy_db; + } + my $dba = Bio::EnsEMBL::Taxonomy::DBSQL::TaxonomyDBAdaptor->new( '-species' => 'multi' . $species_suffix, '-group' => 'taxonomy', @@ -2342,10 +2358,10 @@ sub load_registry_from_db { '-port' => $port, '-user' => $user, '-pass' => $pass, - '-dbname' => $taxonomy_db, ); + '-dbname' => $taxonomy_dbname, ); if ($verbose) { - printf( "%s loaded\n", $taxonomy_db ); + printf( "%s loaded\n", $taxonomy_dbname ); } } } -- GitLab