annotate variant_effect_predictor/Bio/EnsEMBL/IntronSupportingEvidence.pm @ 3:d30fa12e4cc5 default tip

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