annotate variant_effect_predictor/Bio/DasI.pm @ 2:a5976b2dce6f

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