use strict;
use warnings;
use Test::More tests => 19;
use Bio::Homology::InterologWalk;
my $sourceorg = 'Mus musculus';
my $destorg = 'all';
my $url = "http://www.ebi.ac.uk/Tools/webservices/psicquic/intact/webservices/current/";
my $test_data_dir = 't/testdata/';
my $ont_path = 'scripts/Data/psi-mi.obo';
require_ok('Bio::Perl');
require_ok('Bio::EnsEMBL::Registry') or diag(
"The Ensembl Perl API was not found.\n"
);
BEGIN { use_ok('Bio::Homology::InterologWalk') };
diag("\n");
diag("\n#######PLEASE NOTE######\n");
diag("########################\n");
diag("In order for some of the following tests to succeed, \n");
diag("remote services provided by Ensembl and Intact MUST BE ACTIVE.\n");
diag("in case of multiple test failure,\n");
diag("please check status of Ensembl services on announce\@ensembl.org\n");
diag("and status of EBI Intact PSICQUIC service on\n");
diag("www.ebi.ac.uk/Tools/webservices/psicquic/registry/registry?action=STATUS\n");
diag("########################\n");
diag("########################\n\n");
diag("Testing interfaces to remote services..Please be patient..\n\n");
my %adaptor_options = (
'Ensembl_Vertebrates' => ['ensembl' , 'Mus musculus' ],
'Ensembl_Genomes_Metazoa' => ['metazoa' , 'Caenorhabditis elegans' ],
'Ensembl_Multiple' => ['all' , 'Drosophila melanogaster'],
);
while (my ($key, $value) = each(%adaptor_options)){
my $reg = Bio::Homology::InterologWalk::setup_ensembl_adaptor(
connect_to_db => $value -> [0],
source_org => $value -> [1],
dest_org => 'all',
);
SKIP: {
if(!$reg){
diag("\n\n===$key DB: WARNING===\n");
diag("No EnsemblGenomes Metazoa DBs available for connection with the Ensembl API version installed.\n");
diag("You WILL NOT be able to query EnsemblGenomes Metazoa data. Skipping test..\n");
diag("======================\n\n");
skip('An EnsemblCompara DB compatible with the Ensembl API you have installed could not be found', 2);
}
ok( defined $reg, "setup_ensembl_adaptor() ($key DB) - return value appears to be correct." );
ok( $reg->isa('Bio::EnsEMBL::Registry'), "setup_ensembl_adaptor() ($key DB) - connection successful." );
}
$reg->clear() if($reg);
}
my $registry = Bio::Homology::InterologWalk::setup_ensembl_adaptor(
connect_to_db => 'ensembl',
source_org => 'Mus musculus',
dest_org => 'all',
);
my $in_path = $test_data_dir . "mmus.txt";
my $out_path = $test_data_dir . "mmus.test1";
my $rc_1 = Bio::Homology::InterologWalk::get_direct_interactions(
registry => $registry,
source_org => $sourceorg,
input_path => $in_path,
output_path => $out_path,
url => $url,
);
ok( defined $rc_1, "get_direct_interactions() return value appears to be correct" );
$out_path = $test_data_dir . "mmus.test2";
my $rc_2 = Bio::Homology::InterologWalk::get_forward_orthologies(
registry => $registry,
ensembl_db => 'ensembl',
input_path => $in_path,
output_path => $out_path,
source_org => $sourceorg,
dest_org => $destorg,
hq_only => 1
);
ok( defined $rc_2, "get_forward_orthologies() return value appears to be correct" );
$in_path = $out_path;
$out_path = $test_data_dir . "mmus.test3";
my $rc_3 = Bio::Homology::InterologWalk::get_interactions(
input_path => $in_path,
output_path => $out_path,
url => $url,
);
ok( defined $rc_3, "get_interactions() return value appears to be correct" );
$in_path = $out_path;
$out_path = $test_data_dir . "mmus.test4";
my $rc_4 = Bio::Homology::InterologWalk::get_backward_orthologies(
registry => $registry,
ensembl_db => 'ensembl',
input_path => $in_path,
output_path => $out_path,
source_org => $sourceorg,
hq_only => 1
);
ok( defined $rc_4, "get_backward_orthologies() return value appears to be correct" );
$in_path = $out_path;
$out_path = $test_data_dir . "mmus.test5";
my $rc_5 = Bio::Homology::InterologWalk::do_counts(
input_path => $in_path,
output_path => $out_path
);
ok( defined $rc_5, "do_counts() return value appears to be correct" );
my $onto_graph = Bio::Homology::InterologWalk::Scores::parse_ontology($ont_path);
ok( defined $onto_graph, "parse_ontology() returns non null value." );
ok( $onto_graph->isa('GO::Model::Graph'), "parse_ontology() returns correct object" );
$in_path = $out_path;
$out_path = $test_data_dir . "mmus.test6";
my $rc_6 = Bio::Homology::InterologWalk::Scores::compute_prioritisation_index(
input_path => $in_path,
output_path => $out_path,
term_graph => $onto_graph,
#test
meanscore_em => 1,
meanscore_it => 1,
meanscore_dm => 1,
meanscore_me_dm => 1,
meanscore_me_taxa => 1
);
ok( defined $rc_6, "compute_confidence_score() return value appears to be correct" );
my $rc_7 = Bio::Homology::InterologWalk::Networks::do_network(
registry => $registry,
data_file => "mmus.test6",
data_dir => $test_data_dir,
source_org => $sourceorg
);
ok( defined $rc_7, "do_network() return value appears to be correct" );
my $rc_8 = Bio::Homology::InterologWalk::Networks::do_attributes(
registry => $registry,
data_file => "mmus.test6",
start_file => "mmus.txt",
data_dir => $test_data_dir,
source_org => $sourceorg
);
ok( defined $rc_8, "do_attributes() return value appears to be correct" );
#done_testing();