Supply TEMPLATE and SUFFIX for temporary query sequence files.
[bioperl-run.git] / t / TigrAssembler.t
blob0e41f8d0c2ea9f8d32bc6661d56c4ebf916c5f0c
1 use strict;
3 BEGIN {
4     use Bio::Root::Test;
5     test_begin(-tests => 88,
6                -requires_modules => [qw(IPC::Run Bio::Tools::Run::TigrAssembler)]);
7     use_ok('Bio::SeqIO');
10 my $assembler;
11 ok($assembler = Bio::Tools::Run::TigrAssembler->new());
12 isa_ok($assembler, 'Bio::Tools::Run::TigrAssembler');
14 ok($assembler->program_name('aaa'));
15 is($assembler->program_name, 'aaa');
17 ok($assembler->program_dir('/dir'));
18 is($assembler->program_dir, '/dir');
20 my @params = @Bio::Tools::Run::TigrAssembler::program_params;
21 for my $param (@params) {
22   ok($assembler->$param(321));
23   is($assembler->$param(), 321);
26 my @switches = @Bio::Tools::Run::TigrAssembler::program_switches;
27 for my $switch (@switches) {
28   ok($assembler->$switch(1));
29   is($assembler->$switch(), 1);
32 # Test the TIGR Assembler program itself
33 my $program_name = $Bio::Tools::Run::TigrAssembler::program_name;
34 ok($assembler->program_name($program_name));
35 SKIP: {
36     test_skip(-requires_executable => $assembler,
37               -tests => 45);
39    # Input data
40    my $result_file = 'results.tigr';
41    my $fasta_file = test_input_file('sample_dataset_1.fa');
42    my $qual_file  = test_input_file('sample_dataset_1.qual');
43    my $io = Bio::SeqIO->new( -file => $fasta_file, -format => 'fasta' );
44    my @seq_arr;
45    while (my $seq = $io->next_seq) {
46       push @seq_arr, $seq;
47    }
48    $io = Bio::SeqIO->new( -file => $qual_file, -format => 'qual' );
49    my @qual_arr;
50    while (my $qual = $io->next_seq) {
51       push @qual_arr, $qual;
52    }
54    my $asm;
55    ok($assembler = Bio::Tools::Run::TigrAssembler->new());
57    # Try FASTA or sequence object input
58    ok($asm = $assembler->run($fasta_file));
59    isa_ok($asm, 'Bio::Assembly::ScaffoldI');
60    is($asm->get_nof_singlets, 0);
61    is($asm->get_nof_contigs, 3);
63    ok($asm = $assembler->run(\@seq_arr));
64    isa_ok($asm, 'Bio::Assembly::ScaffoldI');
65    is($asm->get_nof_singlets, 0);
66    is($asm->get_nof_contigs, 3);
68    # Try optional quality score input as a QUAL file or bioperl objects
69    ok($asm = $assembler->run($fasta_file, $qual_file));
70    isa_ok($asm, 'Bio::Assembly::ScaffoldI');
71    is($asm->get_nof_singlets, 0);
72    is($asm->get_nof_contigs, 3);
74    ok($asm = $assembler->run(\@seq_arr, \@qual_arr));
75    isa_ok($asm, 'Bio::Assembly::ScaffoldI');
76    is($asm->get_nof_singlets, 0);
77    is($asm->get_nof_contigs, 3);
79    # Try the different output types
80    ok($assembler->out_type($result_file));
81    ok($asm = $assembler->run(\@seq_arr));
82    ok($asm eq $result_file);
83    is((-f $asm), 1);
84    unlink $result_file;
86    ok($assembler->out_type('Bio::Assembly::IO'));
87    ok($asm = $assembler->run(\@seq_arr));
88    isa_ok($asm, 'Bio::Assembly::IO');
89    ok($asm->next_assembly);
91    ok($assembler->out_type('Bio::Assembly::ScaffoldI'));
92    ok($asm = $assembler->run(\@seq_arr));
93    isa_ok($asm, 'Bio::Assembly::ScaffoldI');
94    is($asm->get_nof_singlets, 0);
95    is($asm->get_nof_contigs, 3);
97    # Try some TIGR_assembler specific parameters
98    ok($assembler->include_singlets(1));
99    ok($asm = $assembler->run(\@seq_arr));
100    is($asm->get_nof_singlets, 191);
101    is($asm->get_nof_contigs, 3);
103    ok($assembler->minimum_length(1000));
104    ok($asm = $assembler->run(\@seq_arr));
105    is($asm->get_nof_singlets, 198);
106    is($asm->get_nof_contigs, 0);
108    ok($assembler->minimum_length(1));
109    ok($assembler->minimum_percent(100));
110    ok($asm = $assembler->run(\@seq_arr));
111    is($asm->get_nof_singlets, 198);
112    is($asm->get_nof_contigs, 0);
114    # Function alias
115    ok($assembler->minimum_overlap_similarity(100));
116    ok($assembler->minimum_overlap_length(20));
119 # Test the LIGR Assembler program itself
120 ok($assembler = Bio::Tools::Run::TigrAssembler->new( -program_name => 'LIGR_Assembler' ));
121 SKIP: {
122     test_skip(-requires_executable => $assembler,
123               -tests => 6);
125    my $fasta_file  = test_input_file('sample_dataset_1.fa');
126    my $result_file = 'results.tigr';
127    my $asm;
128    ok($assembler->out_type($result_file));
129    ok($assembler->incl_bad_seq(1));
130    ok($assembler->trimmed_seq(1));
131    ok($asm = $assembler->run($fasta_file));
132    ok($asm eq $result_file);
133    is((-f $asm), 1);
134    unlink $result_file;