6 test_begin(-tests => 98,
7 -requires_modules => [qw(IPC::Run Bio::Tools::Run::Newbler)]);
12 ok($assembler = Bio::Tools::Run::Newbler->new());
13 isa_ok($assembler, 'Bio::Tools::Run::Newbler');
15 ok($assembler->program_name('aaa'));
16 is($assembler->program_name, 'aaa');
18 ok($assembler->program_dir('/dir'));
19 is($assembler->program_dir, '/dir');
21 my @params = @Bio::Tools::Run::Newbler::program_params;
22 for my $param (@params) {
23 ok($assembler->$param(321));
24 is($assembler->$param(), 321);
27 my @switches = @Bio::Tools::Run::Newbler::program_switches;
28 for my $switch (@switches) {
29 ok($assembler->$switch(1));
30 is($assembler->$switch(), 1);
33 # Test that weird types of input will make it to the assembler
34 my $fasta_file = test_input_file('sample_dataset_1.fa');
35 my $input_file = $fasta_file;
36 my $input_dir = dirname($fasta_file);
37 my $mid_prefix = 'mi2d@';
38 my $combo_file = $mid_prefix.$input_file;
39 my $combo_dir = $mid_prefix.$input_dir;
40 ok($assembler->_check_sequence_input($input_file));
41 ok($assembler->_check_sequence_input($input_dir));
42 ok($assembler->_check_sequence_input($combo_file));
43 ok($assembler->_check_sequence_input($combo_dir));
45 # Test the Newbler assembler program itself
46 my $program_name = $Bio::Tools::Run::Newbler::program_name;
47 ok($assembler->program_name($program_name));
49 test_skip(-requires_executable => $assembler,
53 my $result_file = 'results.ace';
54 my $qual_file = test_input_file('sample_dataset_1.qual');
55 my $io = Bio::SeqIO->new( -file => $fasta_file, -format => 'fasta' );
57 while (my $seq = $io->next_seq) {
60 $io = Bio::SeqIO->new( -file => $qual_file, -format => 'qual' );
62 while (my $qual = $io->next_seq) {
63 push @qual_arr, $qual;
67 ok($assembler = Bio::Tools::Run::Newbler->new());
69 # Try FASTA or sequence object input
70 ok($asm = $assembler->run($fasta_file));
71 isa_ok($asm, 'Bio::Assembly::ScaffoldI');
72 is($asm->get_nof_singlets, 0);
73 is($asm->get_nof_contigs, 2);
75 ok($asm = $assembler->run(\@seq_arr));
76 isa_ok($asm, 'Bio::Assembly::ScaffoldI');
77 is($asm->get_nof_singlets, 0);
78 is($asm->get_nof_contigs, 2);
80 # Try optional quality score input as a QUAL file or bioperl objects
81 ok($asm = $assembler->run($fasta_file, $qual_file));
82 isa_ok($asm, 'Bio::Assembly::ScaffoldI');
83 is($asm->get_nof_singlets, 0);
84 is($asm->get_nof_contigs, 2);
86 ok($asm = $assembler->run(\@seq_arr, \@qual_arr));
87 isa_ok($asm, 'Bio::Assembly::ScaffoldI');
88 is($asm->get_nof_singlets, 0);
89 is($asm->get_nof_contigs, 2);
91 # Try the different output types
92 ok($assembler->out_type($result_file));
93 ok($asm = $assembler->run(\@seq_arr));
94 ok($asm eq $result_file);
98 ok($assembler->out_type('Bio::Assembly::IO'));
99 ok($asm = $assembler->run(\@seq_arr));
100 isa_ok($asm, 'Bio::Assembly::IO');
101 is($asm->{'variant'}, '454', 'ACE 454 variant');
102 ok($asm->next_assembly);
104 ok($assembler->out_type('Bio::Assembly::ScaffoldI'));
105 ok($asm = $assembler->run(\@seq_arr));
106 isa_ok($asm, 'Bio::Assembly::ScaffoldI');
107 is($asm->get_nof_singlets, 0);
108 is($asm->get_nof_contigs, 2);
110 # Try some Newbler specific parameters
111 ok($assembler->expected_depth(2.1));
112 ok($asm = $assembler->run(\@seq_arr));
113 is($asm->get_nof_singlets, 0);
114 is($asm->get_nof_contigs, 2);
116 ok($assembler->min_ovl_length(1000));
117 ok($asm = $assembler->run(\@seq_arr));
118 is($asm->get_nof_singlets, 0);
119 # We really expect 0 contigs... must be a bug in Newbler!
120 #is($asm->get_nof_contigs, 0);
121 is($asm->get_nof_contigs, 2);
123 ok($assembler->min_ovl_identity(100));
124 ok($assembler->min_ovl_length(1));
125 ok($asm = $assembler->run(\@seq_arr));
126 is($asm->get_nof_singlets, 0);
127 is($asm->get_nof_contigs, 0);
130 ok($assembler->minimum_overlap_similarity(100));
131 ok($assembler->minimum_overlap_length(20));