annotate variant_effect_predictor/Bio/SearchIO/SearchWriterI.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 #-----------------------------------------------------------------
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2 # $Id: SearchWriterI.pm,v 1.7 2002/12/01 00:05:01 jason Exp $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 # BioPerl module Bio::SearchIO::SearchWriterI
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 # Cared for by Steve Chervitz <sac@bioperl.org>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 # You may distribute this module under the same terms as perl itself
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 #-----------------------------------------------------------------
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 Bio::SearchIO::SearchWriterI - Interface for outputting parsed Search results
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 Bio::SearchIO::SearchWriterI objects cannot be instantiated since this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18 module defines a pure interface.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 Given an object that implements the Bio::SearchIO::SearchWriterI interface,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 you can do the following things with it:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 print $writer->to_string( $result_obj, @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 This module defines abstract methods that all subclasses must implement
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 to be used for outputting results from B<Bio::Search::Result::ResultI>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 objects.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 =head1 AUTHOR
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 Steve Chervitz E<lt>sac@bioperl.orgE<gt>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 =head1 DISCLAIMER
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 This software is provided "as is" without warranty of any kind.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 =head1 APPENDIX
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 The rest of the documentation details each of the object methods.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 package Bio::SearchIO::SearchWriterI;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 use Bio::Root::RootI;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 @ISA = qw( Bio::Root::RootI );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 =head2 to_string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 Purpose : Produces data for each Search::Result::ResultI in a string.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 : This is an abstract method. For some useful implementations,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 : see ResultTableWriter.pm, HitTableWriter.pm,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 : and HSPTableWriter.pm.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 Usage : print $writer->to_string( $result_obj, @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 Argument : $result_obj = A Bio::Search::Result::ResultI object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 : @args = any additional arguments used by your implementation.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 Returns : String containing data for each search Result or any of its
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 : sub-objects (Hits and HSPs).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 Throws : n/a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 sub to_string {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 my ($self, $result, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 $self->throw_not_implemented;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 =head2 end_report
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 Title : end_report
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 Usage : $self->end_report()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 Function: The method to call when ending a report, this is
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 mostly for cleanup for formats which require you to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 have something at the end of the document (</BODY></HTML>)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 for HTML
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 Returns : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 sub end_report {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 return '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 =head2 filter
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 Title : filter
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 Usage : $writer->filter('hsp', \&hsp_filter);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 Function: Filter out either at HSP,Hit,or Result level
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 Returns : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 Args : string => data type,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 CODE reference
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 # yes this is an implementation in the interface,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 # yes it assumes that the underlying class is hash-based
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 # yes that might not be a good idea, but until people
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 # start extending the SearchWriterI interface I think
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 # this is an okay way to go
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 sub filter {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 my ($self,$method,$code) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 return undef unless $method;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 $method = uc($method);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 if( $method ne 'HSP' &&
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 $method ne 'HIT' &&
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 $method ne 'RESULT' ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 $self->warn("Unknown method $method");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 return undef;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 if( $code ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 $self->throw("Must provide a valid code reference") unless ref($code) =~ /CODE/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 $self->{$method} = $code;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 return $self->{$method};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127