annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/AnnotatedFeature.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 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2 # Ensembl module for Bio::EnsEMBL::Funcgen::AnnotatedFeature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 # You may distribute this module under the same terms as Perl itself
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6 =head1 LICENSE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8 Copyright (c) 1999-2011 The European Bioinformatics Institute and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9 Genome Research Limited. All rights reserved.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11 This software is distributed under a modified Apache license.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12 For license details, please see
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14 http://www.ensembl.org/info/about/code_licence.html
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16 =head1 CONTACT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18 Please email comments or questions to the public Ensembl
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19 developers list at <ensembl-dev@ebi.ac.uk>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 Questions may also be sent to the Ensembl help desk at
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22 <helpdesk@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 =head1 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 Bio::EnsEMBL::AnnotatedFeature - A module to represent a feature mapping as
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 predicted by the eFG pipeline.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32 use Bio::EnsEMBL::Funcgen::AnnotatedFeature;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 my $feature = Bio::EnsEMBL::Funcgen::AnnotatedFeature->new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 (
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 -SLICE => $chr_1_slice,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 -START => 1_000_000,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 -SUMMIT => 1_000_019,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 -END => 1_000_024,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 -STRAND => -1,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 -DISPLAY_LABEL => $text,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 -SCORE => $score,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43 -FEATURE_SET => $fset,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 An AnnotatedFeature object represents the genomic placement of a prediction
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 generated by the eFG analysis pipeline. This normally represents the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52 output of a peak calling analysis. It can have a score and/or a summit, the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53 meaning of which depend on the specific Analysis used to infer the feature.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 For example, in the case of a feature derived from a peak call over a ChIP-seq
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55 experiment, the score is the peak caller score, and summit is the point in the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56 feature where more reads align with the genome.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58 =head1 SEE ALSO
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60 Bio::EnsEMBL::Funcgen::DBSQL::AnnotatedFeatureAdaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 =cut
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 package Bio::EnsEMBL::Funcgen::AnnotatedFeature;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 use Bio::EnsEMBL::Utils::Argument qw( rearrange );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70 use Bio::EnsEMBL::Utils::Exception qw( throw );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71 use Bio::EnsEMBL::Funcgen::SetFeature;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 use vars qw(@ISA);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74 @ISA = qw(Bio::EnsEMBL::Funcgen::SetFeature);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 =head2 new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 Arg [-SLICE] : Bio::EnsEMBL::Slice - The slice on which this feature is.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 Arg [-START] : int - The start coordinate of this feature relative to the start of the slice
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 it is sitting on. Coordinates start at 1 and are inclusive.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82 Arg [-END] : int -The end coordinate of this feature relative to the start of the slice
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 Arg [-STRAND] : int - The orientation of this feature. Valid values are 1, -1 and 0.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 it is sitting on. Coordinates start at 1 and are inclusive.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 Arg [-DISPLAY_LABEL]: string - Display label for this feature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 Arg [-SUMMIT] : optional int - seq_region peak summit position
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 Arg [-SCORE] : optional int - Score assigned by analysis pipeline
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 Arg [-dbID] : optional int - Internal database ID.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 Arg [-ADAPTOR] : optional Bio::EnsEMBL::DBSQL::BaseAdaptor - Database adaptor.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 Example : my $feature = Bio::EnsEMBL::Funcgen::AnnotatedFeature->new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 (
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 -SLICE => $chr_1_slice,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 -START => 1_000_000,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 -END => 1_000_024,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 -STRAND => -1,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 -FEATURE_SET => $fset,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97 -DISPLAY_LABEL => $text,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 -SCORE => $score,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99 -SUMMIT => 1_000_019,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 Description: Constructor for AnnotatedFeature objects.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104 Returntype : Bio::EnsEMBL::Funcgen::AnnotatedFeature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107 Status : Medium Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 my $caller = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 my $class = ref($caller) || $caller;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 my $self = $class->SUPER::new(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 #Hard code strand => 0 here? And remove from input params?
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 my ($score, $summit) = rearrange(['SCORE', 'SUMMIT'], @_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 #Direct assingment here removes need for set arg test in method
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 $self->{'score'} = $score if defined $score;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 $self->{'summit'} = $summit if defined $summit;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 =head2 score
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 Arg [1] : (optional) int - score
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131 Example : my $score = $feature->score();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 Description: Getter for the score attribute for this feature.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136 Status : Low Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 sub score {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 return $self->{'score'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145 =head2 summit
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 Arg [1] : (optional) int - summit postition
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 Example : my $peak_summit = $feature->summit;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 Description: Getter for the summit attribute for this feature.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157 sub summit {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 return $self->{'summit'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 =head2 display_label
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 Example : my $label = $feature->display_label();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 Description: Getter for the display label of this feature.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 Returntype : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 Status : Medium Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 sub display_label {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 #auto generate here if not set in table
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 #need to go with one or other, or can we have both, split into diplay_name and display_label?
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 if(! $self->{'display_label'} && $self->adaptor){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181 $self->{'display_label'} = $self->feature_type->name()." -";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 $self->{'display_label'} .= " ".$self->cell_type->name();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183 $self->{'display_label'} .= " Enriched Site";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 return $self->{'display_label'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 =head2 is_focus_feature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192 Args : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 Example : if($feat->is_focus_feature){ ... }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 Description: Returns true if AnnotatedFeature is part of a focus
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 set used in the RegulatoryBuild
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 Returntype : Boolean
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203 sub is_focus_feature{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206 #Do we need to test for FeatureSet here?
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 return $self->feature_set->is_focus_set;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 =head2 get_underlying_structure
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214 Example : my @loci = @{ $af->get_underlying_structure() };
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215 Description: Returns and array of loci consisting of:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216 (start, (motif_feature_start, motif_feature_end)*, end)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217 Returntype : ARRAYREF
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220 Status : At Risk - This is TFBS specific and could move to TranscriptionFactorFeature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224 #This should really be precomputed and stored in the DB to avoid the MF attr fetch
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225 #Need to be aware of projecting here, as these will expire if we project after this method is called
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227 sub get_underlying_structure{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230 if(! defined $self->{underlying_structure}){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 my @loci = ($self->start);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233 foreach my $mf(@{$self->get_associated_MotifFeatures}){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234 push @loci, ($mf->start, $mf->end);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237 push @loci, $self->end;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239 $self->{underlying_structure} = \@loci;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242 return $self->{underlying_structure};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245 =head2 get_associated_MotifFeatures
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247 Example : my @assoc_mfs = @{ $af->get_associated_MotifFeatures };
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248 Description: Returns and array associated MotifFeature i.e. MotifFeatures
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249 representing a relevanting PWM/BindingMatrix
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 Returntype : ARRAYREF
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 Status : At Risk - This is TFBS specific and could move to TranscriptionFactorFeature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257 sub get_associated_MotifFeatures{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260 if(! defined $self->{'assoc_motif_features'}){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261 my $mf_adaptor = $self->adaptor->db->get_MotifFeatureAdaptor;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 #These need reslicing!
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265 $self->{'assoc_motif_features'} = $mf_adaptor->fetch_all_by_AnnotatedFeature($self, $self->slice);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268 return $self->{'assoc_motif_features'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273