File Coverage

Bio/Prospect/ThreadSummary.pm
Criterion Covered Total %
statement 15 86 17.4
branch 0 2 0.0
condition 0 3 0.0
subroutine 5 27 18.5
pod 21 21 100.0
total 41 139 29.5


line stmt bran cond sub pod time code
1             =head1 NAME
2              
3             Bio::Prospect::ThreadSummary - Distilled version of a Bio::Prospect::Thread
4            
5             S<$Id: ThreadSummary.pm,v 1.15 2003/11/18 19:45:45 rkh Exp $>
6              
7             =head1 SYNOPSIS
8              
9             my $in = new IO::File $ARGV[0] or die( "can't open $ARGV[0] for reading" );
10             my $xml = '';
11             while(<$in>) { $xml .= $_; }
12             close($in);
13            
14             my $t = new Bio::Prospect::Thread( $xml );
15             my $s = new Bio::Prospect::ThreadSummary( $t );
16            
17             print "qname: " . $s->qname() . "\n";
18             print "tname: " . $s->tname() . "\n";
19             print "raw_score: " . $s->raw_score() . "\n";
20              
21             =head1 DESCRIPTION
22              
23             Bio::Prospect::ThreadSummary -- Distilled version of a Bio::Prospect::Thread. Only
24             contains score and position information, no sequences or alignments.
25              
26             =head1 TODO
27              
28             Integrate exception handling
29              
30             =cut
31              
32             package Bio::Prospect::ThreadSummary;
33              
34 2     2   936 use strict;
  2         4  
  2         73  
35 2     2   10 use Carp;
  2         6  
  2         124  
36 2     2   2134 use Data::Dumper;
  2         15675  
  2         149  
37 2     2   18 use Bio::Prospect::Exceptions;
  2         4  
  2         47  
38              
39 2     2   11 use vars qw( $VERSION );
  2         4  
  2         1724  
40             $VERSION = sprintf( "%d.%02d", q$Revision: 1.15 $ =~ /(\d+)\.(\d+)/ );
41              
42              
43             =head1 METHODS
44              
45             =cut
46              
47              
48             #-------------------------------------------------------------------------------
49             # new()
50             #-------------------------------------------------------------------------------
51              
52             =head2 new()
53              
54             Name: new()
55             Purpose: return ThreadSummary object
56             Arguments: Bio::Prospect::Thread
57             Returns: Bio::Prospect::ThreadSummary
58              
59             =cut
60              
61             sub new {
62 0     0 1   my $class = shift;
63 0           my $thread = shift;
64 0           my $self = {};
65 0           bless $self,$class;
66              
67 0 0 0       if ( ! defined $thread or ref $thread ne 'Bio::Prospect::Thread' ) {
68 0           throw Bio::Prospect::BadUsage( {
69             'error' => 'incorrect argument to new()',
70             'detail' => 'Bio::Prospect::ThreadSummary::new() requires a Bio::Prospect::Thread object as an argument'
71             } );
72             }
73              
74 0           $self->_init( $thread );
75              
76 0           return( $self );
77             }
78              
79              
80             #-------------------------------------------------------------------------------
81             # qname()
82             #-------------------------------------------------------------------------------
83              
84             =head2 qname()
85              
86             Name: qname()
87             Purpose: return the name of the query sequence
88             Arguments: none
89             Returns: string
90              
91             =cut
92              
93 0     0 1   sub qname { my $self = shift; return $self->{'qname'} }
  0            
94              
95              
96             #-------------------------------------------------------------------------------
97             # qstart()
98             #-------------------------------------------------------------------------------
99              
100             =head2 qstart()
101              
102             Name: qstart()
103             Purpose: return the start of the alignment on the query sequence
104             Arguments: none
105             Returns: integer
106              
107             =cut
108              
109 0     0 1   sub qstart { my $self = shift; return $self->{'qstart'} }
  0            
110              
111              
112             #-------------------------------------------------------------------------------
113             # qend()
114             #-------------------------------------------------------------------------------
115              
116             =head2 qend()
117              
118             Name: qend()
119             Purpose: return the end of the alignment on the query sequence
120             Arguments: none
121             Returns: integer
122              
123             =cut
124              
125 0     0 1   sub qend { my $self = shift; return $self->{'qend'} }
  0            
126              
127              
128             #-------------------------------------------------------------------------------
129             # target_start()
130             #-------------------------------------------------------------------------------
131              
132             =head2 target_start()
133              
134             Name: target_start()
135             Purpose: return the start position of the query sequence
136             Arguments: none
137             Returns: integer
138              
139             =cut
140              
141 0     0 1   sub target_start { my $self = shift; return $self->{'target_start'} }
  0            
