Mercurial > repos > mahtabm > ensembl
comparison variant_effect_predictor/Bio/EnsEMBL/RepeatFeature.pm @ 0:1f6dce3d34e0
Uploaded
author | mahtabm |
---|---|
date | Thu, 11 Apr 2013 02:01:53 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:1f6dce3d34e0 |
---|---|
1 =head1 LICENSE | |
2 | |
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and | |
4 Genome Research Limited. All rights reserved. | |
5 | |
6 This software is distributed under a modified Apache license. | |
7 For license details, please see | |
8 | |
9 http://www.ensembl.org/info/about/code_licence.html | |
10 | |
11 =head1 CONTACT | |
12 | |
13 Please email comments or questions to the public Ensembl | |
14 developers list at <dev@ensembl.org>. | |
15 | |
16 Questions may also be sent to the Ensembl help desk at | |
17 <helpdesk@ensembl.org>. | |
18 | |
19 =cut | |
20 | |
21 =head1 NAME | |
22 | |
23 Bio::EnsEMBL::RepeatFeature - A feature representing a repeat on a piece of | |
24 sequence. | |
25 | |
26 =head1 SYNOPSIS | |
27 | |
28 my $rf = new Bio::EnsEMBL::Feature( | |
29 -start => 100, | |
30 -end => 220, | |
31 -strand => -1, | |
32 -slice => $slice, | |
33 -analysis => $analysis, | |
34 -repeat_consensus => $rc, | |
35 -hstart => 10, | |
36 -hend => 100, | |
37 -hstrand => 1, | |
38 -score => 83.2 | |
39 ); | |
40 | |
41 my $hstart = $feat->hstart; | |
42 my $hend = $feat->hend; | |
43 | |
44 # move the feature to the chromosomal coordinate system | |
45 $feature = $feature->transform('chromosome'); | |
46 | |
47 # move the feature to a different slice | |
48 # (possibly on another coord system) | |
49 $feature = $feature->transfer($new_slice); | |
50 | |
51 # project the feature onto another coordinate system possibly across | |
52 # boundaries: | |
53 @projection = @{ $feature->project('contig') }; | |
54 | |
55 # change the start, end, and strand of the feature in place | |
56 $feature->move( $new_start, $new_end, $new_strand ); | |
57 | |
58 =head1 DESCRIPTION | |
59 | |
60 This a feature representing a repeat region on a sequence | |
61 | |
62 =head1 METHODS | |
63 | |
64 =cut | |
65 | |
66 package Bio::EnsEMBL::RepeatFeature; | |
67 | |
68 use strict; | |
69 | |
70 use Bio::EnsEMBL::Utils::Exception qw(throw); | |
71 use Bio::EnsEMBL::Utils::Argument qw(rearrange); | |
72 | |
73 use base qw/Bio::EnsEMBL::Feature/; | |
74 | |
75 =head2 new | |
76 | |
77 Arg [REPEAT_CONSENSUS] : Bio::EnsEMBL::RepeatConsensus (optional) | |
78 The repeat consensus for this repeat feature | |
79 Arg [HSTART] : int (optional) | |
80 The hit start on the consensus sequence | |
81 Arg [HEND] : int (optional) | |
82 The hit end on the consensus sequence | |
83 Arg [SCORE] : float (optional) | |
84 The score | |
85 Arg [...] : Named arguments to superclass constructor | |
86 (see Bio::EnsEMBL::Feaure) | |
87 Example : $rf = Bio::EnsEMBL::RepeatFeature->new(-REPEAT_CONSENSUS => $rc, | |
88 -HSTART => 10, | |
89 -HEND => 100, | |
90 -SCORE => 58.0, | |
91 -START => 1_000_100, | |
92 -END => 1_000_190, | |
93 -STRAND => 1, | |
94 -ANALYSIS => $an, | |
95 -SLICE => $chr_slice); | |
96 Description: Creates a new Bio::EnsEMBL::RepeatFeature object | |
97 Returntype : Bio::EnsEMBL::RepeatFeature | |
98 Exceptions : none | |
99 Caller : RepeatFeatureAdaptors | |
100 Status : Stable | |
101 | |
102 =cut | |
103 | |
104 sub new { | |
105 my $caller = shift; | |
106 | |
107 my $class = ref($caller) || $caller; | |
108 | |
109 my $self = $class->SUPER::new(@_); | |
110 | |
111 my ($repeat_consensus, $hstart, $hend, $score) = | |
112 rearrange(['REPEAT_CONSENSUS','HSTART','HEND','SCORE'], @_); | |
113 | |
114 $self->repeat_consensus($repeat_consensus); | |
115 $self->{'hstart'} = $hstart; | |
116 $self->{'hend'} = $hend; | |
117 $self->{'score'} = $score; | |
118 | |
119 return $self; | |
120 } | |
121 | |
122 | |
123 =head2 repeat_consensus | |
124 | |
125 Arg [1] : (optional) Bio::EnsEMBL::RepeatConsensus | |
126 Example : $repeat_consensus = $repeat->repeat_consensus; | |
127 Description: Getter/Setter for the repeat consensus of this repeat | |
128 Returntype : Bio::EnsEMBL::RepeatConsensus | |
129 Exceptions : none | |
130 Caller : general | |
131 Status : Stable | |
132 | |
133 =cut | |
134 | |
135 sub repeat_consensus { | |
136 my $self = shift; | |
137 | |
138 if(@_) { | |
139 my $rc = shift; | |
140 if(defined($rc)) { | |
141 if(!ref($rc) || !$rc->isa('Bio::EnsEMBL::RepeatConsensus')) { | |
142 throw('RepeatConsensus arg must be a Bio::EnsEMBL::RepeatConsensus'); | |
143 } | |
144 } | |
145 $self->{'repeat_consensus'} = $rc; | |
146 } | |
147 | |
148 return $self->{'repeat_consensus'}; | |
149 } | |
150 | |
151 | |
152 | |
153 =head2 hstart | |
154 | |
155 Arg [1] : (optional) int $hstart | |
156 Example : $hit_start = $repeat->hstart; | |
157 Description: Getter/Setter for the start bp of this repeat match on the | |
158 consensus sequence. | |
159 Returntype : int | |
160 Exceptions : none | |
161 Caller : general | |
162 Status : Stable | |
163 | |
164 =cut | |
165 | |
166 sub hstart { | |
167 my $self = shift; | |
168 $self->{'hstart'} = shift if(@_); | |
169 return $self->{'hstart'}; | |
170 } | |
171 | |
172 | |
173 =head2 score | |
174 | |
175 Arg [1] : (optional) float $score | |
176 Example : $score = $repeat->score(); | |
177 Description: Getter/Setter for the score of this repeat feature | |
178 Returntype : int | |
179 Exceptions : none | |
180 Caller : general | |
181 Status : Stable | |
182 | |
183 =cut | |
184 | |
185 sub score { | |
186 my $self = shift; | |
187 $self->{'score'} = shift if(@_); | |
188 return $self->{'score'}; | |
189 } | |
190 | |
191 | |
192 | |
193 =head2 hend | |
194 | |
195 Arg [1] : (optional) int $hend | |
196 Example : $hit_end = $repeat->hend; | |
197 Description: Getter/Setter for the end bp of this repeat match on the | |
198 consensus sequence. | |
199 Returntype : int | |
200 Exceptions : none | |
201 Caller : general | |
202 Status : Stable | |
203 | |
204 =cut | |
205 | |
206 sub hend { | |
207 my $self = shift; | |
208 $self->{'hend'} = shift if(@_); | |
209 return $self->{'hend'}; | |
210 } | |
211 | |
212 | |
213 | |
214 =head2 hstrand | |
215 | |
216 Arg [1] : none | |
217 Example : none | |
218 Description: always returns 1. method exists for consistancy with other | |
219 features. | |
220 Returntype : int | |
221 Exceptions : none | |
222 Caller : general | |
223 Status : Stable | |
224 | |
225 =cut | |
226 | |
227 sub hstrand { | |
228 return 1; | |
229 } | |
230 | |
231 | |
232 =head2 display_id | |
233 | |
234 Arg [1] : none | |
235 Example : print $rf->display_id(); | |
236 Description: This method returns a string that is considered to be | |
237 the 'display' identifier. For repeat_features this is the | |
238 name of the repeat consensus if it is available otherwise it is | |
239 an empty string. | |
240 Returntype : string | |
241 Exceptions : none | |
242 Caller : web drawing code | |
243 Status : Stable | |
244 | |
245 =cut | |
246 | |
247 sub display_id { | |
248 my $self = shift; | |
249 | |
250 my $id = ''; | |
251 | |
252 my $rc = $self->{'repeat_consensus'}; | |
253 if($rc) { | |
254 $id = $rc->name(); | |
255 } | |
256 | |
257 return $id; | |
258 } | |
259 | |
260 | |
261 1; | |
262 | |
263 __END__ | |
264 | |
265 =head1 NAME - Bio::EnsEMBL::RepeatFeature | |
266 | |
267 =head1 AUTHOR | |
268 | |
269 James Gilbert B<email> jgrg@sanger.ac.uk | |
270 |