Bio-EnsEMBL
view release on metacpan or search on metacpan
lib/Bio/EnsEMBL/Registry.pm view on Meta::CPAN
-species => $species.$species_suffix,
-host => $host,
-user => $user,
-pass => $pass,
-port => $port,
-dbname => $database,
-wait_timeout => $wait_timeout,
-no_cache => $no_cache );
if ($verbose) {
printf( "Species '%s' loaded from database '%s'\n",
$species, $database );
}
}
}
# Register multi-species databases
my @multi_dbs = grep { /^\w+_collection_core_\w+$/ } @dbnames;
if (!$ignore_multi) {
foreach my $multidb (@multi_dbs) {
my $sth = $dbh->prepare(
sprintf(
"SELECT species_id, meta_value FROM %s.meta "
. "WHERE meta_key = 'species.db_name'",
$dbh->quote_identifier($multidb) ) );
$sth->execute();
my ( $species_id, $species );
$sth->bind_columns( \( $species_id, $species ) );
while ( $sth->fetch() ) {
my $dba = Bio::EnsEMBL::DBSQL::DBAdaptor->new(
-group => "core",
-species => $species.$species_suffix,
-species_id => $species_id,
-multispecies_db => 1,
-host => $host,
-user => $user,
-pass => $pass,
-port => $port,
-dbname => $multidb,
-wait_timeout => $wait_timeout,
-no_cache => $no_cache
);
if ($verbose) {
printf( "Species '%s' (id:%d) loaded from database '%s'\n",
$species, $species_id, $multidb );
}
}
} ## end foreach my $multidb (@multi_dbs)
}
if(!$core_like_dbs_found && $verbose) {
print("No core-like databases found. Check your DB_VERSION (used '$software_version')\n");
}
# User upload DBs
my @userupload_dbs = grep { /_userdata$/ } @dbnames;
if (!$ignore_multi) {
for my $userupload_db (@userupload_dbs) {
if ( index( $userupload_db, 'collection' ) != -1 ) {
# Skip multi-species databases.
next;
}
my ($species) = ( $userupload_db =~ /(^.+)_userdata$/ );
my $dba =
Bio::EnsEMBL::DBSQL::DBAdaptor->new(
-group => "userupload",
-species => $species.$species_suffix,
-host => $host,
-user => $user,
-pass => $pass,
-port => $port,
-wait_timeout => $wait_timeout,
-dbname => $userupload_db,
-no_cache => $no_cache );
if ($verbose) {
printf( "%s loaded\n", $userupload_db );
}
}
}
# Register multi-species userupload databases.
my @userdata_multidbs = grep { /^.+_collection_userdata$/ } @dbnames;
if (!$ignore_multi) {
foreach my $multidb (@userdata_multidbs) {
my $sth = $dbh->prepare(
sprintf(
"SELECT species_id, meta_value FROM %s.meta "
. "WHERE meta_key = 'species.db_name'",
$dbh->quote_identifier($multidb) ) );
$sth->execute();
my ( $species_id, $species );
$sth->bind_columns( \( $species_id, $species ) );
while ( $sth->fetch() ) {
my $dba = Bio::EnsEMBL::DBSQL::DBAdaptor->new(
-group => "userupload",
-species => $species.$species_suffix,
-species_id => $species_id,
-multispecies_db => 1,
-host => $host,
-user => $user,
-pass => $pass,
-port => $port,
-dbname => $multidb,
-wait_timeout => $wait_timeout,
-no_cache => $no_cache
);
if ($verbose) {
printf( "Species '%s' (id:%d) loaded from database '%s'\n",
$species, $species_id, $multidb );
}
}
} ## end foreach my $multidb (@userdata_multidbs)
}
# Variation
my $test_eval = eval "require Bio::EnsEMBL::Variation::DBSQL::DBAdaptor"; ## no critic
if ($@or (!$test_eval)) {
# Ignore variations as code required not there for this
if ($verbose) {
print(
"Bio::EnsEMBL::Variation::DBSQL::DBAdaptor module not found "
. "so variation databases will be ignored if found\n" );
}
}
else {
my @variation_dbs =
grep { /^[a-z]+_[a-z0-9]+(?:_[a-z0-9]+)?_variation_(?:\d+_)?\d+_/ } @dbnames;
if(! @variation_dbs && $verbose) {
print("No variation databases found\n");
}
for my $variation_db (@variation_dbs) {
if ( index( $variation_db, 'collection' ) != -1 ) {
# Skip multi-species databases.
next;
}
my ( $species, $num ) =
( $variation_db =~ /(^[a-z]+_[a-z0-9]+(?:_[a-z0-9]+)?)_variation_(?:\d+_)?(\d+)_/ );
my $dba =
Bio::EnsEMBL::Variation::DBSQL::DBAdaptor->new(
-group => "variation",
-species => $species.$species_suffix,
-host => $host,
-user => $user,
-pass => $pass,
-port => $port,
-wait_timeout => $wait_timeout,
-dbname => $variation_db,
-no_cache => $no_cache );
( run in 1.917 second using v1.01-cache-2.11-cpan-b16cb0d3907 )