annotate variant_effect_predictor/Bio/SearchIO/SearchWriterI.pm @ 1:d6778b5d8382 draft default tip

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