annotate variant_effect_predictor/Bio/AnalysisParserI.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: AnalysisParserI.pm,v 1.7 2002/12/01 00:05:19 jason Exp $
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 # BioPerl module Bio::AnalysisParserI
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 # Derived from Bio::SeqAnalysisParserI by Jason Stajich, Hilmar Lapp.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10 # You may distribute this module under the same terms as perl itself
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11 #---------------------------------------------------------------
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13 =head1 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15 Bio::AnalysisParserI - Generic analysis output parser interface
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19 # get a AnalysisParserI somehow.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20 # Eventually, there may be an Bio::Factory::AnalysisParserFactory.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 # For now a SearchIO object, an implementation of AnalysisParserI, can be created
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22 # directly, as in the following:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 my $parser = Bio::SearchIO->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24 '-file' => 'inputfile',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 '-format' => 'blast');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 while( my $result = $parser->next_result() ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 print "Result: ", $result->analysis_method,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 ", Query: ", $result->query_name, "\n";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 while( my $feature = $result->next_feature() ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32 print "Feature from ", $feature->start, " to ",
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 $feature->end, "\n";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 AnalysisParserI is a interface for describing generic analysis
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 result parsers. This module makes no assumption about the nature of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 analysis being parsed, only that zero or more result sets can be
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 obtained from the input source.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 This module was derived from Bio::SeqAnalysisParserI, the differences being
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 =over 4
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 =item 1. next_feature() was replaced with next_result().
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 Instead of flattening a stream containing potentially multiple
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 analysis results into a single set of features, AnalysisParserI
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52 segments the stream in terms of analysis result sets
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53 (Bio::AnalysisResultI objects). Each AnalysisResultI can then be
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 queried for its features (if any) as well as other information
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55 about the result
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57 =item 2. AnalysisParserI is a pure interface.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 It does not inherit from Bio::Root::RootI and does not provide a new()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60 method. Implementations are free to choose how to implement it.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 =back
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 =head2 Rationale (copied from Bio::SeqAnalysisParserI)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66 The concept behind this interface is to have a generic interface in sequence
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 annotation pipelines (as used e.g. in high-throughput automated
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68 sequence annotation). This interface enables plug-and-play for new analysis
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 methods and their corresponding parsers without the necessity for modifying
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70 the core of the annotation pipeline. In this concept the annotation pipeline
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71 has to rely on only a list of methods for which to process the results, and a
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 factory from which it can obtain the corresponding parser implementing this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 interface.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75 =head2 TODO
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 Create Bio::Factory::AnalysisParserFactoryI and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78 Bio::Factory::AnalysisParserFactory for interface and an implementation.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 Note that this factory could return Bio::SearchIO-derived objects.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 =head1 FEEDBACK
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 =head2 Mailing Lists
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 User feedback is an integral part of the evolution of this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 and other Bioperl modules. Send your comments and suggestions preferably
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 to one of the Bioperl mailing lists.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 Your participation is much appreciated.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 bioperl-l@bioperl.org - General discussion
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 http://bio.perl.org/MailList.html - About the mailing lists
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 =head2 Reporting Bugs
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 Report bugs to the Bioperl bug tracking system to help us keep track
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 the bugs and their resolution.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97 Bug reports can be submitted via email or the web:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99 bioperl-bugs@bio.perl.org
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 http://bugzilla.bioperl.org/
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 =head1 AUTHOR - Steve Chervitz, Jason Stajich, Hilmar Lapp
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104 Email sac@bioperl.org
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 Authors of Bio::SeqAnalysisParserI on which this module is based:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107 Email jason@bioperl.org
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 Email hlapp@gmx.net
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110 =head1 COPYRIGHT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 Copyright (c) 2001 Steve Chervitz. All Rights Reserved.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 =head1 DISCLAIMER
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 This software is provided "as is" without warranty of any kind.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 =head1 APPENDIX
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 The rest of the documentation details each of the object methods.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 Internal methods are usually preceded with a _
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 package Bio::AnalysisParserI;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 use vars qw(@ISA);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129 use Bio::Root::RootI;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131 @ISA = qw(Bio::Root::RootI);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 =head2 next_result
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 Title : next_result
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136 Usage : $result = $obj->next_result();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 Function: Returns the next result available from the input, or
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 undef if there are no more results.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 Returns : A Bio::Search::Result::ResultI implementing object,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 or undef if there are no more results.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 Args : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 sub next_result {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 my ($self);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 $self->throw_not_implemented;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 =head2 result_factory
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 Title : result_factory
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156 Usage : $res_fact = $obj->result_factory; (get)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157 : $obj->result_factory( $factory ); (set)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 Function: Sets/Gets a factory object to create result objects for this AnalysisParser.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 Returns : Bio::Factory::ResultFactoryI object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 Args : Bio::Factory::ResultFactoryI object (when setting)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 Comments: A AnalysisParserI implementation should provide a default result factory.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 obtainable by the default_result_factory_class() method.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 sub result_factory {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 $self->throw_not_implemented;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171 =head2 default_result_factory_class
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173 Title : default_result_factory_class
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 Usage : $res_factory = $obj->default_result_factory_class()->new( @args )
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 Function: Returns the name of the default class to be used for creating
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 Bio::AnalysisResultI objects.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 Returns : A string containing the name of a class that implements
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179 the Bio::Factory::ResultFactoryI interface.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 Args : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 sub default_result_factory_class {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 # TODO: Uncomment this when Jason's SearchIO code conforms
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 # $self->throw_not_implemented;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191 __END__
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 NOTE: My ten-month old son Russell added the following line.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 It doesn't look like it will compile so I'm putting it here:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 mt6 j7qa