From 4f1437a0258ceba00d40127a51f77d371f510922 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Kusalananda=20K=C3=A4h=C3=A4ri?= <ak4@sanger.ac.uk> Date: Mon, 12 Sep 2011 10:38:20 +0000 Subject: [PATCH] Correctly pick up Ensembl Genomes ontology database. --- modules/Bio/EnsEMBL/Registry.pm | 73 +++++++++++++++++---------------- 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/modules/Bio/EnsEMBL/Registry.pm b/modules/Bio/EnsEMBL/Registry.pm index 67c3bd2a4d..c88888d6b9 100644 --- a/modules/Bio/EnsEMBL/Registry.pm +++ b/modules/Bio/EnsEMBL/Registry.pm @@ -257,7 +257,7 @@ sub load_all { } if ( defined $cfg ) { - my %default_adaptor_args = (); + my %default_adaptor_args = (); if ( $cfg->SectionExists('default') ) { # The 'default' section is special. It contain default @@ -1291,8 +1291,8 @@ sub change_access{ (((!defined($user)) or ($user eq $dbc->username))) and ((!defined($dbname)) or ($dbname eq $dbc->dbname))){ if($dbc->connected()){ - $dbc->db_handle->disconnect(); - $dbc->connected(undef); + $dbc->db_handle->disconnect(); + $dbc->connected(undef); } # over write the username and password $dbc->username($new_user); @@ -1471,7 +1471,8 @@ sub load_registry_from_db { $species_suffix = ""; } - my $ontology_version = 0; + my $ontology_db; + my $ontology_version; $user ||= "ensro"; if ( !defined($port) ) { @@ -1513,10 +1514,12 @@ sub load_registry_from_db { } } elsif ( $db =~ /^(.+)_(userdata)$/x ) { $temp{$1} = $2; - } elsif ( $db =~ /^(ensembl_compara # compara database + } elsif ( + $db =~ /^(ensembl_compara # compara database (?:_\w+)*?) # optional ensembl genomes bit _ - (\d+)$/x ) { # db version + (\d+)$/x ) + { # db version if ( $2 eq $software_version ) { $temp{$1} = $2; } @@ -1524,20 +1527,23 @@ sub load_registry_from_db { if ( $2 eq $software_version ) { $temp{$1} = $2; } - } elsif ( $db =~ /^(ensembl(?:genomes)_ontology)_(\d+)/x ) { - if ( $2 eq $software_version ) { - $ontology_version = $2; + } elsif ( $db =~ /^ensembl(?:genomes)?_ontology_(?:\d+_)?(\d+)/x ) { + if ( $1 eq $software_version ) { + $ontology_db = $db; + $ontology_version = $1; } - } elsif ( $db =~ /^([a-z]+_[a-z0-9]+ # species name e.g. homo_sapiens - _ - [a-z]+ # db type - (?:_\d+)?) # optional end bit for ensembl genomes databases - _ - (\d+) # database release - _ - (\w+) # assembly number can have letters too e.g 37c - /x - ) { + } elsif ( + $db =~ /^([a-z]+_[a-z0-9]+ # species name e.g. homo_sapiens + _ + [a-z]+ # db type + (?:_\d+)?) # optional end bit for ensembl genomes databases + _ + (\d+) # database release + _ + (\w+) # assembly number can have letters too e.g 37c + /x + ) + { # Species specific databases (core, cdna, vega etc.) @@ -1566,7 +1572,7 @@ sub load_registry_from_db { my @dbs = grep { /^[a-z]+_[a-z0-9]+ # species name _ $type # the database type - _ + _ (?:\d+_)? # optional end bit for ensembl genomes \d+ # database release _ @@ -1574,13 +1580,13 @@ sub load_registry_from_db { foreach my $database (@dbs) { if ( index( $database, 'collection' ) != -1 ) { - # Skip multi-species databases. - next; + # Skip multi-species databases. + next; } my ( $species, $num ) = - ( $database =~ /(^[a-z]+_[a-z0-9]+) # species name + ( $database =~ /(^[a-z]+_[a-z0-9]+) # species name _ $type # type _ @@ -1594,7 +1600,7 @@ sub load_registry_from_db { } my $dba = - Bio::EnsEMBL::DBSQL::DBAdaptor->new( + Bio::EnsEMBL::DBSQL::DBAdaptor->new( -group => $type, -species => $species.$species_suffix, -host => $host, @@ -1606,8 +1612,8 @@ sub load_registry_from_db { -no_cache => $no_cache ); if ($verbose) { - printf( "Species '%s' loaded from database '%s'\n", - $species, $database ); + printf( "Species '%s' loaded from database '%s'\n", + $species, $database ); } } } @@ -1916,9 +1922,6 @@ sub load_registry_from_db { if ( $ontology_version != 0 ) { require Bio::EnsEMBL::DBSQL::OntologyDBAdaptor; - my $ontology_db = - sprintf( "ensembl_ontology_%d", $ontology_version ); - my $dba = Bio::EnsEMBL::DBSQL::OntologyDBAdaptor->new( '-species' => 'multi'.$species_suffix, '-group' => 'ontology', @@ -2079,7 +2082,7 @@ sub find_and_add_aliases { } elsif ( $lc_species ne $class->get_alias( $alias_suffix ) ) { - $class->remove_alias( $species, $alias_suffix ); + $class->remove_alias( $species, $alias_suffix ); } } @@ -2272,11 +2275,11 @@ sub add_new_tracks{ if(defined($species_reg)){ foreach my $dba (@{$reg->get_all_DBAdaptors()}){ if(!$reg->default_track($dba->species,$dba->group)){ - $pars{'available'} = "species ".$reg->get_alias($dba->species()); - $pars{'db_alias'} = $dba->group(); -# print STDERR "Adding new track for ".$dba->species."\t".$dba->group."\n"; - $conf->add_new_track_generictranscript('',$dba->group(), "black",$pos,%pars); - $pos++; + $pars{'available'} = "species ".$reg->get_alias($dba->species()); + $pars{'db_alias'} = $dba->group(); +# print STDERR "Adding new track for ".$dba->species."\t".$dba->group."\n"; + $conf->add_new_track_generictranscript('',$dba->group(), "black",$pos,%pars); + $pos++; } } } -- GitLab