0
|
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
|