1# -*-Perl-*- Test Harness script for Bioperl
2# $Id: SearchIO_erpin.t 14672 2008-04-22 21:42:50Z cjfields $
3
4use strict;
5
6BEGIN {
7    use Bio::Root::Test;
8
9    test_begin(-tests => 91);
10
11    use_ok('Bio::SearchIO');
12}
13
14my ($searchio, $result, $iter, $hit, $hsp, $algorithm, $meta);
15
16$searchio = Bio::SearchIO->new( -format => 'erpin',
17                                -file   => test_input_file('testfile.erpin'),
18                                -model => 'stem-loop',
19                                -query_acc => 'test',
20                                -version => 5.5,
21                                -verbose => 2
22                               );
23$result = $searchio->next_result;
24isa_ok($result, 'Bio::Search::Result::ResultI');
25$algorithm = $result->algorithm;
26is($result->algorithm, 'ERPIN', "Result $algorithm");
27is($result->algorithm_reference, undef, "Result $algorithm reference");
28is($result->algorithm_version, 5.5, "Result $algorithm version");
29is($result->available_parameters, 2, "Result parameters");
30is($result->available_statistics, 1, "Result statistics");
31is($result->database_entries, '', "Result entries");
32is($result->database_letters, '', "Result letters");
33is($result->database_name, 'AE016879.fna', "Result database_name");
34is($result->num_hits, 1, "Result num_hits");
35is($result->program_reference, undef, "Result program_reference");
36is($result->query_accession, 'test', "Result query_accession");
37is($result->query_description, '40 sequences of length 43', "Result query_description");
38is($result->query_name, '/home/Administrator/pyrR.epn', "Result query_name");
39
40$hit = $result->next_hit;
41isa_ok($hit, 'Bio::Search::Hit::HitI');
42is($hit->accession, 'AE016879.1', "Hit accession");
43is($hit->ncbi_gi, '30260185', "Hit GI");
44is($hit->algorithm, 'ERPIN', "Hit algorithm");
45is($hit->bits, 31.64, "Hit bits");
46is($hit->description, 'Bacillus anthracis str. Ames, complete genome',
47   "Hit description"); # no hit descs yet
48is($hit->length, 0, "Hit length");
49is($hit->locus, '', "Hit locus");
50is($hit->n, 4, "Hit n");
51is($hit->name, 'gi|30260185|gb|AE016879.1|', "Hit name");
52is($hit->num_hsps, 4, "Hit num_hsps");
53is($hit->overlap, 0, "Hit overlap");
54is($hit->query_length, undef, "Hit query_length");
55is($hit->rank, 1, "Hit rank");
56is($hit->raw_score, 31.64, "Hit raw_score");
57is($hit->score, 31.64, "Hit score");
58float_is($hit->significance, 4.44e-06);
59
60$hsp = $hit->next_hsp;
61isa_ok($hsp, 'Bio::Search::HSP::HSPI');
62is($hsp->algorithm, 'ERPIN', "HSP algorithm");
63float_is($hsp->evalue, 1.68e-05);
64isa_ok($hsp->feature1, 'Bio::SeqFeature::Similarity');
65isa_ok($hsp->feature2, 'Bio::SeqFeature::Similarity');
66is($hsp->frame('query'), 0, "HSP frame");
67is($hsp->gaps, 2, "HSP gaps");
68isa_ok($hsp->hit, 'Bio::SeqFeature::Similarity', "HSP hit");
69is($hsp->hit_string,
70   'CTTT.aacc--.CAACC.CCGTGA.GGTTG.a.GAAG',
71   "HSP hit_string");
72is($hsp->homology_string,
73   '',
74   "HSP homology_string");
75is($hsp->hsp_group, undef, "HSP hsp_group");
76is($hsp->hsp_length, 37, "HSP hsp_length");
77is($hsp->length, 37, "HSP length");
78is($hsp->links, undef, "HSP links");
79isa_ok($hsp->query, 'Bio::SeqFeature::Similarity', "HSP query");
80is($hsp->query_string,
81   '',
82   "HSP query_string");
83is($hsp->range, 37, "HSP range");
84is($hsp->rank, 1, "HSP rank");
85float_is($hsp->significance, 1.68e-05);
86float_is($hsp->expect, '1.68e-05', "HSP expect");
87isa_ok($hsp->seq, 'Bio::LocatableSeq');
88is($hsp->seq_str,
89   '',
90   "HSP seq_str");
91is($hsp->start, 1, "HSP start");
92is($hsp->custom_score, undef, "HSP custom_score");
93is($hsp->meta, undef, "HSP meta");
94is($hsp->meta, undef);
95is($hsp->meta, undef);
96is($hsp->strand('hit'), 1, "HSP strand");
97is($hsp->meta, undef);
98is($hsp->meta, undef);
99
100# ERPIN lacks sequence for query, will spit back a warning..
101eval{$hsp->get_aln};
102like($@, qr'Missing query string, can\'t build alignment','ERPIN get_aln warning');
103
104$hsp = $hit->next_hsp;
105isa_ok($hsp, 'Bio::Search::HSP::HSPI');
106is($hsp->algorithm, 'ERPIN', "HSP algorithm");
107float_is($hsp->evalue, 5.61e-05);
108isa_ok($hsp->feature1, 'Bio::SeqFeature::Similarity');
109isa_ok($hsp->feature2, 'Bio::SeqFeature::Similarity');
110is($hsp->frame('query'), 0, "HSP frame");
111is($hsp->gaps, 1, "HSP gaps");
112isa_ok($hsp->hit, 'Bio::SeqFeature::Similarity', "HSP hit");
113is($hsp->hit_string,
114   'CTTT.taatt-.CAGTC.CTGTGA.GACCG.g.AAAG',
115   "HSP hit_string");
116is($hsp->homology_string,
117   '',
118   "HSP homology_string");
119is($hsp->query_string,
120   '',
121   "HSP query_string");
122is($hsp->hsp_group, undef, "HSP hsp_group");
123is($hsp->hsp_length, 37, "HSP hsp_length");
124is($hsp->length, 37, "HSP length");
125is($hsp->links, undef, "HSP links");
126isa_ok($hsp->query, 'Bio::SeqFeature::Similarity');
127is($hsp->range, 37, "HSP range");
128is($hsp->rank, 2, "HSP rank");
129float_is($hsp->significance, 5.61e-05);
130is($hsp->end, 37, "HSP end");
131float_is($hsp->expect, '5.61e-05', "HSP expect");
132isa_ok($hsp->seq, 'Bio::LocatableSeq');
133is($hsp->seq_str,   '',   "HSP seq_str");
134is($hsp->start, 1, "HSP start");
135is($hsp->custom_score, undef, "HSP custom_score");
136is($hsp->meta, undef);
137is($hsp->meta, undef);
138is($hsp->strand('hit'), -1, "HSP strand");
139