annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/AnnotatedFeature.pm @ 0:1f6dce3d34e0

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