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