0
|
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 # Ensembl module for Bio::EnsEMBL::Variation::StructuralVariationAnnotation
|
|
22 #
|
|
23 # Copyright (c) 2011 Ensembl
|
|
24 #
|
|
25
|
|
26
|
|
27 =head1 NAME
|
|
28
|
|
29 Bio::EnsEMBL::Variation::StructuralVariationAnnotation - Annotations for a structural variant (sample and phenotype annotations).
|
|
30
|
|
31 =head1 SYNOPSIS
|
|
32
|
|
33 $study = $study_adaptor->fetch_by_name('nstd37');
|
|
34
|
|
35 $sva = Bio::EnsEMBL::Variation::StructuralVariationAnnotation->new
|
|
36 (-sample_name => 'ISCA_ID_5554',
|
|
37 -clinical_significance => 'Not tested',
|
|
38 -study => $study);
|
|
39 ...
|
|
40
|
|
41 $sva->structural_variation->variation_name(),":", $sva->sample_name();
|
|
42
|
|
43 =head1 DESCRIPTION
|
|
44
|
|
45 This is a class representing the annotation of a structural variant
|
|
46 from the ensembl-variation database. The actual structural variant information is
|
|
47 represented by an associated Bio::EnsEMBL::Variation::StructuralVariation object.
|
|
48
|
|
49 =head1 METHODS
|
|
50
|
|
51 =cut
|
|
52
|
|
53 use strict;
|
|
54 use warnings;
|
|
55
|
|
56 package Bio::EnsEMBL::Variation::StructuralVariationAnnotation;
|
|
57
|
|
58 use Bio::EnsEMBL::Utils::Exception qw(throw warning);
|
|
59 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
|
|
60 use Bio::EnsEMBL::Variation::BaseStructuralVariation;
|
|
61 use Bio::EnsEMBL::Storable;
|
|
62 use Bio::EnsEMBL::Utils::Exception qw(deprecate);
|
|
63
|
|
64 use vars qw(@ISA);
|
|
65
|
|
66 @ISA = qw(Bio::EnsEMBL::Storable);
|
|
67
|
|
68 =head2 new
|
|
69
|
|
70 Arg [-dbID] :
|
|
71 int - unique internal identifier for variation_annotation
|
|
72
|
|
73 Arg [-ADAPTOR] :
|
|
74 Bio::EnsEMBL::Variation::DBSQL::StructuralVariationAnnotationAdaptor
|
|
75 Adaptor which provides database connectivity for this StructuralVariationAnnotation object
|
|
76
|
|
77 Arg [-_PHENOTYPE_ID] :
|
|
78 int _ the internal id of the phenotype
|
|
79
|
|
80 Arg [-PHENOTYPE_DESCRIPTION] :
|
|
81 string - description of the phenotype
|
|
82
|
|
83 Arg [-SAMPLE_NAME] :
|
|
84 string - name of the associated sample
|
|
85
|
|
86 Arg [-STRAIN_NAME] :
|
|
87 string - name of the associated strain
|
|
88
|
|
89 Arg [-CLINICAL_SIGNIFICANCE] :
|
|
90 string - clinical annotation for this structural variant.
|
|
91
|
|
92 Arg [-STUDY] :
|
|
93 object ref - the study object describing where the annotated variation comes from.
|
|
94
|
|
95 Arg [_STRUCTURAL_VARIATION_ID] :
|
|
96 int _ the internal id of the structural variant object associated with this
|
|
97 identifier. TUsing this identifier the structural variant may be lazy-loaded from
|
|
98 the database on demand.
|
|
99
|
|
100 Example :
|
|
101 $study = $study_adaptor->fetch_by_name('nstd37');
|
|
102
|
|
103 $sva = Bio::EnsEMBL::Variation::StructuralVariationAnnotation->new
|
|
104 (-sample_name => 'ISCA_ID_5554',
|
|
105 -strain_name => 'ISCA',
|
|
106 -clinical_significance => 'Not tested',
|
|
107 -study => $study);
|
|
108
|
|
109 Description: Constructor. Instantiates a new StructuralVariationAnnotation object.
|
|
110 Returntype : Bio::EnsEMBL::Variation::StructuralVariationAnnotation
|
|
111 Exceptions : none
|
|
112 Caller : general
|
|
113 Status : At Risk
|
|
114
|
|
115 =cut
|
|
116
|
|
117 sub new {
|
|
118 my $caller = shift;
|
|
119 my $class = ref($caller) || $caller;
|
|
120 my $self = $class->SUPER::new(@_);
|
|
121
|
|
122 my ($dbID,$adaptor,$phenotype_id,$phenotype_description,$structural_variation_id,$sample_name,
|
|
123 $strain_name,$clinical_significance,$study) =
|
|
124 rearrange([qw(dbID ADAPTOR _PHENOTYPE_ID PHENOTYPE_DESCRIPTION _STRUCTURAL_VARIATION_ID
|
|
125 SAMPLE_NAME STRAIN_NAME CLINICAL_SIGNIFICANCE STUDY)],@_);
|
|
126
|
|
127 $self->{'dbID'} = $dbID;
|
|
128 $self->{'adaptor'} = $adaptor;
|
|
129 $self->{'_phenotype_id'} = $phenotype_id;
|
|
130 $self->{'phenotype_description'} = $phenotype_description;
|
|
131 $self->{'_structural_variation_id'} = $structural_variation_id;
|
|
132 $self->{'sample_name'} = $sample_name;
|
|
133 $self->{'strain_name'} = $strain_name;
|
|
134 $self->{'clinical_significance'} = $clinical_significance;
|
|
135 $self->{'study'} = $study;
|
|
136 return $self;
|
|
137 }
|
|
138
|
|
139
|
|
140
|
|
141 sub new_fast {
|
|
142 my $class = shift;
|
|
143 my $hashref = shift;
|
|
144 return bless $hashref, $class;
|
|
145 }
|
|
146
|
|
147
|
|
148 =head2 structural_variation
|
|
149
|
|
150 Arg [1] : (optional) Bio::EnsEMBL::Variation::StructuralVariation or
|
|
151 Bio::EnsEMBL::Variation::SupportingStructuralVariation $structural_variation
|
|
152 Example : $sv = $svf->structural_variation();
|
|
153 Description: Getter/Setter for the structural variant associated with this feature.
|
|
154 If not set, and this StructuralVariationFeature has an associated adaptor
|
|
155 an attempt will be made to lazy-load the structural variation from the
|
|
156 database.
|
|
157 Returntype : Bio::EnsEMBL::Variation::StructuralVariation or Bio::EnsEMBL::Variation::SupportingStructuralVariation
|
|
158 Exceptions : throw on incorrect argument
|
|
159 Caller : general
|
|
160 Status : Stable
|
|
161
|
|
162 =cut
|
|
163
|
|
164 sub structural_variation {
|
|
165 my $self = shift;
|
|
166
|
|
167 if(@_) {
|
|
168 if(!ref($_[0]) || (!$_[0]->isa('Bio::EnsEMBL::Variation::StructuralVariation') &&
|
|
169 !$_[0]->isa('Bio::EnsEMBL::Variation::SupportingStructuralVariation')
|
|
170 )) {
|
|
171 throw("Bio::EnsEMBL::Variation::StructuralVariation or Bio::EnsEMBL::Variation::SupportingStructuralVariation argument expected");
|
|
172 }
|
|
173 $self->{'_structural_variation_id'} = shift;
|
|
174 }
|
|
175 elsif(!defined($self->{'structural_variation'}) && $self->{'adaptor'} &&
|
|
176 defined($self->{'_structural_variation_id'})) {
|
|
177 # lazy-load from database on demand
|
|
178 my $sva = $self->{'adaptor'}->db()->get_StructuralVariationAdaptor();
|
|
179 $self->{'structural_variation'} = $sva->fetch_by_dbID($self->{'_structural_variation_id'});
|
|
180 if (!defined($self->{'structural_variation'})) {
|
|
181 $sva = $self->{'adaptor'}->db()->get_SupportingStructuralVariationAdaptor();
|
|
182 $self->{'structural_variation'} = $sva->fetch_by_dbID($self->{'_structural_variation_id'});
|
|
183 }
|
|
184 }
|
|
185
|
|
186 return $self->{'structural_variation'};
|
|
187 }
|
|
188
|
|
189
|
|
190 =head2 study
|
|
191
|
|
192 Arg [1] : Bio::EnsEMBL::Variation::Study (optional)
|
|
193 Example : $study = $sv->study()
|
|
194 Description: Getter/Setter for the study object
|
|
195 Returntype : Bio::EnsEMBL::Variation::Study
|
|
196 Exceptions : none
|
|
197 Caller : general
|
|
198 Status : At Risk
|
|
199
|
|
200 =cut
|
|
201
|
|
202 sub study {
|
|
203 my $self = shift;
|
|
204 return $self->{'study'} = shift if(@_);
|
|
205 return $self->{'study'};
|
|
206 }
|
|
207
|
|
208
|
|
209 =head2 study_type
|
|
210
|
|
211 Arg [1] : string study_type (optional)
|
|
212 The new value to set the study_type attribute to
|
|
213 Example : $study_type = $obj->study_type()
|
|
214 Description: Getter/Setter for the study_type attribute.
|
|
215 Returntype : string
|
|
216 Exceptions : none
|
|
217 Caller : general
|
|
218 Status : At Risk
|
|
219
|
|
220 =cut
|
|
221
|
|
222 sub study_type{
|
|
223 my $self = shift;
|
|
224 return $self->{'study'}->type = shift if(@_);
|
|
225 return $self->{'study'}->type;
|
|
226 }
|
|
227
|
|
228
|
|
229 =head2 study_name
|
|
230
|
|
231 Arg [1] : string $study_name (optional)
|
|
232 The new value to set the study_name attribute to
|
|
233 Example : $study = $sva->study_name()
|
|
234 Description: Getter/Setter for the study_name attribute
|
|
235 Returntype : string
|
|
236 Exceptions : none
|
|
237 Caller : general
|
|
238 Status : At Risk
|
|
239
|
|
240 =cut
|
|
241
|
|
242 sub study_name{
|
|
243 my $self = shift;
|
|
244 return $self->{'study'}->name = shift if(@_);
|
|
245 return $self->{'study'}->name;
|
|
246 }
|
|
247
|
|
248
|
|
249 =head2 study_description
|
|
250
|
|
251 Arg [1] : string $study_description (optional)
|
|
252 The new value to set the study_description attribute to
|
|
253 Example : $study_description = $obj->study_description()
|
|
254 Description: Getter/Setter for the study_description attribute
|
|
255 Returntype : string
|
|
256 Exceptions : none
|
|
257 Caller : general
|
|
258 Status : At Risk
|
|
259
|
|
260 =cut
|
|
261
|
|
262 sub study_description{
|
|
263 my $self = shift;
|
|
264 return $self->{'study'}->description = shift if(@_);
|
|
265 return $self->{'study'}->description;
|
|
266 }
|
|
267
|
|
268
|
|
269 =head2 external_reference
|
|
270
|
|
271 Arg [1] : string $newval (optional)
|
|
272 The new value to set the external reference attribute to
|
|
273 Example : $external_reference = $obj->external_reference()
|
|
274 Description: Getter/Setter for the external reference attribute. This is the
|
|
275 pubmed/id or project name associated with this study.
|
|
276 Returntype : string
|
|
277 Exceptions : none
|
|
278 Caller : general
|
|
279 Status : At Risk
|
|
280
|
|
281 =cut
|
|
282
|
|
283 sub external_reference{
|
|
284 my $self = shift;
|
|
285 return $self->{'study'}->external_reference = shift if(@_);
|
|
286 return $self->{'study'}->external_reference;
|
|
287 }
|
|
288
|
|
289
|
|
290 =head2 study_url
|
|
291
|
|
292 Arg [1] : string $newval (optional)
|
|
293 The new value to set the study_url attribute to
|
|
294 Example : $url = $obj->study_url()
|
|
295 Description: Getter/Setter for the study_url attribute. This is the link to the website where the data are stored.
|
|
296 Returntype : string
|
|
297 Exceptions : none
|
|
298 Caller : general
|
|
299 Status : At Risk
|
|
300
|
|
301 =cut
|
|
302
|
|
303 sub study_url{
|
|
304 my $self = shift;
|
|
305 return $self->{'study'}->url = shift if(@_);
|
|
306 return $self->{'study'}->url;
|
|
307 }
|
|
308
|
|
309
|
|
310 =head2 sample_name
|
|
311
|
|
312 Arg [1] : string sample_name (optional)
|
|
313 The new value to set the sample attribute to
|
|
314 Example : $sample_name = $obj->sample_name()
|
|
315 Description: Getter/Setter for the sample attribute.
|
|
316 Returntype : string
|
|
317 Exceptions : none
|
|
318 Caller : general
|
|
319 Status : At Risk
|
|
320
|
|
321 =cut
|
|
322
|
|
323 sub sample_name {
|
|
324 my $self = shift;
|
|
325 return $self->{'sample_name'} = shift if(@_);
|
|
326 return $self->{'sample_name'};
|
|
327 }
|
|
328
|
|
329
|
|
330 =head2 strain_name
|
|
331
|
|
332 Arg [1] : string strain_name (optional)
|
|
333 The new value to set the strain attribute to
|
|
334 Example : $strain_name = $obj->strain_name()
|
|
335 Description: Getter/Setter for the strain attribute.
|
|
336 Returntype : string
|
|
337 Exceptions : none
|
|
338 Caller : general
|
|
339 Status : At Risk
|
|
340
|
|
341 =cut
|
|
342
|
|
343 sub strain_name {
|
|
344 my $self = shift;
|
|
345 return $self->{'strain_name'} = shift if(@_);
|
|
346 return $self->{'strain_name'};
|
|
347 }
|
|
348
|
|
349
|
|
350 =head2 phenotype_description
|
|
351
|
|
352 Arg [1] : string phenotype_description (optional)
|
|
353 The new value to set the phenotype_description attribute to
|
|
354 Example : $phenotype_description = $obj->phenotype_description()
|
|
355 Description: Getter/Setter for the phenotype_description attribute.
|
|
356 Returntype : string
|
|
357 Exceptions : none
|
|
358 Caller : general
|
|
359 Status : At Risk
|
|
360
|
|
361 =cut
|
|
362
|
|
363 sub phenotype_description{
|
|
364 my $self = shift;
|
|
365 return $self->{'phenotype_description'} = shift if(@_);
|
|
366 return $self->{'phenotype_description'};
|
|
367 }
|
|
368
|
|
369
|
|
370 =head2 clinical_significance
|
|
371
|
|
372 Arg [1] : string clinical_significance (optional)
|
|
373 The new value to set the clinical significance attribute to
|
|
374 Example : $clinical_significance = $obj->clinical_significance()
|
|
375 Description: Getter/Setter for the clinical significance attribute.
|
|
376 Returntype : string
|
|
377 Exceptions : none
|
|
378 Caller : general
|
|
379 Status : At Risk
|
|
380
|
|
381 =cut
|
|
382
|
|
383 sub clinical_significance {
|
|
384 my $self = shift;
|
|
385 return $self->{'clinical_significance'} = shift if(@_);
|
|
386 return $self->{'clinical_significance'};
|
|
387 }
|
|
388
|
|
389 1;
|