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