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