annotate variant_effect_predictor/Bio/EnsEMBL/PredictionTranscript.pm @ 0:21066c0abaf5 draft

Uploaded
author willmclaren
date Fri, 03 Aug 2012 10:04:48 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
1 =head1 LICENSE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6 This software is distributed under a modified Apache license.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7 For license details, please see
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11 =head1 CONTACT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17 <helpdesk@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 =head1 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 PredictionTranscript
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 =head1 SYNOPSIS
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 Container for single transcript ab initio gene prediction such as
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 GenScan or SNAP. Is directly storable/retrievable in Ensembl using
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 PredictionTranscriptAdaptor.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 Creation:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 my $tran = new Bio::EnsEMBL::PredictionTranscript();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 $tran->add_Exon($pred_exon);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 my $tran =
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 new Bio::EnsEMBL::PredictionTranscript( -EXONS => @pred_exons );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 Manipulation:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43 # Returns an array of PredictionExon objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 my @pred_exons = @{ $tran->get_all_Exons };
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 # Returns the peptide translation as string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47 my $pep = $tran->translate()->seq();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49 # Get the exon cdna sequence.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 my $cdna = $trans->spliced_seq();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52 =head1 METHODS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56 package Bio::EnsEMBL::PredictionTranscript;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58 use vars qw(@ISA);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 use Bio::Seq;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 use Bio::EnsEMBL::Feature;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63 use Bio::EnsEMBL::Transcript;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 use Bio::EnsEMBL::Translation;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66 use Bio::EnsEMBL::Utils::Exception qw( deprecate throw warning );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 use Bio::EnsEMBL::Utils::Argument qw( rearrange );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 @ISA = qw(Bio::EnsEMBL::Transcript);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 =head2 new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74 Arg [-DISPLAY_LABEL]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75 string - a displayable identifier for this prediction
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 Arg [...] : See Bio::EnsEMBL::Transcript superclass constructor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 Example : $pt = Bio::EnsEMBL::PredictionTranscript->new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78 ( '-start' => $seq_region_start,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 '-end' => $seq_region_end,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 '-strand' => $seq_region_strand,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 '-adaptor' => $self,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82 '-slice' => $slice,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 '-analysis' => $analysis,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 '-dbID' => $prediction_transcript_id,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 '-display_label' => $display_label);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 Description: Constructor. Creates a new Bio::EnsEMBL::PredictionTranscript
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 Returntype : Bio::EnsEMBL::PredictionTranscript
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 my $class = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 my $self = $class->SUPER::new(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 my ($display_label) = rearrange(['DISPLAY_LABEL'], @_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 $self->{'display_label'} = $display_label;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 =head2 coding_region_start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110 Arg [1] : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 Example : $coding_region_start = $pt->coding_region_start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 Description: Retrieves the start of the coding region of this transcript in
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 slice coordinates. For prediction transcripts this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 is always the start of the transcript (i.e. there is no UTR).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 By convention, the coding_region_start is always lower than
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 the value returned by the coding_end method.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 The value returned by this function is NOT the biological
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 coding start since on the reverse strand the biological coding
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 start would be the higher genomic value.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 sub coding_region_start {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129 return $self->start();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 =head2 coding_region_end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 Arg [1] : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136 Example : $coding_region_end = $transcript->coding_region_end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 Description: Retrieves the start of the coding region of this prediction
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 transcript. For prediction transcripts this is always the same
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139 as the end since no UTRs are stored.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 By convention, the coding_region_end is always higher than the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 value returned by the coding_region_start method.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 The value returned by this function is NOT the biological
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143 coding start since on the reverse strand the biological coding
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 end would be the lower genomic value.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 sub coding_region_end {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154 return $self->end();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 =head2 get_all_translateable_Exons
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 Arg [1] : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 Example : $exons = $self->get_all_translateable_Exons
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 Description: Retrieves the translateable portion of all exons in this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164 transcript. For prediction transcripts this means all exons
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 since no UTRs are stored for them.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 Returntype : listref of Bio::EnsEMBL::PredictionExons
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173 sub get_all_translateable_Exons {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 return $self->get_all_Exons();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179 =head2 display_label
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181 Arg [1] : string $newval (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 The new value to set the display_label attribute to
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183 Example : $display_label = $pt->display_label()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 Description: Getter/Setter for a displayable identifier for this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185 prediction transcript.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 sub display_label{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 return $self->{'display_label'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 return $self->{'display_label'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 =head2 stable_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203 Arg [1] : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 Example : print $pt->stable_id();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205 Description: Gets a 'stable' identifier for this prediction transcript. Note
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206 that prediction transcripts do not have true *stable*
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207 identifiers (i.e. identifiers maintained between releases).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 This method chains to the display_label method and is intended
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 to provide polymorphism with the Transcript class.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217 sub stable_id { return display_label(@_); }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219 sub get_all_DBEntries { return []; }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 sub get_all_DBLinks { return []; }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223 sub add_DBEntry {}
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225 sub external_db { return undef; }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227 sub external_status { return undef; }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229 sub external_name { return undef; }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 sub is_known { return 0;}
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234 =head2 translation
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236 Arg [1] : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237 Example : $translation = $pt->translation();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238 Description: Retrieves a Bio::EnsEMBL::Translation object for this prediction
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239 transcript. Note that this translation is generated on the fly
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240 and is not stored in the database. The translation always
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241 spans the entire transcript (no UTRs; all CDS) and does not
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242 have an associated dbID, stable_id or adaptor.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 sub translation {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 #calculate translation on the fly
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254 my $strand = $self->strand();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256 my $start_exon;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257 my $end_exon;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259 my @exons = @{$self->get_all_Exons()};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261 return undef if(!@exons);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 $start_exon = $exons[0];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264 $end_exon = $exons[-1];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266 my $pta;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268 if($self->adaptor()) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269 $pta = $self->adaptor()->db()->get_TranslationAdaptor();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271 #warning("PredictionTranscript has no adaptor, may not be able to obtain " .
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272 # "translation");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275 my $Xseq = $self->spliced_seq();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276 my $start_phase = $start_exon->phase;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277 if( $start_phase > 0 ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
278 $Xseq = "N"x$start_phase . $Xseq;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
279 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
280
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
281 my $tmpSeq = new Bio::Seq( -id => $self->display_id,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
282 -seq => $Xseq,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
283 -moltype => 'dna',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
284 -alphabet => 'dna' );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
285
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
286 return Bio::EnsEMBL::Translation->new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
287 (-ADAPTOR => $pta,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
288 -START_EXON => $start_exon,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
289 -END_EXON => $end_exon,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
290 -SEQ_START => 1,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
291 -SEQ_END => $end_exon->length(),
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
292 -SEQ => $tmpSeq->translate()->seq());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
293 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
294
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
295
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
296
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
297 =head2 translate
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
298
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
299 Args : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
300 Function : Give a peptide translation of all exons currently in
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
301 the PT. Gives empty string when none is in.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
302 Returntype: a Bio::Seq as in transcript->translate()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
303 Exceptions: none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
304 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
305 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
306
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
307 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
308
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
309
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
310 sub translate {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
311 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
312
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
313 my $dna = $self->translateable_seq();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
314
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
315 my $codon_table_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
316 if ( defined( $self->slice() ) ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
317 my $attrib;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
318
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
319 ($attrib) = @{ $self->slice()->get_all_Attributes('codon_table') };
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
320 if ( defined($attrib) ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
321 $codon_table_id = $attrib->value();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
322 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
323 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
324 $codon_table_id ||= 1; #default will be vertebrates
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
325
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
326 if( CORE::length( $dna ) % 3 == 0 ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
327 # $dna =~ s/TAG$|TGA$|TAA$//i;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
328 my $codon_table = Bio::Tools::CodonTable->new( -id => $codon_table_id );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
329
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
330 if ( $codon_table->is_ter_codon( substr( $dna, -3, 3 ) ) ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
331 substr( $dna, -3, 3, '' );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
332 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
333 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
334 # the above line will remove the final stop codon from the mrna
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
335 # sequence produced if it is present, this is so any peptide produced
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
336 # won't have a terminal stop codon
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
337 # if you want to have a terminal stop codon either comment this line out
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
338 # or call translatable seq directly and produce a translation from it
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
339
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
340 my $bioseq = new Bio::Seq( -id => $self->display_id,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
341 -seq => $dna,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
342 -moltype => 'dna',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
343 -alphabet => 'dna' );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
344
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
345 my $translation = $bioseq->translate(undef,undef,undef,$codon_table_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
346
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
347 return $translation;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
348 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
349
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
350
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
351 =head2 cdna_coding_start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
352
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
353 Arg [1] : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
354 Example : $relative_coding_start = $transcript->cdna_coding_start();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
355 Description: Retrieves the position of the coding start of this transcript
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
356 in cdna coordinates (relative to the start of the 5prime end of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
357 the transcript, excluding introns, including utrs). This is
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
358 always 1 for prediction transcripts because they have no UTRs.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
359 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
360 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
361 Caller : five_prime_utr, get_all_snps, general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
362 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
363
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
364 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
365
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
366 sub cdna_coding_start { return 1 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
367
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
368
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
369
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
370 =head2 cdna_coding_end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
371
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
372 Arg [1] : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
373 Example : $relative_coding_start = $transcript->cdna_coding_end();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
374 Description: Retrieves the position of the coding end of this transcript
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
375 in cdna coordinates (relative to the start of the 5prime end of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
376 the transcript, excluding introns, including utrs). This is
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
377 always te length of the cdna for prediction transcripts because
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
378 they have no UTRs.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
379 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
380 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
381 Caller : five_prime_utr, get_all_snps, general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
382 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
383
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
384 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
385
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
386 sub cdna_coding_end {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
387 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
388 return length( $self->spliced_seq() );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
389 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
390
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
391
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
392 =head2 transform
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
393
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
394 Arg 1 : String $coordinate_system_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
395 Arg [2] : String $coordinate_system_version
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
396 Example : $ptrans = $ptrans->transform('chromosome', 'NCBI33');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
397 $ptrans = $ptrans->transform('clone');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
398 Description: Moves this PredictionTranscript to the given coordinate system.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
399 If this Transcript has Exons attached, they move as well.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
400 A new Transcript is returned or undefined if this PT is not
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
401 defined in the new coordinate system.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
402 Returntype : Bio::EnsEMBL::PredictionTranscript
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
403 Exceptions : wrong parameters
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
404 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
405 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
406
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
407 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
408
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
409 sub transform {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
410 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
411
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
412 # catch for old style transform calls
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
413 if( ref $_[0] && ($_[0]->isa( "Bio::EnsEMBL::Slice" ) or $_[0]->isa( "Bio::EnsEMBL::LRGSlice" ))) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
414 throw("transform needs coordinate systems details now," .
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
415 "please use transfer");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
416 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
417
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
418 my $new_transcript = Bio::EnsEMBL::Feature::transform($self, @_ );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
419 return undef unless $new_transcript;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
420
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
421 #go through the _trans_exon_array so as not to prompt lazy-loading
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
422 if(exists($self->{'_trans_exon_array'})) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
423 my @new_exons;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
424 foreach my $old_exon ( @{$self->{'_trans_exon_array'}} ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
425 my $new_exon = $old_exon->transform(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
426 push(@new_exons, $new_exon);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
427 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
428 $new_transcript->{'_trans_exon_array'} = \@new_exons;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
429 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
430
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
431 return $new_transcript;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
432 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
433
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
434
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
435
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
436 =head2 transfer
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
437
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
438 Arg 1 : Bio::EnsEMBL::Slice $destination_slice
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
439 Example : $ptrans = $ptrans->transfer($slice);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
440 Description: Moves this PredictionTranscript to the given slice.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
441 If this Transcripts has Exons attached, they move as well.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
442 If this transcript cannot be moved then undef is returned
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
443 instead.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
444 Returntype : Bio::EnsEMBL::PredictionTranscript
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
445 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
446 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
447 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
448
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
449 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
450
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
451 sub transfer {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
452 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
453
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
454 my $new_transcript = $self->SUPER::transfer( @_ );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
455 return undef unless $new_transcript;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
456
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
457 if( exists $self->{'_trans_exon_array'} ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
458 my @new_exons;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
459 for my $old_exon ( @{$self->{'_trans_exon_array'}} ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
460 my $new_exon = $old_exon->transfer( @_ );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
461 push( @new_exons, $new_exon );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
462 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
463
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
464 $new_transcript->{'_trans_exon_array'} = \@new_exons;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
465 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
466
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
467 return $new_transcript;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
468 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
469
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
470 =head2 get_all_Exons
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
471
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
472 Arg [1] : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
473 Example : my @exons = @{$transcript->get_all_Exons()};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
474 Description: Returns an listref of the exons in this transcipr in order.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
475 i.e. the first exon in the listref is the 5prime most exon in
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
476 the transcript.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
477 Returntype : a list reference to Bio::EnsEMBL::Exon objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
478 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
479 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
480 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
481
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
482 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
483
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
484 sub get_all_Exons {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
485 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
486 if( ! defined $self->{'_trans_exon_array'} && defined $self->adaptor() ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
487 $self->{'_trans_exon_array'} = $self->adaptor()->db()->
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
488 get_PredictionExonAdaptor()->fetch_all_by_PredictionTranscript( $self );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
489 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
490 return $self->{'_trans_exon_array'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
491 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
492
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
493 =head2 display_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
494
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
495 Arg [1] : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
496 Example : print $rf->display_id();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
497 Description: This method returns a string that is considered to be
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
498 the 'display' identifier. For prediction transcripts this is
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
499 (depending on availability and in this order) the stable Id, the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
500 dbID or an empty string.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
501 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
502 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
503 Caller : web drawing code
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
504 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
505
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
506 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
507
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
508 sub display_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
509 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
510 return $self->stable_id || $self->dbID || '';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
511 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
512
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
513 =head2 get_all_Attributes
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
514
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
515 Arg [1] : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
516 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
517 Description: DOES NOTHING, Returns empty listref. Provided here to prevent
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
518 Transcript attributes being returned for PredictionTranscripts.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
519 Returntype : EMPTY listref Bio::EnsEMBL::Attribute
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
520 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
521 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
522 Status : At risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
523
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
524 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
525
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
526 sub get_all_Attributes {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
527 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
528
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
529 return [];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
530 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
531
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
532
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
533
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
534 =head2 get_exon_count
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
535
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
536 Description: DEPRECATED - use get_all_Exons instead
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
537
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
538 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
539
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
540 sub get_exon_count {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
541 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
542 deprecate('Use scalar(@{$transcript->get_all_Exon()s}) instead');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
543 return scalar( @{$self->get_all_Exons} );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
544 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
545
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
546
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
547 =head2 set_exon_count
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
548
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
549 Description: DEPRECATED - this method does nothing now
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
550
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
551 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
552
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
553 sub set_exon_count {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
554 deprecate('This method no longer does anything.');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
555 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
556
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
557
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
558
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
559 =head2 get_cdna
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
560
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
561 Description : DEPRECATED - use spliced_seq() or translateable_seq instead
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
562
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
563 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
564
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
565 sub get_cdna {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
566 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
567 deprecate('use spliced_seq instead');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
568 return $self->spliced_seq();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
569 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
570
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
571 1;