more, better tests for the new implementation for tree/bootstrap -- still some things...
[bioperl-run.git] / t / TribeMCL.t
blob67d5012154327e137a838483cba0154fb21be636
1 # -*-Perl-*-
2 ## Bioperl Test Harness Script for Modules
5 use strict;
6 BEGIN {
7     eval { require Test; };
8     if( $@ ) {
9         use lib 't';
10     }
11     use Test;
12     use vars qw($NTESTS);
13     $NTESTS = 22;
14     plan tests => $NTESTS;
17 use Bio::Tools::Run::TribeMCL;
18 use Bio::SearchIO;
20 END {
21     for ( $Test::ntest..$NTESTS ) {
22         skip("TribeMCL program not found. Skipping. (Be sure you have the TribeMCL package",1);
23     }
26 eval{
27     require "Algorithm/Diff.pm";
29 if($@){
30     warn("Need Algorithm::Diff to run TribeMCL");
31     exit(0);
34 my $blast_out = Bio::Root::IO->catfile("t","data","TribeMCL.bls");
36 #do from raw blast output
37 my @params=('inputtype'=>'blastfile',I=>'3.0');
38 my $fact = Bio::Tools::Run::TribeMCL->new(@params);
40 unless ($fact){
41         warn("Couldn't create a TribeMCL wrapper");
42             exit(0);
44 my $desc = Bio::Root::IO->catfile("t","data","TribeMCL.desc");
45 $fact->description_file($desc);
47 ok $fact->isa('Bio::Tools::Run::TribeMCL');
48 unless ($fact->matrix_executable){
49     warn("Tribe Matrix program not found. Skipping tests $Test::ntest to $NTESTS.\n");
50                 exit 0;
52 unless ($fact->mcl_executable){
53     warn("Markov Clustering program not found. Skipping tests $Test::ntest to $NTESTS.\n");
54                 exit 0;
57 my $bequiet = 1 ;
58 $fact->quiet($bequiet);
60 my ($fam) = $fact->run($blast_out);
61 my @members = $fam->get_members;
62 ok $fam->isa("Bio::Cluster::SequenceFamily");
63 ok $members[0]->isa("Bio::Seq");
64 ok ($members[0]->id, 'ENSANGP00000008485');
65 ok ($members[1]->id, 'ENSDRMP3263');
66 ok ($members[2]->id, 'ENSMUSP00000026170');
67 ok ($fam->description,'ubiquitin');
68 ok ($fam->annotation_score,45.0549450549451);
69 ok ($fam->size,91);
71 #do from searchio
73 my $sio = Bio::SearchIO->new(-format=>'blast',
74                              -file=>$blast_out);
76 @params=('inputtype'=>'searchio',I=>'3.0');
77 $fact = Bio::Tools::Run::TribeMCL->new(@params);
78 $fact->description_file($desc);
80 ok $fact->isa('Bio::Tools::Run::TribeMCL');
81 $bequiet =1 ;
82 $fact->quiet($bequiet);
84 ($fam) = $fact->run($sio);
85 ok $fam->isa("Bio::Cluster::SequenceFamily");
86 ok $members[0]->isa("Bio::Seq");
87 ok ($members[0]->id, 'ENSANGP00000008485');
88 ok ($members[1]->id, 'ENSDRMP3263');
89 ok ($members[2]->id, 'ENSMUSP00000026170');
90 ok ($fam->description,'ubiquitin');
91 ok ($fam->annotation_score,45.0549450549451);
92 ok ($fam->size,91);
94 @params=('inputtype'=>'pairs',I=>'3.0');
95 $fact = Bio::Tools::Run::TribeMCL->new(@params);
96 ok $fact->isa('Bio::Tools::Run::TribeMCL');
97 $bequiet =1 ;
98 $fact->quiet($bequiet);
100 ($fam) = $fact->run( [[qw(ENSP00000257547 ENSP00000261659 1 50)],
101                     [qw(O42187 ENSP00000257547 1 119)]]);
102 @members = $fam->get_members;
103 ok ($members[0]->id, 'ENSP00000257547');
104 ok ($members[1]->id, 'ENSP00000261659');
105 ok ($members[2]->id, 'O42187');