File Coverage

Bio/Search/Result/HMMERResult.pm
Criterion Covered Total %
statement 21 24 87.5
branch 6 8 75.0
condition n/a
subroutine 6 8 75.0
pod 6 6 100.0
total 39 46 84.7


line stmt bran cond sub pod time code
1             #
2             # BioPerl module for Bio::Search::Result::HMMERResult
3             #
4             # Please direct questions and support issues to
5             #
6             # Cared for by Jason Stajich
7             #
8             # Copyright Jason Stajich
9             #
10             # You may distribute this module under the same terms as perl itself
11              
12             # POD documentation - main docs before the code
13              
14             =head1 NAME
15              
16             Bio::Search::Result::HMMERResult - A Result object for HMMER results
17              
18             =head1 SYNOPSIS
19              
20             use Bio::Search::Result::HMMERResult;
21             my $result = Bio::Search::Result::HMMERResult->new
22             ( -hmm_name => 'pfam',
23             -sequence_file => 'roa1.pep',
24             -hits => \@hits);
25              
26             # generally we use Bio::SearchIO to build these objects
27             use Bio::SearchIO;
28             my $in = Bio::SearchIO->new(-format => 'hmmer',
29             -file => 'result.hmmer');
30             while( my $result = $in->next_result ) {
31             print $result->query_name, " ", $result->algorithm, " ", $result->num_hits(), " hits\n";
32             }
33              
34             =head1 DESCRIPTION
35              
36             This is a specialization of L.
37             There are a few extra methods, specifically L,
38             L, L, and L.
39              
40             =head1 FEEDBACK
41              
42             =head2 Mailing Lists
43              
44             User feedback is an integral part of the evolution of this and other
45             Bioperl modules. Send your comments and suggestions preferably to
46             the Bioperl mailing list. Your participation is much appreciated.
47              
48             bioperl-l@bioperl.org - General discussion
49             http://bioperl.org/wiki/Mailing_lists - About the mailing lists
50              
51             =head2 Support
52              
53             Please direct usage questions or support issues to the mailing list:
54              
55             I
56              
57             rather than to the module maintainer directly. Many experienced and
58             reponsive experts will be able look at the problem and quickly
59             address it. Please include a thorough description of the problem
60             with code and data examples if at all possible.
61              
62             =head2 Reporting Bugs
63              
64             Report bugs to the Bioperl bug tracking system to help us keep track
65             of the bugs and their resolution. Bug reports can be submitted via the
66             web:
67              
68             https://github.com/bioperl/bioperl-live/issues
69              
70             =head1 AUTHOR - Jason Stajich
71              
72             Email jason@bioperl.org
73              
74             =head1 APPENDIX
75              
76             The rest of the documentation details each of the object methods.
77             Internal methods are usually preceded with a _
78              
79             =cut
80              
81              
82             # Let the code begin...
83              
84              
85             package Bio::Search::Result::HMMERResult;
86 1     1   4 use strict;
  1         2  
  1         31  
87              
88              
89              
90 1     1   3 use base qw(Bio::Search::Result::GenericResult);
  1         0  
  1         289  
