Supply TEMPLATE and SUFFIX for temporary query sequence files.
[bioperl-run.git] / t / Phrap.t
blob49a7dab90c82712a730a2ab2f9618ea109403a3d
1 use strict;
3 # These tests will return similar warnings because of the incomplete status of
4 # the Phrap parser:
5 # --------------------- WARNING ---------------------
6 # MSG: Adding non-nucleotidic sequence RFPERU_003_E10.x01.phd.1
7 # ---------------------------------------------------  
9 BEGIN {
10     use Bio::Root::Test;
11     test_begin(-tests => 127,
12                -requires_modules => [qw(Bio::Tools::Run::Phrap)]);
13     use_ok('Bio::SeqIO');
16 my $assembler;
17 ok($assembler = Bio::Tools::Run::Phrap->new());
18 isa_ok($assembler, 'Bio::Tools::Run::Phrap');
20 ok($assembler->program_name('aaa'));
21 is($assembler->program_name, 'aaa');
23 ok($assembler->program_dir('/dir'));
24 is($assembler->program_dir, '/dir');
26 my @params = @Bio::Tools::Run::Phrap::program_params;
27 for my $param (@params) {
28   ok($assembler->$param(321));
29   is($assembler->$param(), 321);
32 my @switches = @Bio::Tools::Run::Phrap::program_switches;
33 for my $switch (@switches) {
34   ok($assembler->$switch(1));
35   is($assembler->$switch(), 1);
38 # test the program itself
39 my $program_name = $Bio::Tools::Run::Phrap::program_name;
40 ok($assembler->program_name($program_name));
41 SKIP: {
42     test_skip(-requires_executable => $assembler,
43               -tests => 39);
45    # Input data
46    my $result_file = 'results.phrap';
47    my $fasta_file = test_input_file('sample_dataset_1.fa');
48    my $qual_file  = test_input_file('sample_dataset_1.qual');
49    my $io = Bio::SeqIO->new( -file => $fasta_file, -format => 'fasta' );
50    my @seq_arr;
51    while (my $seq = $io->next_seq) {
52       push @seq_arr, $seq;
53    }
54    $io = Bio::SeqIO->new( -file => $qual_file, -format => 'qual' );
55    my @qual_arr;
56    while (my $qual = $io->next_seq) {
57       push @qual_arr, $qual;
58    }
60    my $asm;
61    ok($assembler = Bio::Tools::Run::Phrap->new());
63    # Try FASTA or sequence object input
64    ok($asm = $assembler->run($fasta_file));
65    isa_ok($asm, 'Bio::Assembly::ScaffoldI');
66    is($asm->get_nof_singlets, 191);
67    is($asm->get_nof_contigs, 3);
69    ok($asm = $assembler->run(\@seq_arr));
70    isa_ok($asm, 'Bio::Assembly::ScaffoldI');
71    is($asm->get_nof_singlets, 191);
72    is($asm->get_nof_contigs, 3);
74    # Try optional quality score input as a QUAL file or bioperl objects
75    ok($asm = $assembler->run($fasta_file, $qual_file));
76    isa_ok($asm, 'Bio::Assembly::ScaffoldI');
77    is($asm->get_nof_singlets, 191);
78    is($asm->get_nof_contigs, 3);
80    ok($asm = $assembler->run(\@seq_arr, \@qual_arr));
81    isa_ok($asm, 'Bio::Assembly::ScaffoldI');
82    is($asm->get_nof_singlets, 191);
83    is($asm->get_nof_contigs, 3);
85    # Try the different output types
86    ok($assembler->out_type($result_file));
87    ok($asm = $assembler->run(\@seq_arr));
88    ok($asm eq $result_file);
89    is((-f $asm), 1);
90    unlink $result_file;
92    ok($assembler->out_type('Bio::Assembly::IO'));
93    ok($asm = $assembler->run(\@seq_arr));
94    isa_ok($asm, 'Bio::Assembly::IO');
95    ok($asm->next_assembly);
97    ok($assembler->out_type('Bio::Assembly::ScaffoldI'));
98    ok($asm = $assembler->run(\@seq_arr));
99    isa_ok($asm, 'Bio::Assembly::ScaffoldI');
100    is($asm->get_nof_singlets, 191);
101    is($asm->get_nof_contigs, 3);
103    # Try some Phrap specific parameters
104    ok($assembler->minmatch(1000));
105    ok($asm = $assembler->run(\@seq_arr));
106    is($asm->get_nof_singlets, 194);
107    is($asm->get_nof_contigs, 2);
109    ok($assembler->minmatch(1000));
110    ok($assembler->minscore(100));
111    ok($asm = $assembler->run(\@seq_arr));
112    is($asm->get_nof_singlets, 194);
113    is($asm->get_nof_contigs, 2);