annotate variant_effect_predictor/Bio/EnsEMBL/Variation/OverlapConsequence.pm @ 1:d6778b5d8382 draft default tip

Deleted selected files
author willmclaren
date Fri, 03 Aug 2012 10:05:43 -0400
parents 21066c0abaf5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
1 =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::Variation::OverlapConsequence
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 use Bio::EnsEMBL::Variation::OverlapConsequence;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 my $oc = Bio::EnsEMBL::Variation::OverlapConsequence->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 -display_term => 'NON_SYNONYMOUS_CODING',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 -SO_term => 'non_synonymous_codon',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32 -SO_accession => 'SO:0001583',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 -NCBI_term => 'missense',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 -feature_SO_term => 'mRNA',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 -description => 'In coding sequence and results in an amino acid change in the encoded peptide sequence',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 -predicate => 'Bio::EnsEMBL::Variation::Utils::VariationEffect::non_synonymous_codon',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 -label => 'Non-synonymous coding',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 -rank => 7,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 -feature_class => 'Bio::EnsEMBL::Transcript',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 if ($oc->predicate($transcript_variation_allele)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43 print "This allele is: ", $oc->display_term, "\n";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 An OverlapConsequence represents the consequence of an allele of a VariationFeature overlapping
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49 some other Ensembl Feature (and therefore applies to VariationFeatureOverlapAllele objects as these
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 represent just such an event). It contains various values that represent the consequence type, such
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 as the Sequence Ontology (SO) term and accession (which should always be unique), the Ensembl
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52 display_term (which will not always be unique), the relative rank of this consequence when compared
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53 to other consequences etc. It also contains a reference to a subroutine, referred to as the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 'predicate', which if a called with a VariationFeatureOverlapAllele (or a subclass) as the first and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55 only argument, will return a true or false value if this consequence type applies to this allele.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57 The list of OverlapConsequences used by Ensembl is defined in the Bio::EnsEMBL::Variation::Utils::Constants
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58 module, and can be imported from there.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 package Bio::EnsEMBL::Variation::OverlapConsequence;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 use warnings;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 use Bio::EnsEMBL::Utils::Exception qw(throw);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 use Bio::EnsEMBL::Variation::Utils::VariationEffect;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71 =head2 new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 Arg [-SO_ACCESSION] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74 The Sequence Ontology accession for this consequence type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 Arg [-SO_TERM] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 The Sequence Ontology term for this consequence type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 Arg [-FEATURE_SO_TERM] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 The Sequence Ontology term for the feature affected by this consequence type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82 Arg [-FEATURE_CLASS] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 The Ensembl class that represents the feature affected by this consequence type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 Arg [-VARIANT_FEATURE_CLASS] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 The Ensembl class that represents the variation feature this consequence applies to
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 Arg [-PREDICATE] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 A reference to a subroutine that checks if this consequence type holds for
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 a given VariationFeatureOverlapAllele (or the name of such a subroutine)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 Arg [-RANK] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 The relative rank of this consequence type when compred to other OverlapConsequence
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 Arg [-DISPLAY_TERM] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97 The Ensembl display term for this consequence type (used by default on the website)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99 Arg [-NCBI_TERM] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 The NCBI term for this consequence type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 Arg [-DESCRIPTION] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 A freetext description of this consequence type (used on the website)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 Arg [-LABEL] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 A freetext label briefly describing this consequence type (used on the website)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 Arg [-IS_DEFAULT] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 A flag indicating if this is the default consequence type used when none other applies
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110 (in Ensembl this currently set on the intergenic OverlapConsequence)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 my $oc = Bio::EnsEMBL::Variation::OverlapConsequence->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 -display_term => 'NON_SYNONYMOUS_CODING',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 -SO_term => 'non_synonymous_codon',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 -SO_accession => 'SO:0001583',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 -NCBI_term => 'missense',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 -feature_SO_term => 'mRNA',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 -description => 'In coding sequence and results in an amino acid change in the encoded peptide sequence',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 -predicate => 'Bio::EnsEMBL::Variation::Utils::VariationEffect::non_synonymous_codon',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 -label => 'Non-synonymous coding',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 -rank => 7,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 -tier => 1,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 -feature_class => 'Bio::EnsEMBL::Transcript',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 Description: Constructs a new OverlapConsequence instance
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 Returntype : A new Bio::EnsEMBL::Variation::OverlapConsequence instance
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 my $class = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 my (
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 $SO_accession,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139 $SO_term,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 $feature_SO_term,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 $feature_class,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 $variant_feature_class,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143 $predicate,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 $rank,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145 $tier,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 $display_term,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 $NCBI_term,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 $description,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 $label,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 $is_default,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151 ) = rearrange([qw(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 SO_ACCESSION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 SO_TERM
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154 FEATURE_SO_TERM
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 FEATURE_CLASS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156 VARIANT_FEATURE_CLASS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157 PREDICATE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 RANK
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 TIER
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 DISPLAY_TERM
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 NCBI_TERM
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 LABEL
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164 IS_DEFAULT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 )], @_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 my $self = bless {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 SO_accession => $SO_accession,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 SO_term => $SO_term,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 feature_SO_term => $feature_SO_term,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171 feature_class => $feature_class,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 variant_feature_class => $variant_feature_class,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173 predicate => $predicate,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 rank => $rank,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 tier => $tier,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 display_term => $display_term,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 NCBI_term => $NCBI_term,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 description => $description,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179 label => $label,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 is_default => $is_default,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181 }, $class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 sub new_fast {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 my ($class, $hashref) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188 return bless $hashref, $class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191 =head2 SO_accession
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 Arg [1] : (optional) accession to set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 Description: Get/set the Sequence Ontology accession for this consequence type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 sub SO_accession {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202 my ($self, $SO_accession) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203 $self->{SO_accession} = $SO_accession if $SO_accession;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 return $self->{SO_accession};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207 =head2 SO_term
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 Arg [1] : (optional) term to set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 Description: Get/set the Sequence Ontology term for this consequence type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217 sub SO_term {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218 my ($self, $SO_term) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219 $self->{SO_term} = $SO_term if $SO_term;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220 return $self->{SO_term};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223 =head2 feature_SO_term
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225 Arg [1] : (optional) term to set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226 Description: Get/set the Sequence Ontology term for the feature affected by this consequence type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233 sub feature_SO_term {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234 my ($self, $feature_SO_term) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235 $self->{feature_SO_term} = $feature_SO_term if $feature_SO_term;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236 return $self->{feature_SO_term};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239 =head2 feature_class
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241 Arg [1] : (optional) class to set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242 Description: Get/set the Ensembl class representing the feature affected by this consequence type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249 sub feature_class {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 my ($self, $feature_class) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251 $self->{feature_class} = $feature_class if $feature_class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252 return $self->{feature_class} || '';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255 =head2 predicate
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257 Arg [1] : (optional) reference to subroutine (or the name of a subroutine)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258 Description: Get/set the predicate used to check if this consequence type applies
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259 to a given VariationFeatureOverlapAllele. Currently, if you supply
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260 a name (rather than a coderef), this subroutine must be found in the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261 Bio::EnsEMBL::Variation::Utils::VariationEffect module.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262 Returntype : coderef
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 Exceptions : throws if a name is supplied and the subroutine cannot be found in
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264 the expected module
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269 sub predicate {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270 my ($self, $predicate) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272 $self->{predicate} = $predicate if $predicate;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274 if ($self->{predicate} && ref $self->{predicate} ne 'CODE') {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275 my $name = $self->{predicate};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277 if (defined &$name && $name =~ /^Bio::EnsEMBL::Variation::Utils::VariationEffect/) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
278 $self->{predicate} = \&$name;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
279 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
280 else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
281 throw("Can't find a subroutine called $name in the VariationEffect module?");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
282 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
283 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
284
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
285 return $self->{predicate};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
286 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
287
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
288 =head2 rank
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
289
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
290 Arg [1] : (optional) rank to set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
291 Description: Get/set the relative rank of this OverlapConsequence when compared to other
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
292 OverlapConsequence objects. This is used, for example, to determine the most
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
293 severe consequence of a VariationFeature.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
294 Returntype : integer
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
295 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
296 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
297
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
298 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
299
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
300 sub rank {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
301 my ($self, $rank) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
302 $self->{rank} = $rank if $rank;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
303 return $self->{rank};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
304 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
305
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
306 =head2 tier
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
307
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
308 Arg [1] : (optional) tier to set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
309 Description: Get/set the tier this OverlapConsequence belongs to. Variations will be
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
310 assigned consequences in tier order; if a tier 1 consequence is assigned,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
311 no tier 2 consequences will be checked/assigned.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
312 Returntype : integer
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
313 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
314 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
315
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
316 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
317
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
318 sub tier {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
319 my ($self, $tier) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
320 $self->{tier} = $tier if $tier;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
321 return $self->{tier};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
322 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
323
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
324
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
325 =head2 display_term
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
326
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
327 Arg [1] : (optional) term to set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
328 Description: Get/set the Ensembl display term for this consequence type. This is
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
329 used by default on the website.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
330 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
331 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
332 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
333
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
334 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
335
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
336 sub display_term {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
337 my ($self, $display_term) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
338 $self->{display_term} = $display_term if $display_term;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
339 return $self->{display_term} || $self->SO_term;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
340 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
341
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
342 =head2 NCBI_term
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
343
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
344 Arg [1] : (optional) term to set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
345 Description: Get/set the NCBI term for this consequence type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
346 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
347 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
348 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
349
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
350 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
351
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
352 sub NCBI_term {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
353 my ($self, $NCBI_term) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
354 $self->{NCBI_term} = $NCBI_term if $NCBI_term;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
355 return $self->{NCBI_term} || $self->SO_term;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
356 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
357
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
358 =head2 description
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
359
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
360 Arg [1] : (optional) description to set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
361 Description: Get/set the description for this consequence type. This is used on the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
362 website and is intended to be a freetext description of this consequence.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
363 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
364 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
365 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
366
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
367 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
368
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
369 sub description {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
370 my ($self, $description) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
371 $self->{description} = $description if $description;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
372 return $self->{description};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
373 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
374
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
375 =head2 label
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
376
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
377 Arg [1] : (optional) label to set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
378 Description: Get/set the label for this consequence type. This is used on the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
379 website and is intended to be a short description of this consequence.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
380 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
381 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
382 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
383
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
384 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
385
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
386 sub label {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
387 my ($self, $label) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
388 $self->{label} = $label if $label;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
389 return $self->{label};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
390 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
391
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
392 =head2 variant_feature_class
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
393
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
394 Arg [1] : (optional) class as a atring
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
395 Description: Get/set the class of variant features that this consequence can apply to
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
396 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
397 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
398 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
399
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
400 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
401
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
402 sub variant_feature_class {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
403 my ($self, $class) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
404 $self->{variant_feature_class} = $class if $class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
405 return $self->{variant_feature_class};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
406 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
407
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
408 =head2 is_default
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
409
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
410 Arg [1] : (optional) flag
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
411 Description: Get/set a flag indicating if this is the default consequence type.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
412 There should only be one default OverlapConsequence, in Ensembl this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
413 flag is only set on the INTERGENIC OverlapConsequence object.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
414 Returntype : bool
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
415 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
416 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
417
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
418 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
419
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
420 sub is_default {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
421 my ($self, $is_default) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
422 $self->{is_default} = $is_default if defined $is_default;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
423 return $self->{is_default};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
424 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
425
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
426 sub get_all_parent_SO_terms {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
427 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
428
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
429 if (my $adap = $self->{adaptor}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
430 if (my $goa = $adap->db->get_SOTermAdaptor) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
431
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
432 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
433 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
434 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
435
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
436 1;