annotate variant_effect_predictor/Bio/EnsEMBL/Variation/BaseVariationFeatureOverlapAllele.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::BaseVariationFeatureOverlapAllele
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::BaseVariationFeatureOverlapAllele;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 my $bvfoa = Bio::EnsEMBL::Variation::BaseVariationFeatureOverlapAllele->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 -base_variation_feature_overlap => $bvfo,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 -is_reference => 0,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 print "consequence SO terms: ", (join ",", map { $_->SO_term } @{ $bvfoa->get_all_OverlapConsequences }), "\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 A BaseVariationFeatureOverlapAllele object represents a single allele of a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 BaseVariationFeatureOverlap. It is the super-class of variation feature specific
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 classes such as VariationFeatureOverlapAllele and StructuralVariationOverlapAllele
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 and contains methods not specific to any particular variation feature type.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 Ordinarily you will not create these objects yourself, but instead you would
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 create 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::BaseVariationFeatureOverlapAllele;
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);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 use Bio::EnsEMBL::Variation::Utils::Constants qw(%OVERLAP_CONSEQUENCES);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 use Scalar::Util qw(weaken);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 Arg [-BASE_VARIATION_FEATURE_OVERLAP] :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 The Bio::EnsEMBL::BaseVariationFeatureOverlap with which this allele is
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 associated
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 Arg [-IS_REFERENCE] :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 A flag indicating if this allele is the reference allele or not
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 my $bvfoa = Bio::EnsEMBL::Variation::BaseVariationFeatureOverlapAllele->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 -base_variation_feature_overlap => $bvfo,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 -is_reference => 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 Description: Constructs a new BaseVariationFeatureOverlapAllele instance given a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 BaseVariationFeatureOverlap and a flag indicating if this is the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 reference allele
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 Returntype : A new Bio::EnsEMBL::Variation::BaseVariationFeatureOverlapAllele instance
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 Exceptions : throws unlessBASE_VARIATION_FEATURE_OVERLAP is supplied
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 my $class = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 my (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 $base_variation_feature_overlap,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 $is_reference
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 ) = rearrange([qw(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 BASE_VARIATION_FEATURE_OVERLAP
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 IS_REFERENCE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 )], @_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 assert_ref($base_variation_feature_overlap, 'Bio::EnsEMBL::Variation::BaseVariationFeatureOverlap');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 my $self = bless {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 base_variation_feature_overlap => $base_variation_feature_overlap,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 is_reference => $is_reference,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 }, $class;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 # avoid a memory leak, because the bvfo also has a reference to us
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 weaken $self->{base_variation_feature_overlap};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 sub new_fast {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 my ($class, $hashref) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 my $self = bless $hashref, $class;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 # avoid a memory leak, because the bvfo also has a reference to us
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 weaken $self->{base_variation_feature_overlap} if $self->{base_variation_feature_overlap};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 =head2 base_variation_feature_overlap
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 Description: Get/set the associated BaseVariationFeatureOverlap
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 Returntype : Bio::EnsEMBL::Variation::BaseVariationFeatureOverlap
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 Exceptions : throws if the argument is the wrong type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 sub base_variation_feature_overlap {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 my ($self, $bvfo) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 if ($bvfo) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 assert_ref($bvfo, 'Bio::EnsEMBL::Variation::BaseVariationFeatureOverlap');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 $self->{base_variation_feature_overlap} = $bvfo;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 # avoid a memory leak, because the bvfo also has a reference to us
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 weaken $self->{base_variation_feature_overlap};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 return $self->{base_variation_feature_overlap};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 =head2 base_variation_feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 Description: Get the associated BaseVariationFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 Returntype : Bio::EnsEMBL::Variation::BaseVariationFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 sub base_variation_feature {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 return $self->base_variation_feature_overlap->base_variation_feature(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 =head2 feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 Description: Get the associated Feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 Returntype : Bio::EnsEMBL::Feature (or relevant subclass)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 sub feature {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 return $self->base_variation_feature_overlap->feature(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 =head2 is_reference
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 Args [1] : A boolean value
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 Description: Get/set a flag indicating if this allele is the reference allele
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 Returntype : bool
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 sub is_reference {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 my ($self, $is_reference) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 $self->{is_reference} = $is_reference if defined $is_reference;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 return $self->{is_reference};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 =head2 get_all_OverlapConsequences
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 Description: Get a list of all the OverlapConsequences of this allele, calculating them
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 on the fly if necessary
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 Returntype : listref of Bio::EnsEMBL::Variation::OverlapConsequence objects
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 sub get_all_OverlapConsequences {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 unless ($self->{overlap_consequences}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 # calculate consequences on the fly
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 my $cons = [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 my $assigned_tier;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 # loop over all the possible consequences
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 for my $oc (@{$self->get_sorted_OverlapConsequences}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 last if defined($assigned_tier) and $oc->tier > $assigned_tier;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 # check that this consequence applies to this type of variation feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 if ($oc->variant_feature_class && $self->base_variation_feature->isa($oc->variant_feature_class)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 # check that this consequence applies to this type of feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 if ($self->feature->isa($oc->feature_class)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 # if so, check if the predicate of this consequence holds for this bvfoa
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 my $check = $oc->predicate->($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 #print STDERR $self->base_variation_feature->variation_name." ".$oc->{SO_term}." ".$self->feature->stable_id. " $check\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 if ($check) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 push @$cons, $oc;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 $assigned_tier = $oc->tier;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 $self->{overlap_consequences} = $cons;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 return $self->{overlap_consequences};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 =head2 add_OverlapConsequence
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 Arg [1] : Bio::EnsEMBL::Variation::OverlapConsequence instance
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 Description: Add an OverlapConsequence to this allele's list
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 Exceptions : throws if the argument is the wrong type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 sub add_OverlapConsequence {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 my ($self, $oc) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 assert_ref($oc, 'Bio::EnsEMBL::Variation::OverlapConsequence');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 $self->{overlap_consequences} ||= [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 push @{ $self->{overlap_consequences} }, $oc;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 sub SO_isa {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 my ($self, $query) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 if (my $adap = $self->base_variation_feature_overlap->{adaptor}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 if (my $ota = $adap->db->dnadb->get_OntologyTermAdaptor) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 my $term = $ota->fetch_by_accession();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 my @parents = $ota->fetch_by_child_term($term);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 for my $cons (@{ $self->get_all_OverlapConsequences }) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 if ($cons->SO_term eq $query) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 sub get_sorted_OverlapConsequences {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 if(!defined($self->base_variation_feature_overlap->adaptor->{sorted_cons})) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 my @sorted = sort {$a->tier <=> $b->tier} values %OVERLAP_CONSEQUENCES;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 $self->base_variation_feature_overlap->adaptor->{sorted_cons} = \@sorted;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275 return $self->base_variation_feature_overlap->adaptor->{sorted_cons};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279