annotate variant_effect_predictor/Bio/EnsEMBL/Variation/BaseVariationFeatureOverlap.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 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 Bio::EnsEMBL::Variation::BaseVariationFeatureOverlap
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 use Bio::EnsEMBL::Variation::BaseVariationFeatureOverlap;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 my $bvfo = Bio::EnsEMBL::Variation::BaseVariationFeatureOverlap->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 -feature => $feature,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 -base_variation_feature => $var_feat
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 print "consequence type: ", (join ",", @{ $bvfo->consequence_type }), "\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 print "most severe consequence: ", $bvfo->display_consequence, "\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 A BaseVariationFeatureOverlap represents a BaseVariationFeature which is in close
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 proximity to another Ensembl Feature. It is the superclass of variation feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 specific classes such as VariationFeatureOverlap and StructuralVariationOverlap
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 and has methods common to all such objects. You will not normally instantiate this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 class directly, instead instantiating one of the more specific subclasses.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 package Bio::EnsEMBL::Variation::BaseVariationFeatureOverlap;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 use Bio::EnsEMBL::Utils::Scalar qw(assert_ref);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 use Bio::EnsEMBL::Utils::Exception qw(throw warning);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 use Bio::EnsEMBL::Variation::Utils::VariationEffect qw(overlap within_cds);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 my $class = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 my (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 $adaptor,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 $base_variation_feature,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 $feature,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 $no_transfer
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 ) = rearrange([qw(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 ADAPTOR
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 BASE_VARIATION_FEATURE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 FEATURE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 NO_TRANSFER
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 )], @_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 assert_ref($base_variation_feature, 'Bio::EnsEMBL::Variation::BaseVariationFeature');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 if (defined $feature) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 assert_ref($feature, 'Bio::EnsEMBL::Feature');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 # we need to ensure the Feature and the BaseVariationFeature live on the same slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 # so we explicitly transfer the Feature here
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 unless($no_transfer && $no_transfer == 1) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 $feature = $feature->transfer($base_variation_feature->slice)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 or throw("Unable to transfer the supplied feature to the same slice as the base variation feature");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 my $self = bless {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 base_variation_feature => $base_variation_feature,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 feature => $feature,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 adaptor => $adaptor,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 }, $class;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 sub new_fast {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 my ($class, $hashref) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 return bless $hashref, $class;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 =head2 feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 Arg [1] : (optional) A Bio::EnsEMBL::Feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 Description: Get/set the associated Feature, lazy-loading it if required
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 Returntype : Bio::EnsEMBL::Feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 Exceptions : throws isf the argument is the wrong type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 sub feature {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 my ($self, $feature, $type) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 if ($feature) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 assert_ref($feature, 'Bio::EnsEMBL::Feature');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 $self->{feature} = $feature;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 if ($type && !$self->{feature}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 # try to lazy load the feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 if (my $adap = $self->{adaptor}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 my $get_method = 'get_'.$type.'Adaptor';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 # XXX: this can doesn't work because the method is AUTOLOADed, need to rethink this...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 #if ($adap->db->dnadb->can($get_method)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 if (my $fa = $adap->db->dnadb->$get_method) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 # if we have a stable id for the feature use that
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 if (my $feature_stable_id = $self->{_feature_stable_id}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 if (my $f = $fa->fetch_by_stable_id($feature_stable_id)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 $self->{feature} = $f;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 delete $self->{_feature_stable_id};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 elsif (my $feature_label = $self->{_feature_label}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 # get a slice covering the vf
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 #for my $f ($fa->fetch_all_by_Slice_constraint)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 #}
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 warn "Cannot get an adaptor for type: $type";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 return $self->{feature};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 sub _fetch_feature_for_stable_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 # we shouldn't actually need this method as there will apparently
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 # soon be core support for fetching any feature by its stable id,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 # but I'm waiting for core to add this...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 my ($self, $feature_stable_id) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 my $type_lookup = {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 G => { type => 'Gene', group => 'core' },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 T => { type => 'Transcript', group => 'core' },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 R => { type => 'RegulatoryFeature', group => 'funcgen' },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 if ($feature_stable_id =~ /^ENS[A-Z]*([G|R|T])\d+$/) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 my $type = $type_lookup->{$1}->{type};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 my $group = $type_lookup->{$1}->{group};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 if (my $adap = $self->{adaptor}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 my $get_method = 'get_'.$type.'Adaptor';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 if ($adap->db->dnadb->can($get_method)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 if (my $fa = $adap->db->dnadb->$get_method) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 # if we have a stable id for the feature use that
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 if (my $feature_stable_id = $self->{_feature_stable_id}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 if (my $f = $fa->fetch_by_stable_id($feature_stable_id)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 $self->{feature} = $f;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 delete $self->{_feature_stable_id};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 elsif (my $feature_label = $self->{_feature_label}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 # get a slice covering the vf
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 #for my $f ($fa->fetch_all_by_Slice_constraint)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 warn "Cannot get an adaptor for type: $type";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 sub _fetch_adaptor_for_group {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 my ($self, $group) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 sub _feature_stable_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 if ($self->feature && $self->feature->can('stable_id')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 return $self->feature->stable_id;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 elsif (my $id = $self->{_feature_stable_id}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 return $id;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 return undef;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 =head2 base_variation_feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 Arg [1] : (optional) A Bio::EnsEMBL::Variation::BaseVariationFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 Description: Get/set the associated BaseVariationFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 Returntype : Bio::EnsEMBL::Variation::BaseVariationFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 Exceptions : throws if the argument is the wrong type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 sub base_variation_feature {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 my ($self, $bvf) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 if ($bvf) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 assert_ref($bvf, 'Bio::EnsEMBL::Variation::BaseVariationFeature');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 $self->{base_variation_feature} = $bvf;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 return $self->{base_variation_feature};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 =head2 add_BaseVariationFeatureOverlapAllele
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 Arg [1] : A Bio::EnsEMBL::Variation::BaseVariationFeatureOverlapAllele instance
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 Description: Add an allele to this BaseVariationFeatureOverlap
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 Exceptions : throws if the argument is not the expected type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 sub add_BaseVariationFeatureOverlapAllele {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 my ($self, $bvfoa) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 assert_ref($bvfoa, 'Bio::EnsEMBL::Variation::BaseVariationFeatureOverlapAllele');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 if ($bvfoa->is_reference) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 $self->{reference_allele} = $bvfoa;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 my $alt_alleles = $self->{alt_alleles} ||= [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 push @$alt_alleles, $bvfoa;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 =head2 get_reference_BaseVariationFeatureOverlapAllele
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 Description: Get the object representing the reference allele of this BaseVariationFeatureOverlapAllele
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 Returntype : Bio::EnsEMBL::Variation::BaseVariationFeatureOverlapAllele instance
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 sub get_reference_BaseVariationFeatureOverlapAllele {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275 return $self->{reference_allele};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278 =head2 get_all_alternate_BaseVariationFeatureOverlapAlleles
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280 Description: Get a list of the alternate alleles of this BaseVariationFeatureOverlapAllele
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281 Returntype : listref of Bio::EnsEMBL::Variation::BaseVariationFeatureOverlapAllele objects
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287 sub get_all_alternate_BaseVariationFeatureOverlapAlleles {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 $self->{alt_alleles} ||= [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292 return $self->{alt_alleles};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 =head2 get_all_BaseVariationFeatureOverlapAlleles
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297 Description: Get a list of the all the alleles, both reference and alternate, of this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 BaseVariationFeatureOverlap
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 Returntype : listref of Bio::EnsEMBL::Variation::BaseVariationFeatureOverlapAllele objects
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 Status : At Risk
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_all_BaseVariationFeatureOverlapAlleles {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 my @alleles = @{ $self->get_all_alternate_BaseVariationFeatureOverlapAlleles };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 my $ref = $self->get_reference_BaseVariationFeatureOverlapAllele;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 unshift @alleles, $ref if defined $ref;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314 return \@alleles;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317 =head2 consequence_type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 Arg [1] : (optional) String $term_type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 Description: Get a list of all the unique consequence terms of the alleles of this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321 BaseVariationFeatureOverlap. By default returns Ensembl display terms
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322 (e.g. 'NON_SYNONYMOUS_CODING'). $term_type can also be 'label'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323 (e.g. 'Non-synonymous coding'), 'SO' (Sequence Ontology, e.g.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 'non_synonymous_codon') or 'NCBI' (e.g. 'missense')
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325 Returntype : listref of strings
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 sub consequence_type {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 my $term_type = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335 my $method_name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 # delete cached term
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338 if(defined($term_type)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 delete $self->{_consequence_type};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 $method_name = $term_type.($term_type eq 'label' ? '' : '_term');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 $method_name = 'SO_term' unless defined $self->most_severe_OverlapConsequence && $self->most_severe_OverlapConsequence->can($method_name);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344 $method_name ||= 'SO_term';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 unless ($self->{_consequence_type}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 # use a hash to ensure we don't include redundant terms (because more than one
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349 # allele may have the same consequence SO_term)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 my %cons_types;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353 for my $allele (@{ $self->get_all_alternate_BaseVariationFeatureOverlapAlleles }) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354 for my $cons (@{ $allele->get_all_OverlapConsequences }) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 $cons_types{$cons->$method_name} = $cons->rank;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359 # sort the consequence types by rank such that the more severe terms are earlier in the list
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361 $self->{_consequence_type} = [ sort { $cons_types{$a} <=> $cons_types{$b} } keys %cons_types ];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364 return $self->{_consequence_type};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367 =head2 most_severe_OverlapConsequence
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369 Description: Get the OverlapConsequence considered (by Ensembl) to be the most severe
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370 consequence of all the alleles of this VariationFeatureOverlap
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371 Returntype : Bio::EnsEMBL::Variation::OverlapConsequence
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377 sub most_severe_OverlapConsequence {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380 unless ($self->{_most_severe_consequence}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382 my $highest;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
383
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384 for my $allele (@{ $self->get_all_alternate_BaseVariationFeatureOverlapAlleles }) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
385 for my $cons (@{ $allele->get_all_OverlapConsequences }) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
386 $highest ||= $cons;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
387 if ($cons->rank < $highest->rank) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
388 $highest = $cons;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
389 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
390 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
391 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
392
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
393 $self->{_most_severe_consequence} = $highest;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
394 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
395
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
396 return $self->{_most_severe_consequence};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
397 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
398
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
399 =head2 display_consequence
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
400
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
401 Arg [1] : (optional) String $term_type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
402 Description: Get the term for the most severe OverlapConsequence of this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
403 VariationFeatureOverlap. By default returns Ensembl display terms
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
404 (e.g. 'NON_SYNONYMOUS_CODING'). $term_type can also be 'label'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
405 (e.g. 'Non-synonymous coding'), 'SO' (Sequence Ontology, e.g.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
406 'non_synonymous_codon') or 'NCBI' (e.g. 'missense')
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
407 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
408 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
409 Status : At Risk
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 display_consequence {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
414 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
415 my $term_type = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
416
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
417 my $method_name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
418
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
419 # delete cached term
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
420 if(defined($term_type)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
421 $method_name = $term_type.($term_type eq 'label' ? '' : '_term');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
422 $method_name = 'SO_term' unless @{$self->get_all_OverlapConsequences} && $self->get_all_OverlapConsequences->[0]->can($method_name);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
423 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
424
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
425 $method_name ||= 'SO_term';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
426
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
427 my $worst_conseq = $self->most_severe_OverlapConsequence;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
428
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
429 return $worst_conseq ? $worst_conseq->$method_name : '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
430 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
431
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
432 sub adaptor {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
433 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
434 $self->{adaptor} = shift if @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
435
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
436 # make adaptor an anonymous hash in its absence
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
437 # this allows the VEP to cache OverlapConsequences in offline mode
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
438 $self->{adaptor} ||= {};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
439
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
440 return $self->{adaptor};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
441 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
442
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
443 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
444