142              
143              
144             #-------------------------------------------------------------------------------
145             # target_end()
146             #-------------------------------------------------------------------------------
147              
148             =head2 target_end()
149              
150             Name: target_end()
151             Purpose: return the end position of the query sequence
152             Arguments: none
153             Returns: integer
154              
155             =cut
156              
157 0     0 1   sub target_end { my $self = shift; return $self->{'target_end'} }
  0            
158              
159              
160             #-------------------------------------------------------------------------------
161             # tname()
162             #-------------------------------------------------------------------------------
163              
164             =head2 tname()
165              
166             Name: tname()
167             Purpose: return the name of the template sequence
168             Arguments: none
169             Returns: string
170              
171             =cut
172              
173 0     0 1   sub tname { my $self = shift; return $self->{'tname'} }
  0            
174              
175              
176             #-------------------------------------------------------------------------------
177             # tstart()
178             #-------------------------------------------------------------------------------
179              
180             =head2 tstart()
181              
182             Name: tstart()
183             Purpose: return the start of the alignment on the template sequence
184             Arguments: none
185             Returns: integer
186              
187             =cut
188              
189 0     0 1   sub tstart { my $self = shift; return $self->{'tstart'} }
  0            
190              
191              
192             #-------------------------------------------------------------------------------
193             # tend()
194             #-------------------------------------------------------------------------------
195              
196             =head2 tend()
197              
198             Name: tend()
199             Purpose: return the end of the alignment on the template sequence
200             Arguments: none
201             Returns: integer
202              
203             =cut
204              
205 0     0 1   sub tend { my $self = shift; return $self->{'tend'} }
  0            
206              
207              
208             #-------------------------------------------------------------------------------
209             # template_start()
210             #-------------------------------------------------------------------------------
211              
212             =head2 template_start()
213              
214             Name: template_start()
215             Purpose: return the start of the alignment on the template sequence.
216             Arguments: none
217             Returns: integer
218              
219             =cut
220              
221 0     0 1   sub template_start { my $self = shift; return $self->{'template_start'} }
  0            
222              
223              
224             #-------------------------------------------------------------------------------
225             # template_end()
226             #-------------------------------------------------------------------------------
227              
228             =head2 template_end()
229              
230             Name: template_end()
231             Purpose: return the end of the alignment on the template sequence.
232             Arguments: none
233             Returns: integer
234              
235             =cut
236              
237 0     0 1   sub template_end { my $self = shift; return $self->{'template_end'} }
  0            
238              
239              
240             #-------------------------------------------------------------------------------
241             # align_len()
242             #-------------------------------------------------------------------------------
243              
244             =head2 align_len()
245              
246             Name: align_len()
247             Purpose: length of the alignment
248             Arguments: none
249             Returns: integer
250              
251             =cut
252              
253 0     0 1   sub align_len { my $self = shift; return $self->{'align_len'} }
  0            
254              
255              
256             #-------------------------------------------------------------------------------
257             # identities()
258             #-------------------------------------------------------------------------------
259              
260             =head2 identities()
261              
262             Name: identities()
263             Purpose: number of identities
264             Arguments: none
265             Returns: integer
266              
267             =cut
268              
269 0     0 1   sub identities { my $self = shift; return $self->{'identities'} }
  0            
270              
271              
272             #-------------------------------------------------------------------------------
273             # svm_score()
274             #-------------------------------------------------------------------------------
275              
276             =head2 svm_score()
277              
278             Name: svm_score()
279             Purpose: return the svm score
280             Arguments: none
281             Returns: float
282              
283             =cut
284              
285 0     0 1   sub svm_score { my $self = shift; return $self->{'svm_score'} }
  0            
286              
287              
288             #-------------------------------------------------------------------------------
289             # raw_score()
290             #-------------------------------------------------------------------------------
291              
292             =head2 raw_score()
293              
294             Name: raw_score()
295             Purpose: return the raw score
296             Arguments: none
297             Returns: float
298              
299             =cut
300              
301 0     0 1   sub raw_score { my $self = shift; return $self->{'raw_score'} }
  0            
302              
303              
304             #-------------------------------------------------------------------------------
305             # gap_score()
306             #-------------------------------------------------------------------------------
307              
308             =head2 gap_score()
309              
310             Name: gap_score()
311             Purpose: return the gap score
312             Arguments: none
313             Returns: float
314              
315             =cut
316              
317 0     0 1   sub gap_score { my $self = shift; return $self->{'gap_score'} }
  0            
