Mercurial > repos > mahtabm > ensembl
comparison variant_effect_predictor/Bio/EnsEMBL/Variation/StructuralVariationOverlap.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 package Bio::EnsEMBL::Variation::StructuralVariationOverlap; | |
2 | |
3 use strict; | |
4 use warnings; | |
5 | |
6 use Bio::EnsEMBL::Variation::StructuralVariationOverlapAllele; | |
7 | |
8 use Bio::EnsEMBL::Utils::Scalar qw(assert_ref); | |
9 use Bio::EnsEMBL::Utils::Exception qw(throw warning); | |
10 use Bio::EnsEMBL::Utils::Argument qw(rearrange); | |
11 | |
12 use base qw(Bio::EnsEMBL::Variation::BaseVariationFeatureOverlap); | |
13 | |
14 sub new { | |
15 | |
16 my $class = shift; | |
17 | |
18 my %args = @_; | |
19 | |
20 # swap a '-structural_variation_feature' argument for a '-base_variation_feature' one for the superclass | |
21 | |
22 for my $arg (keys %args) { | |
23 if (lc($arg) eq '-structural_variation_feature') { | |
24 $args{'-base_variation_feature'} = delete $args{$arg}; | |
25 } | |
26 } | |
27 | |
28 # call the superclass constructor | |
29 my $self = $class->SUPER::new(%args); | |
30 | |
31 # construct a fake 'allele' | |
32 | |
33 $self->add_StructuralVariationOverlapAllele( | |
34 Bio::EnsEMBL::Variation::StructuralVariationOverlapAllele->new_fast({ | |
35 structural_variation_overlap => $self, | |
36 }) | |
37 ); | |
38 | |
39 return $self; | |
40 } | |
41 | |
42 sub new_fast { | |
43 my ($class, $hashref) = @_; | |
44 | |
45 # swap a 'structural_variation_feature' argument for a 'base_variation_feature' one for the superclass | |
46 | |
47 if ($hashref->{structural_variation_feature}) { | |
48 $hashref->{base_variation_feature} = delete $hashref->{structural_variation_feature}; | |
49 } | |
50 | |
51 # and call the superclass | |
52 | |
53 my $self = $class->SUPER::new_fast($hashref); | |
54 | |
55 # for my $ssv (@{ $self->structural_variation_feature->structural_variation->get_all_SupportingStructuralVariants }) { | |
56 # for my $ssvf (@{ $ssv->get_all_StructuralVariationFeatures }) { | |
57 # $self->add_StructuralVariationOverlapAllele( | |
58 # Bio::EnsEMBL::Variation::StructuralVariationOverlapAllele->new_fast({ | |
59 # structural_variation_overlap => $self, | |
60 # }) | |
61 # ); | |
62 # } | |
63 # } | |
64 | |
65 unless (@{ $self->get_all_alternate_StructuralVariationOverlapAlleles }) { | |
66 | |
67 # construct a fake 'allele' | |
68 | |
69 $self->add_StructuralVariationOverlapAllele( | |
70 Bio::EnsEMBL::Variation::StructuralVariationOverlapAllele->new_fast({ | |
71 structural_variation_overlap => $self, | |
72 }) | |
73 ); | |
74 } | |
75 | |
76 return $self; | |
77 } | |
78 | |
79 sub structural_variation_feature { | |
80 my $self = shift; | |
81 return $self->base_variation_feature(@_); | |
82 } | |
83 | |
84 =head2 add_StructuralVariationOverlapAllele | |
85 | |
86 Arg [1] : A Bio::EnsEMBL::Variation::StructuralVariationOverlapAllele instance | |
87 Description: Add an allele to this StructuralVariationOverlap | |
88 Returntype : none | |
89 Exceptions : throws if the argument is not the expected type | |
90 Status : At Risk | |
91 | |
92 =cut | |
93 | |
94 sub add_StructuralVariationOverlapAllele { | |
95 my ($self, $svoa) = @_; | |
96 assert_ref($svoa, 'Bio::EnsEMBL::Variation::StructuralVariationOverlapAllele'); | |
97 return $self->SUPER::add_BaseVariationFeatureOverlapAllele($svoa); | |
98 } | |
99 | |
100 =head2 get_reference_StructuralVariationOverlapAllele | |
101 | |
102 Description: Get the object representing the reference allele of this StructuralVariationOverlap | |
103 Returntype : Bio::EnsEMBL::Variation::StructuralVariationOverlapAllele instance | |
104 Exceptions : none | |
105 Status : At Risk | |
106 | |
107 =cut | |
108 | |
109 sub get_reference_StructuralVariationOverlapAllele { | |
110 my $self = shift; | |
111 return $self->SUPER::get_reference_BaseVariationFeatureOverlapAllele(@_); | |
112 } | |
113 | |
114 =head2 get_all_alternate_StructuralVariationOverlapAlleles | |
115 | |
116 Description: Get a list of the alternate alleles of this StructuralVariationOverlap | |
117 Returntype : listref of Bio::EnsEMBL::Variation::StructuralVariationOverlapAllele objects | |
118 Exceptions : none | |
119 Status : At Risk | |
120 | |
121 =cut | |
122 | |
123 sub get_all_alternate_StructuralVariationOverlapAlleles { | |
124 my $self = shift; | |
125 return $self->SUPER::get_all_alternate_BaseVariationFeatureOverlapAlleles(@_); | |
126 } | |
127 | |
128 =head2 get_all_StructuralVariationOverlapAlleles | |
129 | |
130 Description: Get a list of the all the alleles, both reference and alternate, of | |
131 this StructuralVariationOverlap | |
132 Returntype : listref of Bio::EnsEMBL::Variation::StructuralVariationOverlapAllele objects | |
133 Exceptions : none | |
134 Status : At Risk | |
135 | |
136 =cut | |
137 | |
138 sub get_all_StructuralVariationOverlapAlleles { | |
139 my $self = shift; | |
140 return $self->SUPER::get_all_BaseVariationFeatureOverlapAlleles(@_); | |
141 } | |
142 | |
143 1; | |
144 |