91              
92             =head2 new
93              
94             Title : new
95             Usage : my $obj = Bio::Search::Result::HMMERResult->new();
96             Function: Builds a new Bio::Search::Result::HMMERResult object
97             Returns : Bio::Search::Result::HMMERResult
98             Args : -hmm_name => string, name of hmm file
99             -sequence_file => name of the sequence file
100              
101             plus Bio::Search::Result::GenericResult parameters
102              
103             -query_name => Name of query Sequence
104             -query_accession => Query accession number (if available)
105             -query_description => Description of query sequence
106             -query_length => Length of query sequence
107             -database_name => Name of database
108             -database_letters => Number of residues in database
109             -database_entries => Number of entries in database
110             -parameters => hash ref of search parameters (key => value)
111             -statistics => hash ref of search statistics (key => value)
112             -algorithm => program name (blastx)
113             -algorithm_version => version of the algorithm (2.1.2)
114             -program_reference => literature reference string for this algorithm
115              
116             =cut
117              
118             sub new {
119 36     36 1 151 my($class,@args) = @_;
120 36         204 my $self = $class->SUPER::new(@args);
121            
122 36         151 my ($hmm,$seqfile) = $self->_rearrange([qw(HMM_NAME SEQUENCE_FILE)],
123             @args);
124            
125 36 50       192 defined( $seqfile) && $self->sequence_file($seqfile);
126 36 50       141 defined( $hmm) && $self->hmm_name($hmm);
127              
128 36         162 return $self;
129             }
130              
131              
132             =head2 hmm_name
133              
134             Title : hmm_name
135             Usage : $obj->hmm_name($newval)
136             Function: Get/Set the value of hmm_name
137             Returns : value of hmm_name
138             Args : newvalue (optional)
139              
140              
141             =cut
142              
143             sub hmm_name{
144 49     49 1 110 my ($self,$value) = @_;
145 49 100       109 if( defined $value) {
146 36         61 $self->{'_hmm_name'} = $value;
147             }
148 49         101 return $self->{'_hmm_name'};
149             }
150              
151              
152             =head2 sequence_file
153              
154             Title : sequence_file
155             Usage : $obj->sequence_file($newval)
156             Function: Get/Set the value of sequence_file
157             Returns : value of sequence_file
158             Args : newvalue (optional)
159              
160              
161             =cut
162              
163             sub sequence_file{
164 49     49 1 72 my ($self,$value) = @_;
165 49 100       99 if( defined $value) {
166 36         86 $self->{'_sequence_file'} = $value;
167             }
168 49         104 return $self->{'_sequence_file'};
169              
170             }
171              
172              
173             =head2 next_model
174              
175             Title : next_model
176             Usage : my $domain = $result->next_model
177             Function: Returns the next domain - this
178             is an alias for next_hit
179             Returns : L object
180             Args : none
181              
182              
183             =cut
184              
185 1107     1107 1 4172 sub next_model{ shift->next_hit }
186              
187             =head2 models
188              
189             Title : models
190             Usage : my @domains = $result->models;
191             Function: Returns the list of HMM models seen - this
192             is an alias for hits()
193             Returns : Array of L objects
194             Args : none
195              
196              
197             =cut
198              
199 0     0 1   sub models{ shift->hits }
200              
201             =head2 Bio::Search::Result::GenericResult inherited methods
202              
203             =cut
204              
205             =head2 algorithm
206              
207             Title : algorithm
208             Usage : my $r_type = $hsp->algorithm
209             Function: Obtain the name of the algorithm used to obtain the Result
210             Returns : string (e.g., BLASTP)
211             Args : [optional] scalar string to set value
212              
213             =cut
214              
215             =head2 algorithm_version
216              
217             Title : algorithm_version
218             Usage : my $r_version = $hsp->algorithm_version
219             Function: Obtain the version of the algorithm used to obtain the Result
220             Returns : string (e.g., 2.1.2)
221             Args : [optional] scalar string to set algorithm version value
222              
223             =cut
224              
225             =head2 Bio::Search::Result::ResultI interface methods
226              
227             Bio::Search::Result::ResultI implementation
228              
229             =head2 next_hit
230              
231             Title : next_hit
232             Usage : while( $hit = $result->next_hit()) { ... }
233             Function: Returns the next available Hit object, representing potential
234             matches between the query and various entities from the database.
235             Returns : a Bio::Search::Hit::HitI object or undef if there are no more.
236             Args : none
237              
238              
239             =cut
240              
241             =head2 query_name
242              
243             Title : query_name
244             Usage : $id = $result->query_name();
245             Function: Get the string identifier of the query used by the
246             algorithm that performed the search.
247             Returns : a string.
248             Args : [optional] new string value for query name
249              
250             =cut
251              
252             =head2 query_accession
253              
254             Title : query_accession
255             Usage : $id = $result->query_accession();
256             Function: Get the accession (if available) for the query sequence
257             Returns : a string
258             Args : [optional] new string value for accession
259              
260             =cut
261              
262             =head2 query_length
263              
264             Title : query_length
265             Usage : $id = $result->query_length();
266             Function: Get the length of the query sequence
267             used in the search.
268             Returns : a number
269             Args : [optional] new integer value for query length
270              
271             =cut
272              
273             =head2 query_description
274              
275             Title : query_description
276             Usage : $id = $result->query_description();
277             Function: Get the description of the query sequence
278             used in the search.
279             Returns : a string
280             Args : [optional] new string for the query description
281              
282             =cut
283              
284             =head2 database_name
285              
286             Title : database_name
287             Usage : $name = $result->database_name()
288             Function: Used to obtain the name of the database that the query was searched
289             against by the algorithm.
290             Returns : a scalar string
291             Args : [optional] new string for the db name
292              
293             =cut
294              
295             =head2 database_letters
296              
297             Title : database_letters
298             Usage : $size = $result->database_letters()
299             Function: Used to obtain the size of database that was searched against.
300             Returns : a scalar integer (units specific to algorithm, but probably the
301             total number of residues in the database, if available) or undef if
302             the information was not available to the Processor object.
303             Args : [optional] new scalar integer for number of letters in db
304              
305              
306             =cut
307              
308             =head2 database_entries
309              
310             Title : database_entries
311             Usage : $num_entries = $result->database_entries()
312             Function: Used to obtain the number of entries contained in the database.
313             Returns : a scalar integer representing the number of entities in the database
314             or undef if the information was not available.
315             Args : [optional] new integer for the number of sequence entries in the db
316              
317              
318             =cut
319              
320             =head2 get_parameter
321              
322             Title : get_parameter
323             Usage : my $gap_ext = $report->get_parameter('gapext')
324             Function: Returns the value for a specific parameter used
325             when running this report
326             Returns : string
327             Args : name of parameter (string)
328              
329             =cut
330              
331             =head2 available_parameters
332              
333             Title : available_parameters
334             Usage : my @params = $report->available_paramters
335             Function: Returns the names of the available parameters
336             Returns : Return list of available parameters used for this report
337             Args : none
338              
339             =cut
340              
341             =head2 get_statistic
342              
343             Title : get_statistic
344             Usage : my $gap_ext = $report->get_statistic('kappa')
345             Function: Returns the value for a specific statistic available
346             from this report
347             Returns : string
348             Args : name of statistic (string)
349              
350             =cut
351              
352             =head2 available_statistics
353              
354             Title : available_statistics
355             Usage : my @statnames = $report->available_statistics
356             Function: Returns the names of the available statistics
357             Returns : Return list of available statistics used for this report
358             Args : none
359              
360             =cut
361              
362             =head2 Bio::Search::Result::GenericResult specific methods
363              
364             =cut
365              
366             =head2 add_hit
367              
368             Title : add_hit
369             Usage : $report->add_hit($hit)
370             Function: Adds a HitI to the stored list of hits
371             Returns : Number of HitI currently stored
372             Args : Bio::Search::Hit::HitI
373              
374             =cut
375              
376             =head2 rewind
377              
378             Title : rewind
379             Usage : $result->rewind;
380             Function: Allow one to reset the Hit iteration to the beginning
381             Since this is an in-memory implementation
382             Returns : none
383             Args : none
384              
385             =cut
386              
387             sub rewind{
388 0     0 1   my ($self) = @_;
389 0           $self->{'_hitindex'} = 0;
390             }
391              
392              
393             =head2 add_parameter
394              
395             Title : add_parameter
396             Usage : $report->add_parameter('gapext', 11);
397             Function: Adds a parameter
398             Returns : none
399             Args : key - key value name for this parama
400             value - value for this parameter
401              
402             =cut
403              
404             =head2 add_statistic
405              
406             Title : add_statistic
407             Usage : $report->add_statistic('lambda', 2.3);
408             Function: Adds a parameter
409             Returns : none
410             Args : key - key value name for this parama
411             value - value for this parameter
412              
413             =cut
414              
415             =head2 num_hits
416              
417             Title : num_hits
418             Usage : my $hitcount= $result->num_hits
419             Function: returns the number of hits for this query result
420             Returns : integer
421             Args : none
422              
423              
424             =cut
425              
426             =head2 hits
427              
428             Title : hits
429             Usage : my @hits = $result->hits
430             Function: Returns the available hits for this Result
431             Returns : Array of L objects
432             Args : none
433              
434              
435             =cut
436              
437             =head2 program_reference
438              
439             Title : program_reference
440             Usage : $obj->program_reference($newval)
441             Function:
442             Returns : value of the literature reference for the algorithm
443             Args : newvalue (optional)
444              
445              
446             =cut
447              
448             1;