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