annotate variant_effect_predictor/Bio/SearchIO/SearchWriterI.pm @ 0:2bc9b66ada89 draft default tip

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