diff --git a/misc-scripts/xref_mapping/XrefMapper/ChecksumMapper.pm b/misc-scripts/xref_mapping/XrefMapper/ChecksumMapper.pm index d6a01d7a57e4d479528ffe8712cc8da2a2a71580..3760f99753401f07eeabc1812a9cadf6ee734720 100644 --- a/misc-scripts/xref_mapping/XrefMapper/ChecksumMapper.pm +++ b/misc-scripts/xref_mapping/XrefMapper/ChecksumMapper.pm @@ -23,6 +23,7 @@ use strict; use warnings; use Bio::EnsEMBL::Utils::Exception qw(throw); +use Bio::EnsEMBL::DBSQL::DBConnection; use base qw(XrefMapper::BasicMapper); @@ -77,7 +78,7 @@ sub process { my $target = $self->target(); my $object_type = $self->object_type; - if($self->_map_checksums()) { + if($self->_map_checksums($db_url)) { my $method = $self->get_method(); my $results = $method->run($target, $source_id, $object_type, $db_url); $self->log_progress('Starting upload'); @@ -219,9 +220,21 @@ sub _update_status { } sub _map_checksums { - my ($self) = @_; + my ($self, $db_url) = @_; my $source_id = $self->source_id(); - my $count = $self->_xref_helper()->execute_single_result(-SQL => 'select count(*) from checksum_xref where source_id = ' . $source_id); + my $dbc = $self->mapper->xref->dbc; + if (defined $db_url) { + $source_id = 1; + my ($dbconn_part, $driver, $user, $pass, $host, $port, $dbname, $table_name, $tparam_name, $tparam_value, $conn_param_string) = + $db_url =~ m{^((\w*)://(?:(\w+)(?:\:([^/\@]*))?\@)?(?:([\w\-\.]+)(?:\:(\d*))?)?/([\w\-\.]*))(?:/(\w+)(?:\?(\w+)=([\w\[\]\{\}]*))?)?((?:;(\w+)=(\w+))*)$}; + $dbc = Bio::EnsEMBL::DBSQL::DBConnection->new( + -dbname => $dbname, + -user => $user, + -pass => $pass, + -host => $host, + -port => $port); + } + my $count = $dbc->sql_helper()->execute_single_result(-SQL => 'select count(*) from checksum_xref where source_id = ' . $source_id); return $count; } diff --git a/misc-scripts/xref_mapping/XrefMapper/Methods/MySQLChecksum.pm b/misc-scripts/xref_mapping/XrefMapper/Methods/MySQLChecksum.pm index 4d4722e6896c07641fecb81885f19a06b9d1719f..2473c831925b51797f892e7e5a425f2924f99cba 100644 --- a/misc-scripts/xref_mapping/XrefMapper/Methods/MySQLChecksum.pm +++ b/misc-scripts/xref_mapping/XrefMapper/Methods/MySQLChecksum.pm @@ -21,6 +21,7 @@ package XrefMapper::Methods::MySQLChecksum; use strict; use warnings; +use Bio::EnsEMBL::DBSQL::DBConnection; use base qw/XrefMapper::Methods::ChecksumBasic/; @@ -39,13 +40,10 @@ sub perform_mapping { my @final_results; my $dbc; if (defined $db_url) { - my $parsed_url = Bio::EnsEMBL::Hive::Utils::URL::parse($db_url); - my $user = $parsed_url->{'user'}; - my $pass = $parsed_url->{'pass'}; - my $host = $parsed_url->{'host'}; - my $port = $parsed_url->{'port'}; - my $dbname = $parsed_url->{'dbname'}; - $dbc = Bio::EnSEMBL::DBSQL::DBConnection->new( + $source_id = 1; + my ($dbconn_part, $driver, $user, $pass, $host, $port, $dbname, $table_name, $tparam_name, $tparam_value, $conn_param_string) = + $db_url =~ m{^((\w*)://(?:(\w+)(?:\:([^/\@]*))?\@)?(?:([\w\-\.]+)(?:\:(\d*))?)?/([\w\-\.]*))(?:/(\w+)(?:\?(\w+)=([\w\[\]\{\}]*))?)?((?:;(\w+)=(\w+))*)$}; + $dbc = Bio::EnsEMBL::DBSQL::DBConnection->new( -dbname => $dbname, -user => $user, -pass => $pass,