annotate variant_effect_predictor/Bio/EnsEMBL/IdMapping/TinyFeature.pm @ 0:21066c0abaf5 draft

Uploaded
author willmclaren
date Fri, 03 Aug 2012 10:04:48 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
1 =head1 LICENSE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6 This software is distributed under a modified Apache license.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7 For license details, please see
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11 =head1 CONTACT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17 <helpdesk@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 =head1 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 Bio::EnsEMBL::IdMapping::TinyFeature - lightweight feature object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 This object isn't instantiated. See objects which inherit from it
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 (TinyGene, TinyTranscript, etc.) for examples.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32 This is the base class for the lightweight feature objects used by the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 stable Id maping application. For performance reasons, these objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 are instantiated using a new_fast() method. The internal implementation
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 is an arrayref (rather than the more common hashref), which optimises
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 memory usage.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 There are no adaptors to fetch TinyFeatures from the database. You
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 rather use the normal feature adaptors and then create the TinyFeatures
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 from the heavy objects you get. The memory saving will therefore mainly
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 take effect when serialising and reloading these objects.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43 Also note that TinyFeatures don't have a slice attached to them - all
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 location information (where required) is stored on the feature object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45 directly.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47 =head1 METHODS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49 new_fast
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 stable_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52 version
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53 created_date
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 modified_date
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55 to_string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 package Bio::EnsEMBL::IdMapping::TinyFeature;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 # internal data structure (array indices):
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63 # 0 dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 # 1 stable_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 # 2 version
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66 # 3 created_date
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 # 4 modified_date
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 # other instance variables differ by subclass implementation, so look there.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 use warnings;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74 no warnings 'uninitialized';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 use Bio::EnsEMBL::Utils::Exception qw(throw warning);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 =head2 new_fast
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 Arg[1] : Arrayref $array_ref - the arrayref to bless into the new object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82 Description : Constructor.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 Return type : Bio::EnsEMBL::IdMapping::TinyFeature implementing class
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 Caller : Bio::EnsEMBL::IdMapping::Cache
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 sub new_fast {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 my $class = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 my $array_ref = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 return bless $array_ref, $class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 =head2 id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 Arg[1] : (optional) Int - the feature's internal Id ("dbID")
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101 Description : Getter/setter for the feature's internal Id.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 Return type : Int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104 Caller : Bio::EnsEMBL::IdMapping::Cache
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110 sub id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 $self->[0] = shift if (@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 return $self->[0];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 =head2 stable_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 Arg[1] : (optional) String - the feature's stable Id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 Description : Getter/setter for the feature's stable Id.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 Return type : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 Caller : Bio::EnsEMBL::IdMapping::Cache
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129 sub stable_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131 $self->[1] = shift if (@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 return $self->[1];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136 =head2 version
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 Arg[1] : (optional) Int - the feature's stable Id version
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139 Description : Getter/setter for the feature's stable Id version.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 Return type : Int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 Caller : Bio::EnsEMBL::IdMapping::Cache
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 sub version {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 $self->[2] = shift if (@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151 return $self->[2];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 =head2 created_date
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157 Arg[1] : (optional) String - the feature's stable Id creation date
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 Description : Getter/setter for the feature's stable Id creation date.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 Return type : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 Caller : Bio::EnsEMBL::IdMapping::Cache
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 sub created_date {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 $self->[3] = shift if (@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 return $self->[3];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 =head2 modified_date
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 Arg[1] : (optional) String - the feature's stable Id modification date
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 Description : Getter/setter for the feature's stable Id modification date.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 Return type : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 Caller : Bio::EnsEMBL::IdMapping::Cache
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 sub modified_date {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188 $self->[4] = shift if (@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189 return $self->[4];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 =head2 to_string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 Example : print LOG "Created ", $f->to_string, "\n";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 Description : Prints a string representation of the feature for debug
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 purposes.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198 Return type : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206 sub to_string {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 return $self->id.':'.$self->stable_id.'.'.$self->version;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213