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