318              
319              
320             #-------------------------------------------------------------------------------
321             # mutation_score()
322             #-------------------------------------------------------------------------------
323              
324             =head2 mutation_score()
325              
326             Name: mutation_score()
327             Purpose: return the mutation score
328             Arguments: none
329             Returns: float
330              
331             =cut
332              
333 0     0 1   sub mutation_score { my $self = shift; return $self->{'mutation_score'} }
  0            
334              
335              
336             #-------------------------------------------------------------------------------
337             # ssfit_score()
338             #-------------------------------------------------------------------------------
339              
340             =head2 ssfit_score()
341              
342             Name: ssfit_score()
343             Purpose: return the ssfit score
344             Arguments: none
345             Returns: float
346              
347             =cut
348              
349 0     0 1   sub ssfit_score { my $self = shift; return $self->{'ssfit_score'} }
  0            
350              
351              
352             #-------------------------------------------------------------------------------
353             # pair_score()
354             #-------------------------------------------------------------------------------
355              
356             =head2 pair_score()
357              
358             Name: pair_score()
359             Purpose: return the pairwise score
360             Arguments: none
361             Returns: float
362              
363             =cut
364              
365 0     0 1   sub pair_score { my $self = shift; return $self->{'pair_score'} }
  0            
366              
367              
368             #-------------------------------------------------------------------------------
369             # singleton_score()
370             #-------------------------------------------------------------------------------
371              
372             =head2 singleton_score()
373              
374             Name: singleton_score()
375             Purpose: return the singletonwise score
376             Arguments: none
377             Returns: float
378              
379             =cut
380              
381 0     0 1   sub singleton_score { my $self = shift; return $self->{'singleton_score'} }
  0            
382              
383              
384             #-------------------------------------------------------------------------------
385             # rgyr()
386             #-------------------------------------------------------------------------------
387              
388             =head2 rgyr()
389              
390             Name: rgyr()
391             Purpose: return the radius of gyration
392             Arguments: none
393             Returns: float
394              
395             =cut
396              
397 0     0 1   sub rgyr { my $self = shift; return $self->{'rgyr'} }
  0            
398              
399              
400             #-------------------------------------------------------------------------------
401             # INTERNAL METHODS: not intended for use outside this module
402             #-------------------------------------------------------------------------------
403            
404             =pod
405            
406             =head1 INTERNAL METHODS & ROUTINES
407            
408             The following functions are documented for developers' benefit. THESE
409             SHOULD NOT BE CALLED OUTSIDE OF THIS MODULE. YOU'VE BEEN WARNED.
410            
411             =cut
412              
413              
414             #-------------------------------------------------------------------------------
415             # _init()
416             #-------------------------------------------------------------------------------
417              
418             =head2 _init()
419              
420             Name: _init()
421             Purpose: build ThreadSummary object from Thread object
422             Arguments: none
423             Returns: none
424              
425             =cut
426              
427             sub _init {
428 0     0     my $self = shift;
429 0           my $thread = shift;
430              
431 0           $self->{'qname'} = $thread->qname();
432 0           $self->{'qstart'} = $thread->qstart();
433 0           $self->{'qend'} = $thread->qend();
434 0           $self->{'target_start'} = $thread->target_start();
435 0           $self->{'target_end'} = $thread->target_end();
436 0           $self->{'tname'} = $thread->tname();
437 0           $self->{'tstart'} = $thread->tstart();
438 0           $self->{'tend'} = $thread->tend();
439 0           $self->{'template_start'} = $thread->template_start();
440 0           $self->{'template_end'} = $thread->template_end();
441 0           $self->{'align_len'} = $thread->align_len();
442 0           $self->{'identities'} = $thread->identities();
443 0           $self->{'svm_score'} = $thread->svm_score();
444 0           $self->{'raw_score'} = $thread->raw_score();
445 0           $self->{'gap_score'} = $thread->gap_score();
446 0           $self->{'mutation_score'} = $thread->mutation_score();
447 0           $self->{'ssfit_score'} = $thread->ssfit_score();
448 0           $self->{'pair_score'} = $thread->pair_score();
449 0           $self->{'singleton_score'} = $thread->singleton_score();
450 0           $self->{'rgyr'} = $thread->rgyr();
451              
452 0           return;
453             }
454              
455              
456             1;