annotate variant_effect_predictor/Bio/DasI.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 # $Id: DasI.pm,v 1.15 2002/11/11 18:16:29 lapp Exp $
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3 # BioPerl module for Bio::DasI
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5 # Cared for by Lincoln Stein <lstein@cshl.org>
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7 # Copyright Lincoln Stein
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9 # You may distribute this module under the same terms as perl itself
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11 # POD documentation - main docs before the code
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::DasI - DAS-style access to a feature database
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 # Open up a feature database somehow...
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20 $db = Bio::DasI->new(@args);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22 @segments = $db->segment(-name => 'NT_29921.4',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 -start => 1,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24 -end => 1000000);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26 # segments are Bio::Das::SegmentI - compliant objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 # fetch a list of features
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 @features = $db->features(-type=>['type1','type2','type3']);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 # invoke a callback over features
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32 $db->features(-type=>['type1','type2','type3'],
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 -callback => sub { ... }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 $stream = $db->get_seq_stream(-type=>['type1','type2','type3']);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 while (my $feature = $stream->next_seq) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 # each feature is a Bio::SeqFeatureI-compliant object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 # get all feature types
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 @types = $db->types;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 # count types
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45 %types = $db->types(-enumerate=>1);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47 @feature = $db->get_feature_by_name($class=>$name);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 @feature = $db->get_feature_by_target($target_name);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49 @feature = $db->get_feature_by_attribute($att1=>$value1,$att2=>$value2);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 $feature = $db->get_feature_by_id($id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52 $error = $db->error;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56 Bio::DasI is a simplified alternative interface to sequence annotation
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57 databases used by the distributed annotation system (see
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58 L<Bio::Das>). In this scheme, the genome is represented as a series of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 features, a subset of which are named. Named features can be used as
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60 reference points for retrieving "segments" (see L<Bio::Das::SegmentI>),
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 and these can, in turn, be used as the basis for exploring the genome
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 further.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 In addition to a name, each feature has a "class", which is
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 essentially a namespace qualifier and a "type", which describes what
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66 type of feature it is. Das uses the GO consortium's ontology of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 feature types, and so the type is actually an object of class
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68 Bio::Das::FeatureTypeI (see L<Bio::Das::FeatureTypeI>). Bio::DasI
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 provides methods for interrogating the database for the types it
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70 contains and the counts of each type.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 =head1 FEEDBACK
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74 =head2 Mailing Lists
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 User feedback is an integral part of the evolution of this and other
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 Bioperl modules. Send your comments and suggestions preferably to one
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78 of the Bioperl mailing lists. Your participation is much appreciated.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 bioperl-l@bio.perl.org
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82 =head2 Reporting Bugs
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 Report bugs to the Bioperl bug tracking system to help us keep track
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 the bugs and their resolution. Bug reports can be submitted via email
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 or the web:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 bioperl-bugs@bio.perl.org
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 http://bugzilla.bioperl.org/
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 =head1 AUTHOR - Lincoln Stein
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 Email lstein@cshl.org
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 =head1 APPENDIX
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97 The rest of the documentation details each of the object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 methods. Internal methods are usually preceded with a _
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 #'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 # Let the code begin...
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 package Bio::DasI;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 use vars qw(@ISA);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 use Bio::Root::RootI;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110 use Bio::Das::SegmentI;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 use Bio::SeqFeature::CollectionI;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 # Object preamble - inherits from Bio::Root::Root;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 @ISA = qw(Bio::Root::RootI Bio::SeqFeature::CollectionI);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 =head2 new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 Title : new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 Usage : Bio::DasI->new(@args)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 Function: Create new Bio::DasI object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 Returns : a Bio::DasI object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 Args : see below
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 The new() method creates a new object. The argument list is either a
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 single argument consisting of a connection string, or the following
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 list of -name=E<gt>value arguments:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 Argument Description
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 -------- -----------
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 -dsn Connection string for database
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131 -adaptor Name of an adaptor class to use when connecting
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 -aggregator Array ref containing list of aggregators
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 "semantic mappers" to apply to database
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 -user Authentication username
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 -pass Authentication password
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 Implementors of DasI may add other arguments.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 sub new {shift->throw_not_implemented}
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143 =head2 types
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145 Title : types
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 Usage : $db->types(@args)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 Function: return list of feature types in database
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 Returns : a list of Bio::Das::FeatureTypeI objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 Args : see below
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151 This routine returns a list of feature types known to the database. It
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 is also possible to find out how many times each feature occurs.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154 Arguments are -option=E<gt>value pairs as follows:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156 -enumerate if true, count the features
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 The returned value will be a list of Bio::Das::FeatureTypeI objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 (see L<Bio::Das::FeatureTypeI>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 If -enumerate is true, then the function returns a hash (not a hash
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 reference) in which the keys are the stringified versions of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 Bio::Das::FeatureTypeI and the values are the number of times each
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164 feature appears in the database.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 sub types { shift->throw_not_implemented; }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 =head2 segment
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 Title : segment
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173 Usage : $db->segment(@args);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 Function: create a segment object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 Returns : segment object(s)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 Args : see below
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 This method generates a Bio::Das::SegmentI object (see
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179 L<Bio::Das::SegmentI>). The segment can be used to find overlapping
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 features and the raw sequence.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 When making the segment() call, you specify the ID of a sequence
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183 landmark (e.g. an accession number, a clone or contig), and a
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 positional range relative to the landmark. If no range is specified,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185 then the entire region spanned by the landmark is used to generate the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 segment.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188 Arguments are -option=E<gt>value pairs as follows:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 -name ID of the landmark sequence.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192 -class A namespace qualifier. It is not necessary for the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 database to honor namespace qualifiers, but if it
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 does, this is where the qualifier is indicated.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 -version Version number of the landmark. It is not necessary for
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 the database to honor versions, but if it does, this is
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198 where the version is indicated.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200 -start Start of the segment relative to landmark. Positions
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 follow standard 1-based sequence rules. If not specified,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202 defaults to the beginning of the landmark.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 -end End of the segment relative to the landmark. If not specified,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205 defaults to the end of the landmark.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207 The return value is a list of Bio::Das::SegmentI objects. If the method
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 is called in a scalar context and there are no more than one segments
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 that satisfy the request, then it is allowed to return the segment.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 Otherwise, the method must throw a "multiple segment exception".
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214 #'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216 sub segment { shift->throw_not_implemented }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218 =head2 features
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220 Title : features
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 Usage : $db->features(@args)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222 Function: get all features, possibly filtered by type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223 Returns : a list of Bio::SeqFeatureI objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224 Args : see below
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225 Status : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227 This routine will retrieve features in the database regardless of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228 position. It can be used to return all features, or a subset based on
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229 their type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 Arguments are -option=E<gt>value pairs as follows:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233 -types List of feature types to return. Argument is an array
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234 of Bio::Das::FeatureTypeI objects or a set of strings
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235 that can be converted into FeatureTypeI objects.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237 -callback A callback to invoke on each feature. The subroutine
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238 will be passed each Bio::SeqFeatureI object in turn.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240 -attributes A hash reference containing attributes to match.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242 The -attributes argument is a hashref containing one or more attributes
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243 to match against:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245 -attributes => { Gene => 'abc-1',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246 Note => 'confirmed' }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248 Attribute matching is simple exact string matching, and multiple
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249 attributes are ANDed together. See L<Bio::DB::ConstraintsI> for a
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 more sophisticated take on this.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252 If one provides a callback, it will be invoked on each feature in
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 turn. If the callback returns a false value, iteration will be
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254 interrupted. When a callback is provided, the method returns undef.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258 sub features { shift->throw_not_implemented }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260 =head2 get_feature_by_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262 Title : get_feature_by_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 Usage : $db->get_feature_by_name(-class=>$class,-name=>$name)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264 Function: fetch features by their name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265 Returns : a list of Bio::SeqFeatureI objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266 Args : the class and name of the desired feature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267 Status : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269 This method can be used to fetch named feature(s) from the database.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270 The -class and -name arguments have the same meaning as in segment(),
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271 and the method also accepts the following short-cut forms:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273 1) one argument: the argument is treated as the feature name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274 2) two arguments: the arguments are treated as the class and name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275 (note: this uses _rearrange() so the first argument must not
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276 begin with a hyphen or it will be interpreted as a named
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277 argument).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
278
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
279 This method may return zero, one, or several Bio::SeqFeatureI objects.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
280 The implementor may allow the name to contain wildcards, in which case
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
281 standard C-shell glob semantics are expected.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
282
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
283 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
284
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
285 sub get_feature_by_name {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
286 shift->throw_not_implemented();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
287 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
288
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
289 =head2 get_feature_by_target
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
290
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
291 Title : get_feature_by_target
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
292 Usage : $db->get_feature_by_target($class => $name)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
293 Function: fetch features by their similarity target
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
294 Returns : a list of Bio::SeqFeatureI objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
295 Args : the class and name of the desired feature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
296 Status : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
297
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
298 This method can be used to fetch a named feature from the database
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
299 based on its similarity hit. The arguments are the same as
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
300 get_feature_by_name(). If this is not implemented, the interface
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
301 defaults to using get_feature_by_name().
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
302
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
303 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
304
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
305 sub get_feature_by_target {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
306 shift->get_feature_by_name(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
307 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
308
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
309 =head2 get_feature_by_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
310
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
311 Title : get_feature_by_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
312 Usage : $db->get_feature_by_target($id)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
313 Function: fetch a feature by its ID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
314 Returns : a Bio::SeqFeatureI objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
315 Args : the ID of the feature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
316 Status : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
317
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
318 If the database provides unique feature IDs, this can be used to
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
319 retrieve a single feature from the database. If not overridden, this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
320 interface calls get_feature_by_name() and returns the first element.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
321
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
322 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
323
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
324 sub get_feature_by_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
325 (shift->get_feature_by_name(@_))[0];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
326 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
327
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
328 =head2 get_feature_by_attribute
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
329
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
330 Title : get_feature_by_attribute
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
331 Usage : $db->get_feature_by_attribute(attribute1=>value1,attribute2=>value2)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
332 Function: fetch features by combinations of attribute values
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
333 Returns : a list of Bio::SeqFeatureI objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
334 Args : the class and name of the desired feature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
335 Status : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
336
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
337 This method can be used to fetch a set of features from the database.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
338 Attributes are a list of name=E<gt>value pairs. They will be
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
339 logically ANDed together. If an attribute value is an array
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
340 reference, the list of values in the array is treated as an
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
341 alternative set of values to be ORed together.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
342
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
343 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
344
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
345 sub get_feature_by_attribute {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
346 shift->throw_not_implemented();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
347 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
348
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
349
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
350 =head2 search_notes
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
351
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
352 Title : search_notes
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
353 Usage : $db->search_notes($search_term,$max_results)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
354 Function: full-text search on features, ENSEMBL-style
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
355 Returns : an array of [$name,$description,$score]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
356 Args : see below
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
357 Status : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
358
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
359 This routine performs a full-text search on feature attributes (which
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
360 attributes depend on implementation) and returns a list of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
361 [$name,$description,$score], where $name is the feature ID,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
362 $description is a human-readable description such as a locus line, and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
363 $score is the match strength.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
364
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
365 Since this is a decidedly non-standard thing to do (but the generic
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
366 genome browser uses it), the default method returns an empty list.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
367 You do not have to implement it.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
368
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
369 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
370
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
371 sub search_notes { return }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
372
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
373 =head2 get_seq_stream
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
374
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
375 Title : get_seq_stream
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
376 Usage : $seqio = $db->get_seq_stream(@args)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
377 Function: Performs a query and returns an iterator over it
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
378 Returns : a Bio::SeqIO stream capable of returning Bio::SeqFeatureI objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
379 Args : As in features()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
380 Status : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
381
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
382 This routine takes the same arguments as features(), but returns a
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
383 Bio::SeqIO::Stream-compliant object. Use it like this:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
384
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
385 $stream = $db->get_seq_stream('exon');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
386 while (my $exon = $stream->next_seq) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
387 print $exon,"\n";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
388 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
389
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
390 NOTE: In the interface this method is aliased to get_feature_stream(),
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
391 as the name is more descriptive.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
392
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
393 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
394
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
395 sub get_seq_stream { shift->throw_not_implemented }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
396 sub get_feature_stream {shift->get_seq_stream(@_) }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
397
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
398 =head2 refclass
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
399
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
400 Title : refclass
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
401 Usage : $class = $db->refclass
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
402 Function: returns the default class to use for segment() calls
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
403 Returns : a string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
404 Args : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
405 Status : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
406
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
407 For data sources which use namespaces to distinguish reference
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
408 sequence accessions, this returns the default namespace (or "class")
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
409 to use. This interface defines a default of "Accession".
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
410
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
411 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
412
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
413 sub refclass { "Accession" }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
414
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
415 1;