0
|
1 #-----------------------------------------------------------------
|
|
2 # $Id: AnalysisResultI.pm,v 1.5 2002/10/22 07:38:24 lapp Exp $
|
|
3 #
|
|
4 # BioPerl module Bio::AnalysisResultI
|
|
5 #
|
|
6 # Cared for by Steve Chervitz <sac@bioperl.org>
|
|
7 #
|
|
8 # Derived from Bio::Tools::AnalysisResult by Hilmar Lapp <hlapp@gmx.net>
|
|
9 #
|
|
10 # You may distribute this module under the same terms as perl itself
|
|
11 #-----------------------------------------------------------------
|
|
12
|
|
13 # POD documentation - main docs before the code
|
|
14
|
|
15 =head1 NAME
|
|
16
|
|
17 Bio::AnalysisResultI - Interface for analysis result objects
|
|
18
|
|
19 =head1 SYNOPSIS
|
|
20
|
|
21 Bio::AnalysisResultI defines an interface that must be implemented by
|
|
22 a subclass. So you cannot create Bio::AnalysisResultI objects,
|
|
23 only objects that inherit from Bio::AnalysisResultI.
|
|
24
|
|
25 =head1 DESCRIPTION
|
|
26
|
|
27 The AnalysisResultI module provides an interface for modules
|
|
28 encapsulating the result of an analysis that was carried out with a
|
|
29 query sequence and an optional subject dataset.
|
|
30
|
|
31 The notion of an analysis represented by this base class is that of a unary or
|
|
32 binary operator, taking either one query or a query and a subject and producing
|
|
33 a result. The query is e.g. a sequence, and a subject is either a sequence,
|
|
34 too, or a database of sequences.
|
|
35
|
|
36 This interface defines methods to access analysis result data and does
|
|
37 not impose any contraints on how the analysis result data is acquired.
|
|
38
|
|
39 Note that this module does not provide support for B<running> an analysis.
|
|
40 Rather, it is positioned in the subsequent parsing step (concerned with
|
|
41 turning raw results into BioPerl objects).
|
|
42
|
|
43 =head1 FEEDBACK
|
|
44
|
|
45 =head2 Mailing Lists
|
|
46
|
|
47 User feedback is an integral part of the evolution of this and other
|
|
48 Bioperl modules. Send your comments and suggestions preferably to one
|
|
49 of the Bioperl mailing lists. Your participation is much appreciated.
|
|
50
|
|
51 bioperl-l@bioperl.org - General discussion
|
|
52 http://bio.perl.org/MailList.html - About the mailing lists
|
|
53
|
|
54 =head2 Reporting Bugs
|
|
55
|
|
56 Report bugs to the Bioperl bug tracking system to help us keep track
|
|
57 the bugs and their resolution. Bug reports can be submitted via email
|
|
58 or the web:
|
|
59
|
|
60 bioperl-bugs@bio.perl.org
|
|
61 http://bugzilla.bioperl.org/
|
|
62
|
|
63 =head1 AUTHOR - Steve Chervitz, Hilmar Lapp
|
|
64
|
|
65 Email sac@bioperl.org
|
|
66 Email hlapp@gmx.net (author of Bio::Tools::AnalysisResult on which this module is based)
|
|
67
|
|
68 =head1 COPYRIGHT
|
|
69
|
|
70 Copyright (c) 2001 Steve Chervitz. All Rights Reserved.
|
|
71
|
|
72 =head1 DISCLAIMER
|
|
73
|
|
74 This software is provided "as is" without warranty of any kind.
|
|
75
|
|
76 =head1 APPENDIX
|
|
77
|
|
78 The rest of the documentation details each of the object
|
|
79 methods. Internal methods are usually preceded with a _
|
|
80
|
|
81 =cut
|
|
82
|
|
83
|
|
84 # Let the code begin...
|
|
85
|
|
86
|
|
87 package Bio::AnalysisResultI;
|
|
88 use strict;
|
|
89 use vars qw(@ISA);
|
|
90
|
|
91 use Bio::Root::RootI;
|
|
92
|
|
93 @ISA = qw( Bio::Root::RootI );
|
|
94
|
|
95
|
|
96 =head2 analysis_query
|
|
97
|
|
98 Usage : $query_obj = $result->analysis_query();
|
|
99 Purpose : Get a Bio::PrimarySeqI-compatible object representing the entity
|
|
100 on which the analysis was performed. Lacks sequence information.
|
|
101 Argument : n/a
|
|
102 Returns : A Bio::PrimarySeqI-compatible object without sequence information.
|
|
103 The sequence will have display_id, description, moltype, and length data.
|
|
104
|
|
105 =cut
|
|
106
|
|
107 #---------------------
|
|
108 sub analysis_query {
|
|
109 #---------------------
|
|
110 my ($self) = @_;
|
|
111 $self->throw_not_implemented;
|
|
112 }
|
|
113
|
|
114
|
|
115 =head2 analysis_subject
|
|
116
|
|
117 Usage : $obj = $result->analyis_subject();
|
|
118 Purpose : Get the subject of the analysis against which it was
|
|
119 performed. For similarity searches it will probably be a database,
|
|
120 and for sequence feature predictions (exons, promoters, etc) it
|
|
121 may be a collection of models or homologous sequences that were
|
|
122 used, or undefined.
|
|
123 Returns : An object of a type the depends on the implementation
|
|
124 May also return undef for analyses that don\'t involve subjects.
|
|
125 Argument : n/a
|
|
126 Comments : Implementation of this method is optional.
|
|
127 AnalysisResultI provides a default behavior of returning undef.
|
|
128
|
|
129 =cut
|
|
130
|
|
131 #---------------
|
|
132 sub analysis_subject {
|
|
133 #---------------
|
|
134 my ($self) = @_;
|
|
135 return undef;
|
|
136 }
|
|
137
|
|
138 =head2 analysis_subject_version
|
|
139
|
|
140 Usage : $vers = $result->analyis_subject_version();
|
|
141 Purpose : Get the version string of the subject of the analysis.
|
|
142 Returns : String or undef for analyses that don\'t involve subjects.
|
|
143 Argument : n/a
|
|
144 Comments : Implementation of this method is optional.
|
|
145 AnalysisResultI provides a default behavior of returning undef.
|
|
146
|
|
147 =cut
|
|
148
|
|
149 #---------------
|
|
150 sub analysis_subject_version {
|
|
151 #---------------
|
|
152 my ($self) = @_;
|
|
153 return undef;
|
|
154 }
|
|
155
|
|
156
|
|
157 =head2 analysis_date
|
|
158
|
|
159 Usage : $date = $result->analysis_date();
|
|
160 Purpose : Get the date on which the analysis was performed.
|
|
161 Returns : String
|
|
162 Argument : n/a
|
|
163
|
|
164 =cut
|
|
165
|
|
166 #---------------------
|
|
167 sub analysis_date {
|
|
168 #---------------------
|
|
169 my ($self) = @_;
|
|
170 $self->throw_not_implemented;
|
|
171 }
|
|
172
|
|
173 =head2 analysis_method
|
|
174
|
|
175 Usage : $meth = $result->analysis_method();
|
|
176 Purpose : Get the name of the sequence analysis method that was used
|
|
177 to produce this result (BLASTP, FASTA, etc.). May also be the
|
|
178 actual name of a program.
|
|
179 Returns : String
|
|
180 Argument : n/a
|
|
181
|
|
182 =cut
|
|
183
|
|
184 #-------------
|
|
185 sub analysis_method {
|
|
186 #-------------
|
|
187 my ($self) = @_;
|
|
188 $self->throw_not_implemented;
|
|
189 }
|
|
190
|
|
191 =head2 analysis_method_version
|
|
192
|
|
193 Usage : $vers = $result->analysis_method_version();
|
|
194 Purpose : Get the version string of the analysis program.
|
|
195 : (e.g., 1.4.9MP, 2.0a19MP-WashU).
|
|
196 Returns : String
|
|
197 Argument : n/a
|
|
198
|
|
199 =cut
|
|
200
|
|
201 #---------------------
|
|
202 sub analysis_method_version {
|
|
203 #---------------------
|
|
204 my ($self) = @_;
|
|
205 $self->throw_not_implemented;
|
|
206 }
|
|
207
|
|
208 =head2 next_feature
|
|
209
|
|
210 Title : next_feature
|
|
211 Usage : $seqfeature = $obj->next_feature();
|
|
212 Function: Returns the next feature available in the analysis result, or
|
|
213 undef if there are no more features.
|
|
214 Example :
|
|
215 Returns : A Bio::SeqFeatureI implementing object, or undef if there are no
|
|
216 more features.
|
|
217 Args : none
|
|
218
|
|
219 =cut
|
|
220
|
|
221 #---------------------
|
|
222 sub next_feature {
|
|
223 #---------------------
|
|
224 my ($self);
|
|
225 $self->throw_not_implemented;
|
|
226 }
|
|
227
|
|
228
|
|
229 1;
|