Fix tests; need to look at Analysis::soap::results()
[bioperl-run.git] / t / Probcons.t
blob7560b4e6de17a81868bd9f1d0f512145064ca69e
1 # -*-Perl-*-
2 ## Bioperl Test Harness Script for Modules
4 use strict;
5 use vars qw($NUMTESTS);
6 BEGIN { 
7     eval { require Test; };
8     if( $@ ) {
9         use lib 't';
10     }
11     use Test;
13     $NUMTESTS = 9; 
14     plan tests => $NUMTESTS; 
17 END { unlink qw(cysprot.dnd cysprot1a.dnd) }
19 use Bio::Tools::Run::Alignment::Probcons;
20 use Bio::AlignIO;
21 use Bio::SeqIO;
22 use Bio::Root::IO;
24 END {     
25     for ( $Test::ntest..$NUMTESTS ) {
26         skip("Probcons program not found. Skipping.\n",1);
27     }
30 ok(1);
32 my @params = ();
33 my $factory = Bio::Tools::Run::Alignment::Probcons->new(@params);
34 my $inputfilename = Bio::Root::IO->catfile("t","data","cysprot.fa");
35 my $aln;
37 my $present = $factory->executable();
38 unless ($present && -e $present ) {
39     warn "probcons program not found. Skipping tests $Test::ntest to $NUMTESTS.\n";
40     exit(0);
42 my $version = $factory->version;
43 ok ($version >= 1.09, 1, "Code tested only on probcons versions > 1.09" );
44 $aln = $factory->align($inputfilename);
45 ok($aln);
46 ok( $aln->no_sequences, 7);
48 my $str = Bio::SeqIO->new('-file' => 
49                           Bio::Root::IO->catfile("t","data","cysprot.fa"), 
50                           '-format' => 'Fasta');
51 my @seq_array =();
53 while ( my $seq = $str->next_seq() ) {
54     push (@seq_array, $seq) ;
57 my $seq_array_ref = \@seq_array;
59 $aln = $factory->align($seq_array_ref);
60 ok $aln->no_sequences, 7;
61 my $s1_avg_perid = $aln->average_percentage_identity;
62 ok(int($s1_avg_perid), 43);
63 my $s1_ovl_perid = $aln->overall_percentage_identity;
64 ok(int($s1_ovl_perid), 15);
66 my ($tfhparams,$paramsfilename) = $factory->io->tempfile(-dir=>$factory->tempdir);
67 my ($tfhannot,$annotfilename) = $factory->io->tempfile(-dir=>$factory->tempdir);
68 my ($tfhdummy,$dummyfilename) = $factory->io->tempfile(-dir=>$factory->tempdir);
69 my $factory2 = new Bio::Tools::Run::Alignment::Probcons
70     (
71      'iterative-refinement'  => '1000',
72      'consistency'   => '5',
73      'emissions' => '',
74      'verbose' => '',
75      'train'   => $paramsfilename,
76     );
77 $factory2->outfile_name($paramsfilename);
79 my $probcons_present = $factory->executable();
80 unless ($probcons_present) {
81     warn "probcons program not found.\n";
82     exit(0);
85 my $aln2 = $factory2->align($seq_array_ref);
86 $aln2 = '';
87 $factory2 = '';
89 $factory2 = new Bio::Tools::Run::Alignment::Probcons
90     (
91      'iterative-refinement'  => '1000',
92      'consistency'   => '5',
93      'verbose' => '',
94      'annot'   => $annotfilename,
95      'paramfile'   => $paramsfilename,
96     );
97 $factory->outfile_name($dummyfilename);
98 $aln2 = $factory2->align($seq_array_ref);
99 my $s2_avg_perid = $aln2->average_percentage_identity;
100 my $s2_ovl_perid = $aln2->overall_percentage_identity;
101 ok(int($s2_avg_perid), 42);
102 ok(int($s2_ovl_perid), 16);
103 close($tfhparams);
104 undef $tfhparams;
105 close($tfhannot);
106 undef $tfhannot;
107 close($tfhdummy);
108 undef $tfhdummy;