1 # -*-Perl-*- Test Harness script for Bioperl
10 test_begin(-tests => 0);
13 my $verbose = test_debug();
15 ### RNAMotif.pm tests ###
17 my $parser = Bio::Tools::RNAMotif->new(
19 -file => test_input_file('trna.strict.rnamotif'),
20 -motiftag => 'tRNA_gene',
24 while( my $gene = $parser->next_prediction ) {
30 is($genes[1]->display_name, 'tRNA','RNAMotif::display_name()');
31 is($genes[12]->seq_id, 'M33910','RNAMotif::seq_id()');
32 is($genes[6]->primary_tag, 'tRNA_gene','RNAMotif::primary_tag()');
33 is($genes[22]->start, 464,'RNAMotif::start()');
34 is($genes[8]->end, 585,'RNAMotif::end()');
35 is($genes[9]->strand, 1,'RNAMotif::strand()');
36 is(($genes[90]->get_tag_values('sequence'))[0],
37 'cggatt ta ttg ggcg taa a gggct cgtaggc ggctc'.
38 ' gtcgcgtccggtgtgaaagtc catc gcttaac ggtg gatctg cgcc',
39 "RNAMotif::get_tag_values('sequence')");
40 is(($genes[90]->get_tag_values('descfile'))[0], 'trna.strict.descr',
41 "RNAMotif::get_tag_values('descfile')");
42 is(($genes[4]->get_tag_values('descline'))[0],
43 'gi|173683|gb|M10671|ACSTRW Avian oncornavirus Trp-tRNA',
44 "RNAMotif::get_tag_values('descline')");
45 is(($genes[26]->get_tag_values('secstructure'))[0],
46 'h5 ss h5 ss h3 ss h5 ss h3 ss h5 ss h3 h3 ss',
47 "RNAMotif::get_tag_values('secstructure')");
48 is($genes[4]->score, '0.000','RNAMotif::score()');
49 is($genes[4]->source_tag, 'RNAMotif','RNAMotif::source_tag()');
53 $parser = Bio::Tools::RNAMotif->new(
55 -file => test_input_file('sprintf.rnamotif'),
57 -desctag => 'stem_loop');
59 while( my $gene = $parser->next_prediction ) {
63 is($genes[1]->display_name, 'stem_loop','RNAMotif::display_name()');
64 is($genes[12]->seq_id, 'M82700','RNAMotif::seq_id()');
65 is($genes[6]->primary_tag, 'term','RNAMotif::primary_tag()');
66 is($genes[22]->start, 141,'RNAMotif::start()');
67 is($genes[8]->end, 154,'RNAMotif::end()');
68 is($genes[9]->strand, -1,'RNAMotif::strand()');
69 is(($genes[90]->get_tag_values('sequence'))[0], 'ggggaag cttg cttcccc',
70 "RNAMotif::get_tag_values('sequence')");
71 is(($genes[84]->get_tag_values('descfile'))[0], 'sprintf.descr',
72 "RNAMotif::get_tag_values('descfile')");
73 is(($genes[4]->get_tag_values('descline'))[0],
74 'gi|173741|gb|M83548|AQF16SRRN Aquifex pyrophilus 16S ribosomal RNA (16S rRNA)',
75 "RNAMotif::get_tag_values('descline')");
76 is(($genes[26]->get_tag_values('secstructure'))[0], 'h5 ss h3',
77 "RNAMotif::get_Annotations('secstructure')");
78 is($genes[4]->score, '-12.100,5,gaaa','RNAMotif::score()');
79 is($genes[4]->source_tag, 'RNAMotif','RNAMotif::source_tag()');
81 ### ERPIN.pm tests ###
86 ['30260185','5181155','5181183',1,'CTTT.aacc--.CAACC.CCGTGA.GGTTG.a.GAAG',
87 'gi|30260185|gb|AE016879.1| Bacillus anthracis str. Ames, complete genome',
89 ['30260185','3709092','3709121',-1,'CTTT.taatt-.CAGTC.CTGTGA.GACCG.g.AAAG',
90 'gi|30260185|gb|AE016879.1| Bacillus anthracis str. Ames, complete genome',
92 ['30260185','3710524','3710553',-1,'TTTT.aaatg-.TAGTC.CTGTGA.GGCTG.c.CAAA',
93 'gi|30260185|gb|AE016879.1| Bacillus anthracis str. Ames, complete genome',
95 ['30260185','3711223','3711251',-1,'CTTT.aaca--.CAGCC.CCGTGA.GGTTG.a.GAAG',
96 'gi|30260185|gb|AE016879.1| Bacillus anthracis str. Ames, complete genome',
100 $parser = Bio::Tools::ERPIN->new(
101 -verbose => $verbose,
102 -file => test_input_file('testfile.erpin'),
103 -motiftag => 'protein_bind',
104 -desctag => 'pyrR_BL');
106 while( my $gene = $parser->next_prediction ) {
107 my @stats = @{ shift @erpinstats };
108 is($gene->display_name, 'pyrR_BL','ERPIN::display_name()');
109 is($gene->seq_id, shift @stats,'ERPIN::seq_id()');
110 is($gene->primary_tag, 'protein_bind','ERPIN::primary_tag()');
111 is($gene->start, shift @stats,'ERPIN::start()');
112 is($gene->end, shift @stats,'ERPIN::end()');
113 is($gene->strand, shift @stats,'ERPIN::strand()');
114 ($val) = $gene->get_tag_values('sequence');
115 is($val, shift @stats, "ERPIN::get_tag_values('sequence')");
116 eval {($val) = $gene->get_tag_values('descfile')}; # no descfile
117 like($@, qr(asking for tag value that does not exist descfile));
118 ($val) = $gene->get_tag_values('descline');
119 is($val, shift @stats, "ERPIN::get_tag_values('descline')");
120 eval {($val) = $gene->get_tag_values('secstructure')}; # no secstructure
121 like($@, qr(asking for tag value that does not exist secstructure));
122 is($gene->score, shift @stats,'ERPIN::score()');
123 is($gene->source_tag, 'ERPIN','ERPIN::source_tag()');
126 ### Infernal.pm tests ###
129 ['30260185','5181155','5181183',1,'CTTT.aacc--.CAACC.CCGTGA.GGTTG.a.GAAG',0,
130 'gi|30260185|gb|AE016879.1| Bacillus anthracis str. Ames, complete genome',
132 ['30260185','3709092','3709121',-1,'CTTT.taatt-.CAGTC.CTGTGA.GACCG.g.AAAG',0,
133 'gi|30260185|gb|AE016879.1| Bacillus anthracis str. Ames, complete genome',
135 ['30260185','3710524','3710553',-1,'TTTT.aaatg-.TAGTC.CTGTGA.GGCTG.c.CAAA',0,
136 'gi|30260185|gb|AE016879.1| Bacillus anthracis str. Ames, complete genome',
138 ['30260185','3711223','3711251',-1,'CTTT.aaca--.CAGCC.CCGTGA.GGTTG.a.GAAG',0,
139 'gi|30260185|gb|AE016879.1| Bacillus anthracis str. Ames, complete genome',
143 $parser = Bio::Tools::Infernal->new(
144 -file => test_input_file('test.infernal'),
145 -motiftag => 'misc_binding',
146 -desctag => 'Purine riboswitch',
151 my $gene = $parser->next_prediction;
152 # get query (model) data
153 is($gene->display_name, 'Purine riboswitch','Infernal::display_name()');
154 is($gene->seq_id, 'RF00167','Infernal::seq_id()');
155 is($gene->primary_tag, 'misc_binding','Infernal::primary_tag()');
156 is($gene->source_tag, 'Infernal 0.71','Infernal::source_tag()');
157 is($gene->start, '1','Infernal::start()');
158 is($gene->end, '102','Infernal::end()');
159 is($gene->strand, '0','Infernal::strand()');
160 is($gene->score, '78.40','Infernal::strand()');
163 is($gene->display_name, 'Purine riboswitch','Infernal::display_name()');
164 is($gene->seq_id, '2239287','Infernal::seq_id()');
165 is($gene->primary_tag, 'misc_binding','Infernal::primary_tag()');
166 is($gene->source_tag, 'Infernal 0.71','Infernal::source_tag()');
167 is($gene->start, '15589','Infernal::start()');
168 is($gene->end, '15691','Infernal::end()');
169 is($gene->strand, '1','Infernal::strand()');
170 is($gene->score, '78.40','Infernal::strand()');
171 ($val) = $gene->get_tag_values('model');
173 'aAaaauaaAaaaaaaaauaCuCgUAUAaucucgggAAUAUGGcccgagaGUuUCUACCaGgcaaCCGUAAAuugcCuGACUAcG.aGuaAauauuaaauauuu',
174 "Infernal::get_tag_values('model')");
175 ($val) = $gene->get_tag_values('midline');
177 ' A+ A+A+ AAAA A :CUC:UAUAAU: :GGGAAUAUGGCCC: :AGUUUCUACC:GGCAACCGUAAAUUGCC:GACUA:G AG: AA + ++ +++++',
178 "Infernal::get_tag_values('midline')");
179 ($val) = $gene->get_tag_values('hit');
181 'CAUGAAAUCAAAACACGACCUCAUAUAAUCUUGGGAAUAUGGCCCAUAAGUUUCUACCCGGCAACCGUAAAUUGCCGGACUAUGcAGGGAAGUGAUCGAUAAA',
182 "Infernal::get_tag_values('hit')");
183 ($val) = $gene->get_tag_values('secstructure');
185 ':::::::::::::::::((((((((,,,<<<<<<<_______>>>>>>>,,,,,,,,<<<<<<<_______>>>>>>>,,)))).))))::::::::::::::',
186 "Infernal::get_tag_values('secstructure')");
187 ($val) = $gene->get_tag_values('seq_name'),
188 is($val, 'gi|2239287|gb|U51115.1|BSU51115',
189 "Infernal::get_tag_values('seq_name')");
191 $gene = $parser->next_prediction;
192 # get query (model) data
193 is($gene->display_name, 'Purine riboswitch','Infernal::display_name()');
194 is($gene->seq_id, 'RF00167','Infernal::seq_id()');
195 is($gene->primary_tag, 'misc_binding','Infernal::primary_tag()');
196 is($gene->source_tag, 'Infernal 0.71','Infernal::source_tag()');
197 is($gene->start, '1','Infernal::start()');
198 is($gene->end, '102','Infernal::end()');
199 is($gene->strand, '0','Infernal::strand()');
200 is($gene->score, '81.29','Infernal::strand()');
202 $gene->invert; # switch to get hit data
203 is($gene->display_name, 'Purine riboswitch','Infernal::display_name()');
204 is($gene->seq_id, '2239287','Infernal::seq_id()');
205 is($gene->primary_tag, 'misc_binding','Infernal::primary_tag()');
206 is($gene->source_tag, 'Infernal 0.71','Infernal::source_tag()');
207 is($gene->start, '11655','Infernal::start()');
208 is($gene->end, '11756','Infernal::end()');
209 is($gene->strand, '1','Infernal::strand()');
210 is($gene->score, '81.29','Infernal::strand()');
211 ($val) = $gene->get_tag_values('model');
213 'aAaaauaaAaaaaaaaauaCuCgUAUAaucucgggAAUAUGGcccgagaGUuUCUACCaGgcaaCCGUAAAuugcCuGACUAcGaGuaAauauuaaauauuu',
214 "Infernal::get_tag_values('model')");
215 ($val) = $gene->get_tag_values('midline');
217 'A AAAU AAA+AA A+ : CGUAUAAU::CG:GAAUAUGGC:CG::AGU UCUACCA:GC ACCGUAAAU GC:UGACUACG : AU+U +++ UUU',
218 "Infernal::get_tag_values('midline')");
219 ($val) = $gene->get_tag_values('hit');
221 'AGAAAUCAAAUAAGAUGAAUUCGUAUAAUCGCGGGAAUAUGGCUCGCAAGUCUCUACCAAGCUACCGUAAAUGGCUUGACUACGUAAACAUUUCUUUCGUUU',
222 "Infernal::get_tag_values('hit')");
223 ($val) = $gene->get_tag_values('secstructure');
225 ':::::::::::::::::((((((((,,,<<<<<<<_______>>>>>>>,,,,,,,,<<<<<<<_______>>>>>>>,,))))))))::::::::::::::',
226 "Infernal::get_tag_values('secstructure')");
227 ($val) = $gene->get_tag_values('seq_name');
229 'gi|2239287|gb|U51115.1|BSU51115',
230 "Infernal::get_tag_values('seq_name')");