[ensembl-dev] local Compara and perl API
Stephen Fitzgerald
stephenf at ebi.ac.uk
Fri Jul 18 14:06:43 BST 2014
Hi Thomas, can you try to specify the compara database schema version (I'm
guessing it's the latest, version 75) in the reg_conf.pl eg.
new Bio::EnsEMBL::Compara::DBSQL::DBAdaptor(
-host => 'xxxx',
-user => 'xxxx',
-port => 5306,
-pass => 'xxxx',
-db_version=>'75',
-species => 'Multi',
-group => 'compara',
-dbname => 'xxxx');
Are you using the same API code version with the same database schema
version (you can find this in the meta table) ?
Can you also try your code with the publicly available ensembl mysql
server using the following reg_conf.pl :
###
use strict;
use Bio::EnsEMBL::Utils::ConfigRegistry;
use Bio::EnsEMBL::DBSQL::DBAdaptor;
use Bio::EnsEMBL::Compara::DBSQL::DBAdaptor;
use Bio::EnsEMBL::Registry;
my @aliases;
new Bio::EnsEMBL::Compara::DBSQL::DBAdaptor(
-host => 'ensembldb.ensembl.org',
-user => 'anonymous',
-species => 'Multi',
-db_version=> 75,
-group => 'compara',
-port => 5306,
-dbname => 'ensembl_compara_75');
1;
You should get the following output:
$VAR1 = bless( {
'_is_multispecies' => '',
'db' => bless( {
'_is_multispecies' => '',
'_dbc' => bless( {
'db_handle3467' =>
bless( {}, 'DBI::db' ),
'connected3467' => 1,
'_password' => sub {
"DUMMY" },
'_username' =>
'anonymous',
'_timeout' => 0,
'_driver_object' =>
bless( {
'_parent' => $VAR1->{'db'}{'_dbc'}
}, 'Bio::EnsEMBL::DBSQL::Driver::mysql' ),
'_host' =>
'ensembldb.ensembl.org',
'_port' => 5306,
'_query_count' => 1,
'_driver' => 'mysql',
'_dbname' =>
'ensembl_compara_75'
},
'Bio::EnsEMBL::DBSQL::DBConnection' ),
'_species' => 'Multi',
'_group' => 'compara',
'_species_id' => 1
},
'Bio::EnsEMBL::Compara::DBSQL::DBAdaptor' ),
'dbc' => $VAR1->{'db'}{'_dbc'},
'species_id' => 1
}, 'Bio::EnsEMBL::Compara::DBSQL::GeneMemberAdaptor' );
Cheers,
Stephen.
On Fri, 18 Jul 2014, Thomas Derrien wrote:
> Hi Stephen,
> Thank you for your reply.
> With your example, I encounter another error (copy-pasted here):
>
> Could not connect to database XXXX as user XXXX using [DBI:mysql:database=XXXXX;host=XXXX;port=5306] as a locator:
> DBI connect(‘database=XXXX;host=genobdd;port=5306’,'XXXX',...) failed: Can't connect to MySQL server on ‘XXXX' (111) at
> src/ensembl/modules/Bio/EnsEMBL/DBSQL/DBConnection.pm line 263.
>
> -------------------- EXCEPTION --------------------
> MSG: Could not connect to database GENOCOMP as user XXXXX using [DBI:mysql:database=XXXXX;host=XXXX;port=5306] as a locator:
> DBI connect(‘database=XXX;host=genobdd;port=5306’,'XXXXX',...) failed: Can't connect to MySQL server on ‘xxxxx' (111) at
> /home/genouest/umr6061/recomgen/tderrien/src/ensembl/modules/Bio/EnsEMBL/DBSQL/DBConnection.pm line 263.
>
> STACK Bio::EnsEMBL::DBSQL::DBConnection::connect
> /home/genouest/umr6061/recomgen/tderrien/src/ensembl/modules/Bio/EnsEMBL/DBSQL/DBConnection.pm:279
> STACK Bio::EnsEMBL::DBSQL::DBConnection::db_handle
> /home/genouest/umr6061/recomgen/tderrien/src/ensembl/modules/Bio/EnsEMBL/DBSQL/DBConnection.pm:676
> STACK Bio::EnsEMBL::DBSQL::DBConnection::prepare
> /home/genouest/umr6061/recomgen/tderrien/src/ensembl/modules/Bio/EnsEMBL/DBSQL/DBConnection.pm:707
> STACK Bio::EnsEMBL::DBSQL::BaseAdaptor::prepare
> /home/genouest/umr6061/recomgen/tderrien/src/ensembl/modules/Bio/EnsEMBL/DBSQL/BaseAdaptor.pm:176
> STACK Bio::EnsEMBL::DBSQL::BaseMetaContainer::list_value_by_key
> /home/genouest/umr6061/recomgen/tderrien/src/ensembl/modules/Bio/EnsEMBL/DBSQL/BaseMetaContainer.pm:121
> STACK Bio::EnsEMBL::DBSQL::BaseMetaContainer::get_schema_version
> /home/genouest/umr6061/recomgen/tderrien/src/ensembl/modules/Bio/EnsEMBL/DBSQL/BaseMetaContainer.pm:77
> STACK Bio::EnsEMBL::Registry::version_check
> /home/genouest/umr6061/recomgen/tderrien/src/ensembl/modules/Bio/EnsEMBL/Registry.pm:2675
> STACK Bio::EnsEMBL::Registry::get_adaptor
> /home/genouest/umr6061/recomgen/tderrien/src/ensembl/modules/Bio/EnsEMBL/Registry.pm:1050
> STACK toplevel connect.pl:7
> Date (localtime) = Fri Jul 18 14:27:14 2014
> Ensembl API version = 75
>
>
> For information, a "normal" connection with "mysql -u XXX -h XXXX -D XXXX -p" works well.
>
> Thank you for your help.
>
> Cheers,
>
> Thomas
>
> Le 18 juil. 2014 à 12:23, Stephen Fitzgerald <stephenf at ebi.ac.uk> a écrit :
>
> Hi Thomas, try using this "reg_conf.pl" file in the same directory as your script:
>
> cat reg_conf.pl
>
>
> ###
> use strict;
> use Bio::EnsEMBL::Utils::ConfigRegistry;
> use Bio::EnsEMBL::DBSQL::DBAdaptor;
> use Bio::EnsEMBL::Compara::DBSQL::DBAdaptor;
> use Bio::EnsEMBL::Registry;
>
> my @aliases;
>
>
> new Bio::EnsEMBL::Compara::DBSQL::DBAdaptor(
> -host => 'xxxx',
> -user => 'xxxx',
> -port => 5306,
> -pass => 'xxxx',
> -species => 'Multi',
> -group => 'compara',
> -dbname => 'xxxx');
>
> 1;
>
>
>
> and call it explicitly in your script.
>
> ###
> use strict;
> use warnings;
> use Data::Dumper;
> use Bio::EnsEMBL::Registry;
>
> Bio::EnsEMBL::Registry->load_all("reg_conf.pl");
> my $member_adaptor = Bio::EnsEMBL::Registry->get_adaptor('Multi', 'compara', 'GeneMember');
> print Dumper $member_adaptor;
> ###
>
> See if this works.
>
> Cheers,
> Stephen.
>
>
>
>
> On Fri, 18 Jul 2014, Thomas Derrien wrote:
>
> Dear all,
> I have installed a local version of the compara database named GENOCOMP (without the core(s)
> databases).
> Then, I would like to use the perl API to query it.
> Here is the simple script I used with the ensembl.init file at the end of the email.
> ###############
> use strict;
> use warnings;
> use Data::Dumper;
> use Bio::EnsEMBL::Registry;
> Bio::EnsEMBL::Registry->load_all();
> my $member_adaptor = Bio::EnsEMBL::Registry->get_adaptor('Compara', 'compara', 'GeneMember');
> print Dumper $member_adaptor;
> #################
> This scripts returns the following error:
> ------------------- WARNING ----------------------
> MSG: Compara is not a valid species name (check DB and API version)
> FILE: Bio/EnsEMBL/Registry.pm LINE: 1198
> CALLED BY: Bio/EnsEMBL/Registry.pm LINE: 983
> Date (localtime) = Fri Jul 18 11:04:36 2014
> Ensembl API version = 75
> ---------------------------------------------------
> -------------------- EXCEPTION --------------------
> MSG: Can not find internal name for species 'Compara'
> STACK Bio::EnsEMBL::Registry::get_adaptor
> /home/genouest/umr6061/recomgen/tderrien/src/ensembl/modules/Bio/EnsEMBL/Registry.pm:985
> STACK toplevel getOrthologAPI_genocomp.pl:65
> Date (localtime) = Fri Jul 18 11:04:36 2014
> Ensembl API version = 75
> ---------------------------------------------------
> I also tried with:
> my $member_adaptor = Bio::EnsEMBL::Registry->get_adaptor(‘Multi', 'compara', 'GeneMember');
> without any success.
> Any help would be much appreciated.
> Thanks in advance
> Thomas
> PS: My ensembl.init file
> $ cat ~/.ensembl_init
> use strict;
> use Bio::EnsEMBL::Utils::ConfigRegistry;
> use Bio::EnsEMBL::DBSQL::DBAdaptor;
> use Bio::EnsEMBL::Compara::DBSQL::DBAdaptor;
> my $host = 'genobdd';
> my $user = 'GENOCOMP';
> my $port = 5306;
> my $dbname = 'GENOCOMP';
> my $pass = ‘XXXXXXXXX';
> new Bio::EnsEMBL::Compara::DBSQL::DBAdaptor(
> -host => $host,
> -user => $user,
> -pass => $pass,
> -port => $port,
> -dbname => $dbname,
> -verbose => 1
> );
> 1;
>
> _______________________________________________
> Dev mailing list Dev at ensembl.org
> Posting guidelines and subscribe/unsubscribe info: http://lists.ensembl.org/mailman/listinfo/dev
> Ensembl Blog: http://www.ensembl.info/
>
>
>
>
More information about the Dev
mailing list