annotate variant_effect_predictor/Bio/EnsEMBL/IntronSupportingEvidence.pm @ 1:d6778b5d8382 draft default tip

Deleted selected files
author willmclaren
date Fri, 03 Aug 2012 10:05:43 -0400
parents 21066c0abaf5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
1 package Bio::EnsEMBL::IntronSupportingEvidence;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3 =pod
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5 =head1 LICENSE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7 Copyright (c) 1999-2012 The European Bioinformatics Institute and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8 Genome Research Limited. All rights reserved.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10 This software is distributed under a modified Apache license.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11 For license details, please see
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13 http://www.ensembl.org/info/about/code_licence.html
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15 =head1 CONTACT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17 Please email comments or questions to the public Ensembl
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18 developers list at <dev@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20 Questions may also be sent to the Ensembl help desk at
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 <helpdesk@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 =head1 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 Bio::EnsEMBL::IntronSupportingEvidence
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 Formalises an Intron with information about why it is a believed Intron. This
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 serves as a parallel object to Bio::EnsEMBL::Intron which you can use
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 to populate values in this field from. They are different objects though
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32 due to Intron's non-existence as a DB data structure.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 #Example setups a ISE from the first two Exons
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 my ($five_prime_exon, $three_prime_exon) = @{$transcript->get_all_Exons()}[0..1];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 my $intron = Bio::EnsEMBL::Intron->new($five_prime_exon, $three_prime_exon);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 =head1 METHODS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 use warnings;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47 use base qw/Bio::EnsEMBL::Feature/;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49 use Bio::EnsEMBL::Intron;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 use Bio::EnsEMBL::Utils::Argument qw/rearrange/;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 use Bio::EnsEMBL::Utils::Exception qw/throw/;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52 use Bio::EnsEMBL::Utils::Scalar qw/assert_ref/;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 our %SUPPORTED_TYPES = map { $_ => 1 } qw/NONE DEPTH/;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56 =head2 new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58 Arg [-ANALYSIS] : Bio::EnsEMBL::Analysis The analysis this intron is linked to
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 Arg [-START] : int - start postion of the IntronSupportingEvidence
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60 Arg [-END] : int - end position of the IntronSupportingEvidence
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 Arg [-STRAND] : int - strand the IntronSupportingEvidence is on
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 Arg [-SLICE] : Bio::EnsEMBL::Slice - the slice the IntronSupportingEvidence is on
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63 Arg [-INTRON] : Bio::EnsEMBL::Intron Intron the evidence is based
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 on. Useful if you are not specifying the location
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 parameters as we will take them from this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66 Arg [-HIT_NAME] : String The name of the hit
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 Arg [-SCORE] : Double The score associated with the supporting evidence
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68 Arg [-SCORE_TYPE] : String The type of score we are representing
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 Example : Bio::EnsEMBL::IntronSupportingEvidence->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70 -ANALYSIS => $analysis, -INTRON => $intron,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71 -SCORE => 100, -SCORE_TYPE => 'DEPTH');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 Description : Returns a new instance of this object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 Returntype : Bio::EnsEMBL::IntronSupportEvidence
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74 Exceptions : Thrown if data is not as requested
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 my ($class, @args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 my $self = $class->SUPER::new(@args);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 my ($intron, $hit_name, $score, $score_type, $is_splice_canonical) =
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 rearrange([qw/intron hit_name score score_type is_splice_canonical/], @args);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 if($intron) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 $self->set_values_from_Intron($intron);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 $self->hit_name($hit_name) if $hit_name;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 $self->score($score) if $score;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 $self->score_type($score_type) if $score_type;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 $self->is_splice_canonical($is_splice_canonical) if $is_splice_canonical;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97 =head2 set_values_from_Intron
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99 Arg [1] : Bio::EnsEMBL::Intron The intron to base this object on
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 Example : $ise->set_values_from_Intron($intron);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101 Description : Sets the start, end, strand and slice of this ISE instance
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 using values from the given Intron object.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 Returntype : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104 Exceptions : Thrown if data is not as requested
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 sub set_values_from_Intron {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 my ($self, $intron) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110 assert_ref($intron, 'Bio::EnsEMBL::Intron', 'intron');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 $self->start($intron->start());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 $self->end($intron->end());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 $self->strand($intron->strand());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 $self->slice($intron->slice());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 $self->is_splice_canonical($intron->is_splice_canonical());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 return;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 =head2 is_splice_canonical
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 Arg [1] : Boolean
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 Example : $ise->is_splice_canonical(1);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 Description : Getter/setter for is_splice_canonical. Splice canonical
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 indicates those Introns which have a splice junction which
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 is structured as expected
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126 Returntype : Boolean
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131 sub is_splice_canonical {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 my ($self, $is_splice_canonical) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 $self->{'is_splice_canonical'} = $is_splice_canonical if defined $is_splice_canonical;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 return $self->{'is_splice_canonical'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 =head2 get_Intron
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139 Arg [1] : Bio::EnsEMBL::Transcript
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 Example : my $intron = $ise->intron($transcript);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 Description : Provides access to an Intron object by using a given transcript
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 object and its associcated array of Exons.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143 Returntype : Bio::EnsEMBL::Intron
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 sub get_Intron {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 my ($self, $transcript) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 assert_ref($transcript, 'Bio::EnsEMBL::Transcript', 'transcript');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151 my $five_prime = $self->find_previous_Exon($transcript);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 my $three_prime = $self->find_next_Exon($transcript);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 return Bio::EnsEMBL::Intron->new($five_prime, $three_prime);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156 =head2 hit_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 Arg [1] : String name of the hit
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 Example : $ise->hit_name('hit');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 Description : Getter/setter for hit name i.e. an identifier for the alignments
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 Returntype : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 sub hit_name {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 my ($self, $hit_name) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 $self->{'hit_name'} = $hit_name if defined $hit_name;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 return $self->{'hit_name'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 =head2 score
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 Arg [1] : Number; the score associated with this feature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 Example : $ise->score(100);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 Description : Getter/setter for score
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 Returntype : Number
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 sub score {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183 my ($self, $score) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 $self->{'score'} = $score if defined $score;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185 return $self->{'score'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188 =head2 score_type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 Arg [1] : String the enum type. Currently only allowed NONE or DEPTH
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191 Example : $ise->score_type('DEPTH');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192 Description : Gets and sets the type of score this instance represents
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 Returntype : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 Exceptions : Thrown if given an unsupported type of data
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198 sub score_type {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199 my ($self, $score_type) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200 if(defined $score_type) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 if(! $SUPPORTED_TYPES{$score_type}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202 my $values = join(q{, }, keys %SUPPORTED_TYPES);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203 throw "The score_type '$score_type' is not allowed. Allowed values are [${values}]";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206 $self->{'score_type'} = $score_type if defined $score_type;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207 return $self->{'score_type'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 =head2 has_linked_transcripts
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 Example : $ise->has_linked_transcripts();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213 Description : Returns true if we have transcripts linked to this ISE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214 Returntype : Boolean
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215 Exceptions : Thrown if we do not have an attached adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219 sub has_linked_transcripts {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 throw "No attached adaptor. Cannot find linked Transcripts unless this is a persisted object" unless $self->adaptor();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222 my $transcript_ids = $self->adaptor()->list_linked_transcript_ids($self);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223 return scalar(@{$transcript_ids}) ? 1 : 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226 =head2 equals
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228 Arg [1] : Bio::EnsEMBL::IntronSupportEvidence Object to compare to
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229 Example : $ise->equals($another_ise);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230 Description : Asserts if the given IntronSupportEvidence instance was equal to this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 Returntype : Boolean
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236 sub equals {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237 my ($self, $other) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238 my $equal = $self->SUPER::equals($other);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239 return 0 if ! $equal;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240 return (
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241 ($self->hit_name()||q{}) eq ($other->hit_name()||q{}) &&
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242 ($self->score_type() eq $other->score_type()) &&
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243 ($self->score() == $other->score())) ? 1 : 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246 =head2 find_previous_Exon
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248 Arg [1] : Bio::EnsEMBL::Transcript Transcript to search for the Exons from
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249 Example : $ise->find_previous_Exon($transcript);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 Description : Loops through those Exons available from the Transcript and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251 attempts to find one which was the 5' flanking exon. If the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252 object has already been persisted we will use dbIDs to
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 find the Exons
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254 Returntype : Bio::EnsEMBL::Exon
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259 sub find_previous_Exon {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260 my ($self, $transcript) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262 #Use DB IDs if we have them
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 my $exon_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264 if($self->adaptor()) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265 my @ids = $self->adaptor()->fetch_flanking_exon_ids($self, $transcript);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266 $exon_id = $ids[0] if @ids;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269 my $exons = $transcript->get_all_Exons();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271 my $start = $self->start();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272 my $end = $self->end();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273 foreach my $exon (@{$exons}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274 if($exon_id) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275 return $exon if $exon->dbID() == $exon_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276 next;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
278 if($self->strand() == 1) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
279 return $exon if $exon->end() == $start-1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
280 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
281 else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
282 return $exon if $exon->start() == $end+1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
283 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
284 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
285 return;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
286 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
287
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
288 =head2 find_next_Exon
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
289
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
290 Arg [1] : Bio::EnsEMBL::Transcript Transcript to search for the Exons from
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
291 Example : $ise->find_next_Exon($transcript);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
292 Description : Loops through those Exons available from the Transcript and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
293 attempts to find one which was the 3' flanking exon. If the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
294 object has already been persisted we will use dbIDs to
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
295 find the Exons
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
296 Returntype : Bio::EnsEMBL::Exon
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
297 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
298
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
299 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
300
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
301 sub find_next_Exon {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
302 my ($self, $transcript) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
303
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
304 #Use DB IDs if we have them
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
305 my $exon_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
306 if($self->adaptor()) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
307 my @ids = $self->adaptor()->fetch_flanking_exon_ids($self, $transcript);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
308 $exon_id = $ids[1] if @ids;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
309 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
310
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
311 my $exons = $transcript->get_all_Exons();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
312 my $start = $self->start();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
313 my $end = $self->end();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
314 foreach my $exon (@{$exons}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
315 if($exon_id) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
316 return $exon if $exon->dbID() == $exon_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
317 next;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
318 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
319 if($self->strand() == 1) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
320 return $exon if $exon->start() == $end+1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
321 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
322 else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
323 return $exon if $exon->end() == $start-1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
324 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
325 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
326 return;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
327 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
328
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
329 1;