Supply TEMPLATE and SUFFIX for temporary query sequence files.
[bioperl-run.git] / t / Muscle.t
blobe3b10941430867860ae3ac99ac7007b0847b3432
1 # -*-Perl-*-
2 ## Bioperl Test Harness Script for Modules
4 use strict;
6 BEGIN {
7     use Bio::Root::Test;
8     test_begin( -tests => 16 );
9     use_ok('Bio::Tools::Run::Alignment::Muscle');
10     use_ok('Bio::AlignIO');
11     use_ok('Bio::SeqIO');
12     use_ok('Bio::Root::IO');
13     use_ok('POSIX');
16 END {
17     unlink qw(cysprot.dnd cysprot1a.dnd muscle.log muscle.out mlc);
20 my @params = ( 'quiet' => 1 );
21 my $factory = Bio::Tools::Run::Alignment::Muscle->new(@params);
22 is( $factory->quiet, 1 );
23 my $inputfilename = test_input_file("cysprot.fa");
24 my $aln;
26 SKIP: {
27     test_skip(
28         -requires_executable => $factory,
29         -tests               => 10
30     );
32     my $version = $factory->version;
33     unless ( $version >= 3.6 ) {
34         skip(
35 "Only muscle version 3.6 or higher is supported by these tests. Skipping tests",
36             7
37         );
38         exit(0);
39     }
40     cmp_ok( $version, '>=', 3.6, "Code tested only on muscle versions > 3.6" );
42     $aln = $factory->align($inputfilename);
43     ok($aln);
44     is( $aln->num_sequences, 7 );
46     my $str = Bio::SeqIO->new(
47         -file   => test_input_file("cysprot.fa"),
48         -format => 'Fasta'
49     );
50     my @seq_array = ();
51     while ( my $seq = $str->next_seq() ) {
52         push( @seq_array, $seq );
53     }
54     my $seq_array_ref = \@seq_array;
56     $aln = $factory->align($seq_array_ref);
57     is $aln->num_sequences, 7;
58     my $s1_perid = POSIX::ceil( $aln->average_percentage_identity );
59     is( $s1_perid == 43 || $s1_perid == 44,
60         1, 'diff versions of MUSCLE have different vals' );
62     my $logfile = test_output_file();
63     my $outfile = test_output_file();
65     # add some more params
66     my @params = (
67         'quiet'         => 1,
68         '-outfile_name' => $outfile,
69         'diags'         => 1,
70         'maxmb'         => 50,
71         'maxhours'      => 1,
72         'maxiters'      => 20,
73         'log'           => $logfile,
74         -seqtype        => 'protein',
75     );
76     $factory = Bio::Tools::Run::Alignment::Muscle->new(@params);
77     is( $factory->log, $logfile, 'log file' );
78     $aln = $factory->align($seq_array_ref);
79     is $aln->num_sequences, 7;
80     $s1_perid = POSIX::ceil( $aln->average_percentage_identity );
81     is( $s1_perid == 43 || $s1_perid == 44,
82         1, 'diff versions of MUSCLE have different vals' );
84     $inputfilename = test_input_file("cysprot1a.fa");
85     $aln           = $factory->align($inputfilename);
86     is $aln->num_sequences, 3;
87     $s1_perid = POSIX::ceil( $aln->average_percentage_identity );
89     is( $s1_perid == 41 || $s1_perid == 42,
90         1, 'diff versions of MUSCLE have different vals' );