0
|
1
|
|
2 =head1 LICENSE
|
|
3
|
|
4 Copyright (c) 1999-2012 The European Bioinformatics Institute and
|
|
5 Genome Research Limited. All rights reserved.
|
|
6
|
|
7 This software is distributed under a modified Apache license.
|
|
8 For license details, please see
|
|
9
|
|
10 http://www.ensembl.org/info/about/code_licence.html
|
|
11
|
|
12 =head1 CONTACT
|
|
13
|
|
14 Please email comments or questions to the public Ensembl
|
|
15 developers list at <dev@ensembl.org>.
|
|
16
|
|
17 Questions may also be sent to the Ensembl help desk at
|
|
18 <helpdesk@ensembl.org>.
|
|
19
|
|
20 =cut
|
|
21
|
|
22 =head1 NAME
|
|
23
|
|
24 Bio::EnsEMBL::SlicingEvent - Object representing an alternative splicing event
|
|
25
|
|
26 =head1 SYNOPSIS
|
|
27
|
|
28 my $ase =
|
|
29 Bio::EnsEMBL::SplicingEvent->new( -START => 123,
|
|
30 -END => 1045,
|
|
31 -STRAND => 1,
|
|
32 -GENE_ID => $gene->dbID,
|
|
33 -SLICE => $slice );
|
|
34
|
|
35 # set some additional attributes
|
|
36 $ase->name('ENSG00000000003-CNE-3');
|
|
37 $ase->type('CNE');
|
|
38
|
|
39 =head1 DESCRIPTION
|
|
40
|
|
41 A representation of an Alternative Splicing Event within the Ensembl system.
|
|
42
|
|
43 =head1 METHODS
|
|
44
|
|
45 =cut
|
|
46
|
|
47 package Bio::EnsEMBL::SplicingEvent;
|
|
48
|
|
49 use strict;
|
|
50
|
|
51 use POSIX;
|
|
52 use Bio::EnsEMBL::Feature;
|
|
53 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
|
|
54 use Bio::EnsEMBL::Utils::Exception qw(throw warning deprecate);
|
|
55
|
|
56 use vars qw(@ISA);
|
|
57 @ISA = qw(Bio::EnsEMBL::Feature);
|
|
58
|
|
59 ## Add to gene get_all_splicing_events
|
|
60
|
|
61 sub gene_id {
|
|
62 my ( $self, $value ) = @_;
|
|
63
|
|
64 if ( defined($value) ) {
|
|
65 $self->{'gene_id'} = $value;
|
|
66 }
|
|
67
|
|
68 return $self->{'gene_id'};
|
|
69 }
|
|
70
|
|
71 sub name {
|
|
72 my ( $self, $value ) = @_;
|
|
73
|
|
74 if ( defined($value) ) {
|
|
75 $self->{'name'} = $value;
|
|
76 }
|
|
77
|
|
78 return $self->{'name'};
|
|
79 }
|
|
80
|
|
81 sub type {
|
|
82 my ( $self, $value ) = @_;
|
|
83
|
|
84 if ( defined($value) ) {
|
|
85 $self->{'type'} = $value;
|
|
86 }
|
|
87
|
|
88 return $self->{'type'};
|
|
89 }
|
|
90
|
|
91 sub add_Feature {
|
|
92 my ( $self, $feature ) = @_;
|
|
93
|
|
94 if ( !ref($feature)
|
|
95 || !$feature->isa("Bio::EnsEMBL::SplicingEventFeature") )
|
|
96 {
|
|
97 throw("$feature is not a Bio::EnsEMBL::SplicingEventFeature!");
|
|
98 }
|
|
99
|
|
100 $self->{'_feature_array'} ||= [];
|
|
101
|
|
102 push( @{ $self->{'_feature_array'} }, $feature );
|
|
103 }
|
|
104
|
|
105 sub get_all_Features {
|
|
106 my ($self) = @_;
|
|
107
|
|
108 if ( !exists( $self->{'_feature_array'} ) ) {
|
|
109 if ( defined( $self->adaptor() ) ) {
|
|
110 my $fta =
|
|
111 $self->adaptor()->db()->get_SplicingEventFeatureAdaptor();
|
|
112 my $features = $fta->fetch_all_by_SplicingEvent($self);
|
|
113 $self->{'_feature_array'} = $features;
|
|
114 }
|
|
115 }
|
|
116
|
|
117 return $self->{'_feature_array'};
|
|
118 }
|
|
119
|
|
120 sub add_Pair {
|
|
121 my ( $self, $feature ) = @_;
|
|
122
|
|
123 if ( !ref($feature)
|
|
124 || !$feature->isa("Bio::EnsEMBL::SplicingEventPair") )
|
|
125 {
|
|
126 throw("$feature is not a Bio::EnsEMBL::SplicingEventPair!");
|
|
127 }
|
|
128
|
|
129 $self->{'_pair_array'} ||= [];
|
|
130
|
|
131 push( @{ $self->{'_pair_array'} }, $feature );
|
|
132 }
|
|
133
|
|
134 sub get_all_Pairs {
|
|
135 my ($self) = @_;
|
|
136
|
|
137 if ( !exists( $self->{'_pair_array'} ) ) {
|
|
138 if ( defined( $self->adaptor() ) ) {
|
|
139 my $pa =
|
|
140 $self->adaptor()->db()->get_SplicingTranscriptPairAdaptor();
|
|
141 my $pairs = $pa->fetch_all_by_SplicingEvent($self);
|
|
142 $self->{'_pair_array'} = $pairs;
|
|
143 }
|
|
144 }
|
|
145
|
|
146 return $self->{'_pair_array'};
|
|
147 }
|
|
148
|
|
149 1;
|