annotate variant_effect_predictor/Bio/EnsEMBL/Translation.pm @ 0:2bc9b66ada89 draft default tip

Uploaded
author mahtabm
date Thu, 11 Apr 2013 06:29:17 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1 =head1 LICENSE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
2
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
5
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
6 This software is distributed under a modified Apache license.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
7 For license details, please see
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
8
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
10
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
11 =head1 CONTACT
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
12
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
15
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
17 <helpdesk@ensembl.org>.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
18
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
19 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
20
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
21 =head1 NAME
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
22
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
23 Bio::EnsEMBL::Translation - A class representing the translation of a
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24 transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26 =head1 SYNOPSIS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28 my $translation = Bio::EnsEMBL::Translation->new(
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29 -START_EXON => $exon1,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30 -END_EXON => $exon2,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31 -SEQ_START => 98,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32 -SEQ_END => 39
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35 # stable ID setter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36 $translation->stable_id('ENSP00053458');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38 # get start and end position in start/end exons
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39 my $start = $translation->start;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40 my $end = $translation->end;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42 =head1 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44 A Translation object defines the CDS and UTR regions of a Transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45 through the use of start_Exon/end_Exon, and start/end attributes.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50 package Bio::EnsEMBL::Translation;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52 use vars qw($AUTOLOAD @ISA);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55 use Scalar::Util qw(weaken isweak);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57 use Bio::EnsEMBL::Utils::Exception qw( deprecate throw warning );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
58 use Bio::EnsEMBL::Utils::Argument qw( rearrange );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
59 use Bio::EnsEMBL::Utils::Scalar qw( assert_ref );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61 use Bio::EnsEMBL::Storable;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63 @ISA = qw(Bio::EnsEMBL::Storable);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
64
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
65
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
66 =head2 new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
67
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
68 Arg [-START_EXON] : The Exon object in which the translation (CDS) starts
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69 Arg [-END_EXON] : The Exon object in which the translation (CDS) ends
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70 Arg [-SEQ_START] : The offset in the start_Exon indicating the start
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71 position of the CDS.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72 Arg [-SEQ_END] : The offset in the end_Exon indicating the end
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73 position of the CDS.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74 Arg [-STABLE_ID] : The stable identifier for this Translation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75 Arg [-VERSION] : The version of the stable identifier
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76 Arg [-DBID] : The internal identifier of this Translation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77 Arg [-ADAPTOR] : The TranslationAdaptor for this Translation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78 Arg [-SEQ] : Manually sets the peptide sequence of this translation.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79 May be useful if this translation is not stored in
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80 a database.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81 Arg [-CREATED_DATE]: the date the translation was created
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82 Arg [-MODIFIED_DATE]: the date the translation was modified
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83 Example : my $tl = Bio::EnsEMBL::Translation->new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84 (-START_EXON => $ex1,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85 -END_EXON => $ex2,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86 -SEQ_START => 98,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87 -SEQ_END => 39);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88 Description: Constructor. Creates a new Translation object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89 Returntype : Bio::EnsEMBL::Translation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96 sub new {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97 my $caller = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99 my $class = ref($caller) || $caller;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101 my ( $start_exon, $end_exon, $seq_start, $seq_end,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102 $stable_id, $version, $dbID, $adaptor, $seq,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103 $created_date, $modified_date ) =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104 rearrange( [ "START_EXON", "END_EXON", "SEQ_START", "SEQ_END",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105 "STABLE_ID", "VERSION", "DBID", "ADAPTOR",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106 "SEQ", "CREATED_DATE", "MODIFIED_DATE" ], @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108 my $self = bless {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109 'start_exon' => $start_exon,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110 'end_exon' => $end_exon,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111 'dbID' => $dbID,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112 'start' => $seq_start,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113 'end' => $seq_end,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114 'stable_id' => $stable_id,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115 'version' => $version,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116 'created_date' => $created_date,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117 'modified_date' => $modified_date,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118 'seq' => $seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119 }, $class;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121 $self->adaptor($adaptor);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123 return $self;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126 =head2 new_fast
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128 Arg [1] : hashref to be blessed
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129 Description: Construct a new Bio::EnsEMBL::Translation using the hashref.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131 Returntype : Bio::EnsEMBL::Translation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132 Caller : general, subclass constructors
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138 sub new_fast {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139 my $class = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140 my $hashref = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141 my $self = bless $hashref, $class;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142 weaken($self->{adaptor}) if ( ! isweak($self->{adaptor}) );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143 return $self;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
145
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
146 =head2 transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
147
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
148 Arg [1] : Transcript object (optional)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
149 Description : Sets or retrieves the transcript object associated
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
150 with this translation object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
151 Exceptions : Throws if there is no adaptor or no dbID defined for
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
152 the translation object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
153 Returntype : Bio::EnsEMBL::Transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
154 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
155
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
156 sub transcript {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
157 my ( $self, $transcript ) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
158
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
159 if ( defined($transcript) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
160 assert_ref( $transcript, 'Bio::EnsEMBL::Transcript' );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
161
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
162 $self->{'transcript'} = $transcript;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
163
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
164 weaken( $self->{'transcript'} ); # Avoid circular references.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
165
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
166 } elsif ( @_ > 1 ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
167 # Break connection to transcript.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
168 delete( $self->{'transcript'} );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
169 } elsif ( !defined( $self->{'transcript'} ) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
170 my $adaptor = $self->adaptor;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
171 if ( !defined($adaptor) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
172 throw( "Adaptor is not set for translation, "
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
173 . "can not fetch its transcript." );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
174 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
175
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
176 my $dbID = $self->{'dbID'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
177 if ( !defined($dbID) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
178 throw( "dbID is not set for translation, "
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
179 . " can not fetch its transcript." );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
180 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
181
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
182 $self->{'transcript'} =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
183 $adaptor->db()->get_TranscriptAdaptor()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
184 ->fetch_by_translation_id($dbID);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
185
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
186 # Do not weaken the reference if we had to get the transcript from the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
187 # database. The user is probably working on translations directly,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
188 # not going through transcripts.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
189 #weaken( $self->{'transcript'} ); # Avoid circular references.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
190 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
191
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
192 return $self->{'transcript'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
193 } ## end sub transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
194
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
195
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
196 =head2 start
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
197
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
198 Arg [1] : (optional) int $start - start position to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
199 Example : $translation->start(17);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
200 Description: Getter/setter for the value of start, which is a position within
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
201 the exon given by start_Exon.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
202
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
203 If you need genomic coordinates, use the genomic_start()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
204 method.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
205 Returntype : int
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
206 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
207 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
208 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
209
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
210 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
211
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
212 sub start{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
213 my $obj = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
214 if( @_ ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
215 my $value = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
216
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
217 $obj->{'start'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
218 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
219 return $obj->{'start'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
220
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
221 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
222
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
223
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
224 =head2 end
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
225
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
226 Arg [1] : (optional) int $end - end position to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
227 Example : $translation->end(8);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
228 Description: Getter/setter for the value of end, which is a position within
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
229 the exon given by end_Exon.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
230
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
231 If you need genomic coordinates, use the genomic_end()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
232 method.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
233 Returntype : int
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
234 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
235 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
236 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
237
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
238 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
239
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
240 sub end {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
241 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
242 if( @_ ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
243 my $value = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
244
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
245 $self->{'end'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
246 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
247 return $self->{'end'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
248
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
249 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
250
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
251
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
252 =head2 start_Exon
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
253
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
254 Arg [1] : (optional) Bio::EnsEMBL::Exon - start exon to assign
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
255 Example : $translation->start_Exon($exon1);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
256 Description: Getter/setter for the value of start_Exon, which denotes the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
257 exon at which translation starts (and within this exon, at the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
258 position indicated by start, see above).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
259 Returntype : Bio::EnsEMBL::Exon
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
260 Exceptions : thrown on wrong argument type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
261 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
262 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
263
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
264 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
265
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
266 sub start_Exon {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
267 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
268
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
269 if( @_ ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
270 my $value = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
271 if( !ref $value || !$value->isa('Bio::EnsEMBL::Exon') ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
272 throw("Got to have an Exon object, not a $value");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
273 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
274 $self->{'start_exon'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
275 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
276 return $self->{'start_exon'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
277 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
278
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
279
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
280 =head2 end_Exon
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
281
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
282 Arg [1] : (optional) Bio::EnsEMBL::Exon - start exon to assign
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
283 Example : $translation->start_Exon($exon1);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
284 Description: Getter/setter for the value of end_Exon, which denotes the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
285 exon at which translation ends (and within this exon, at the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
286 position indicated by end, see above).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
287 Returntype : Bio::EnsEMBL::Exon
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
288 Exceptions : thrown on wrong argument type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
289 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
290 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
291
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
292 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
293
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
294 sub end_Exon {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
295 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
296 if( @_ ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
297 my $value = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
298 if( !ref $value || !$value->isa('Bio::EnsEMBL::Exon') ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
299 throw("Got to have an Exon object, not a $value");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
300 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
301 $self->{'end_exon'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
302 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
303
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
304 return $self->{'end_exon'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
305 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
306
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
307 =head2 cdna_start
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
308
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
309 Arg [1] : (optional) Bio::EnsEMBL::Transcript $transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
310 The transcript which this is a translation of.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
311 Example : $translation_cdna_start = $translation->cdna_start();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
312 Description : Returns the start position of the translation in cDNA
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
313 coordinates.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
314 If no transcript is given, the method will use
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
315 TranscriptAdaptor->fetch_by_translation_id() to locate
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
316 the correct transcript.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
317 Return type : Integer
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
318 Exceptions : Throws if the given (optional) argument is not a
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
319 transcript.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
320 Caller : General
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
321 Status : At Risk (Under Development)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
322
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
323 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
324
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
325 sub cdna_start {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
326 my ( $self, $transcript ) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
327
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
328 if ( defined($transcript)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
329 && ( !ref($transcript)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
330 || !$transcript->isa('Bio::EnsEMBL::Transcript') ) )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
331 {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
332 throw("Argument is not a transcript");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
333 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
334
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
335 if ( !exists( $self->{'cdna_start'} ) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
336 if ( !defined($transcript) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
337 # We were not given a transcript, get the transcript out of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
338 # the database.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
339 $transcript = $self->transcript();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
340 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
341
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
342 $self->{'cdna_start'} =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
343 $self->start_Exon()->cdna_coding_start($transcript);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
344 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
345
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
346 return $self->{'cdna_start'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
347 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
348
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
349 =head2 cdna_end
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
350
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
351 Arg [1] : (optional) Bio::EnsEMBL::Transcript $transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
352 The transcript which this is a translation of.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
353 Example : $translation_cdna_end = $translation->cdna_end();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
354 Description : Returns the end position of the translation in cDNA
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
355 coordinates.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
356 If no transcript is given, the method will use
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
357 TranscriptAdaptor->fetch_by_translation_id() to locate
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
358 the correct transcript.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
359 Return type : Integer
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
360 Exceptions : Throws if the given (optional) argument is not a
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
361 transcript.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
362 Caller : General
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
363 Status : At Risk (Under Development)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
364
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
365 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
366
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
367 sub cdna_end {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
368 my ( $self, $transcript ) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
369
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
370 if ( defined($transcript)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
371 && ( !ref($transcript)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
372 || !$transcript->isa('Bio::EnsEMBL::Transcript') ) )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
373 {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
374 throw("Argument is not a transcript");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
375 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
376
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
377 if ( !exists( $self->{'cdna_end'} ) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
378 if ( !defined($transcript) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
379 # We were not given a transcript, get the transcript out of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
380 # the database.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
381 $transcript = $self->transcript();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
382 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
383
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
384 $self->{'cdna_end'} =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
385 $self->end_Exon()->cdna_coding_end($transcript);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
386 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
387
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
388 return $self->{'cdna_end'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
389 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
390
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
391 =head2 genomic_start
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
392
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
393 Args : None
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
394 Example : $translation_genomic_start =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
395 $translation->genomic_start();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
396 Description : Returns the start position of the translation in
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
397 genomic coordinates on the forward strand.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
398 Return type : Integer
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
399 Exceptions : None
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
400 Caller : General
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
401 Status : At Risk (Under Development)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
402
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
403 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
404
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
405 sub genomic_start {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
406 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
407
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
408 if ( !exists $self->{'genomic_start'} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
409 if ( $self->start_Exon()->strand() >= 0 ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
410 $self->{'genomic_start'} =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
411 $self->start_Exon()->start() + ( $self->start() - 1 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
412 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
413 $self->{'genomic_start'} =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
414 $self->end_Exon()->end() - ( $self->end() - 1 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
415 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
416 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
417
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
418 return $self->{'genomic_start'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
419 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
420
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
421 =head2 genomic_end
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
422
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
423 Args : None
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
424 Example : $translation_genomic_end = $translation->genomic_end();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
425 Description : Returns the end position of the translation in genomic
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
426 coordinates on the forward strand.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
427 Return type : Integer
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
428 Exceptions : None
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
429 Caller : General
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
430 Status : At Risk (Under Development)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
431
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
432 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
433
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
434 sub genomic_end {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
435 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
436
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
437 if ( !exists $self->{'genomic_end'} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
438 if ( $self->end_Exon()->strand() >= 0 ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
439 $self->{'genomic_end'} =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
440 $self->end_Exon()->start() + ( $self->end() - 1 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
441 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
442 $self->{'genomic_end'} =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
443 $self->start_Exon()->end() - ( $self->start() - 1 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
444 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
445 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
446
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
447 return $self->{'genomic_end'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
448 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
449
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
450 =head2 version
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
451
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
452 Arg [1] : (optional) string $version - version to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
453 Example : $translation->version(2);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
454 Description: Getter/setter for attribute version
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
455 Returntype : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
456 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
457 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
458 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
459
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
460 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
461
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
462 sub version {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
463 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
464 $self->{'version'} = shift if( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
465 return $self->{'version'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
466 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
467
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
468
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
469 =head2 stable_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
470
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
471 Arg [1] : (optional) string $stable_id - stable ID to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
472 Example : $translation->stable_id('ENSP0059890');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
473 Description: Getter/setter for attribute stable_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
474 Returntype : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
475 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
476 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
477 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
478
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
479 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
480
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
481 sub stable_id {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
482 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
483 $self->{'stable_id'} = shift if( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
484 return $self->{'stable_id'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
485 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
486
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
487 =head2 created_date
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
488
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
489 Arg [1] : (optional) string $created_date - created date to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
490 Example : $translation->created_date('2007-01-10 20:52:00');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
491 Description: Getter/setter for attribute created date
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
492 Returntype : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
493 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
494 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
495 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
496
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
497 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
498
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
499 sub created_date {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
500 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
501 $self->{'created_date'} = shift if ( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
502 return $self->{'created_date'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
503 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
504
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
505
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
506 =head2 modified_date
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
507
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
508 Arg [1] : (optional) string $modified_date - modification date to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
509 Example : $translation->modified_date('2007-01-10 20:52:00');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
510 Description: Getter/setter for attribute modified date
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
511 Returntype : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
512 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
513 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
514 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
515
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
516 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
517
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
518 sub modified_date {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
519 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
520 $self->{'modified_date'} = shift if ( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
521 return $self->{'modified_date'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
522 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
523
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
524
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
525
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
526 =head2 transform
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
527
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
528 Arg [1] : hashref $old_new_exon_map
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
529 a hash that maps old to new exons for a whole gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
530 Description: maps start end end exon according to mapping table.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
531 If an exon is not mapped, just keep the old one.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
532 Returntype : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
533 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
534 Caller : Transcript->transform()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
535 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
536
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
537 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
538
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
539 sub transform {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
540 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
541 my $href_exons = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
542
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
543 my $start_exon = $self->start_Exon();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
544 my $end_exon = $self->end_Exon();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
545
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
546 if ( exists $href_exons->{$start_exon} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
547 $self->start_Exon($href_exons->{$start_exon});
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
548 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
549 # do nothing, the start exon wasnt mapped
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
550 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
551
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
552 if ( exists $href_exons->{$end_exon} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
553 $self->end_Exon($href_exons->{$end_exon});
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
554 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
555 # do nothing, the end exon wasnt mapped
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
556 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
557 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
558
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
559
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
560 =head2 get_all_DBEntries
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
561
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
562 Arg [1] : (optional) String, external database name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
563
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
564 Arg [2] : (optional) String, external_db type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
565
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
566 Example : @dbentries = @{ $translation->get_all_DBEntries() };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
567
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
568 Description: Retrieves DBEntries (xrefs) for this translation.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
569
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
570 This method will attempt to lazy-load DBEntries
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
571 from a database if an adaptor is available and no
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
572 DBEntries are present on the translation (i.e. they
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
573 have not already been added or loaded).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
574
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
575 Returntype : Listref to Bio::EnsEMBL::DBEntry objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
576 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
577 Caller : TranslationAdaptor::store
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
578 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
579
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
580 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
581
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
582 sub get_all_DBEntries {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
583 my ( $self, $ex_db_exp, $ex_db_type ) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
584
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
585 my $cache_name = 'dbentries';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
586
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
587 if ( defined($ex_db_exp) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
588 $cache_name .= $ex_db_exp;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
589 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
590
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
591 if ( defined($ex_db_type) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
592 $cache_name .= $ex_db_type;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
593 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
594
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
595 # if not cached, retrieve all of the xrefs for this translation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
596 if ( !defined( $self->{$cache_name} ) && defined( $self->adaptor() ) )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
597 {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
598 $self->{$cache_name} =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
599 $self->adaptor()->db()->get_DBEntryAdaptor()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
600 ->fetch_all_by_Translation( $self, $ex_db_exp, $ex_db_type );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
601 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
602
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
603 $self->{$cache_name} ||= [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
604
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
605 return $self->{$cache_name};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
606 } ## end sub get_all_DBEntries
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
607
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
608 =head2 get_all_object_xrefs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
609
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
610 Arg [1] : (optional) String, external database name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
611
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
612 Arg [2] : (optional) String, external_db type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
613
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
614 Example : @oxrefs = @{ $translation->get_all_object_xrefs() };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
615
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
616 Description: Retrieves xrefs for this translation.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
617
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
618 This method will attempt to lazy-load xrefs from a
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
619 database if an adaptor is available and no xrefs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
620 are present on the translation (i.e. they have not
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
621 already been added or loaded).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
622
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
623 NB: This method is an alias for the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
624 get_all_DBentries() method.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
625
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
626 Return type: Listref of Bio::EnsEMBL::DBEntry objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
627
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
628 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
629
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
630 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
631
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
632 sub get_all_object_xrefs {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
633 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
634 return $self->get_all_DBEntries(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
635 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
636
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
637 =head2 add_DBEntry
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
638
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
639 Arg [1] : Bio::EnsEMBL::DBEntry $dbe
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
640 The dbEntry to be added
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
641 Example : $translation->add_DBEntry($xref);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
642 Description: Associates a DBEntry with this translation. Note that adding
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
643 DBEntries will prevent future lazy-loading of DBEntries for this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
644 translation (see get_all_DBEntries).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
645 Returntype : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
646 Exceptions : thrown on incorrect argument type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
647 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
648 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
649
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
650 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
651
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
652 sub add_DBEntry {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
653 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
654 my $dbe = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
655
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
656 unless($dbe && ref($dbe) && $dbe->isa('Bio::EnsEMBL::DBEntry')) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
657 throw('Expected DBEntry argument');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
658 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
659
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
660 $self->{'dbentries'} ||= [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
661 push @{$self->{'dbentries'}}, $dbe;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
662 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
663
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
664
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
665 =head2 get_all_DBLinks
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
666
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
667 Arg [1] : String database name (optional)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
668 SQL wildcard characters (_ and %) can be used to
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
669 specify patterns.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
670
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
671 Example : my @dblinks = @{ $translation->get_all_DBLinks() };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
672 my @dblinks = @{ $translation->get_all_DBLinks('Uniprot%') };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
673
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
674 Description: This is here for consistancy with the Transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
675 and Gene classes. It is a synonym for the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
676 get_all_DBEntries() method.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
677
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
678 Return type: Listref to Bio::EnsEMBL::DBEntry objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
679 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
680 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
681 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
682
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
683 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
684
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
685 sub get_all_DBLinks {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
686 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
687 return $self->get_all_DBEntries(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
688 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
689
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
690 =head2 get_all_xrefs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
691
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
692 Arg [1] : String database name (optional)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
693 SQL wildcard characters (_ and %) can be used to
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
694 specify patterns.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
695
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
696 Example : @xrefs = @{ $translation->get_all_xrefs() };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
697 @xrefs = @{ $translation->get_all_xrefs('Uniprot%') };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
698
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
699 Description: This method is here for consistancy with the Gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
700 and Transcript classes. It is an alias for the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
701 get_all_DBLinks() method, which in turn directly
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
702 calls get_all_DBEntries().
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
703
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
704 Return type: Listref of Bio::EnsEMBL::DBEntry objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
705
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
706 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
707
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
708 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
709
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
710 sub get_all_xrefs {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
711 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
712 return $self->get_all_DBLinks(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
713 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
714
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
715 =head2 get_all_ProteinFeatures
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
716
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
717 Arg [1] : (optional) string $logic_name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
718 The analysis logic_name of the features to retrieve. If not
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
719 specified, all features are retrieved instead.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
720 Example : $features = $self->get_all_ProteinFeatures('PFam');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
721 Description: Retrieves all ProteinFeatures associated with this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
722 Translation. If a logic_name is specified, only features with
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
723 that logic_name are returned. If no logic_name is provided all
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
724 associated protein_features are returned.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
725
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
726 ProteinFeatures are lazy-loaded from the database unless they
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
727 added manually to the Translation or had already been loaded.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
728 Returntype : Bio::EnsEMBL::ProteinFeature
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
729 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
730 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
731 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
732
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
733 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
734
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
735 sub get_all_ProteinFeatures {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
736 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
737 my $logic_name = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
738
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
739 if(!$self->{'protein_features'}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
740 my $adaptor = $self->adaptor();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
741 my $dbID = $self->dbID();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
742
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
743 return [] if (!$adaptor || !$dbID);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
744
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
745 my %hash;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
746 $self->{'protein_features'} = \%hash;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
747
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
748 my $pfa = $adaptor->db()->get_ProteinFeatureAdaptor();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
749 my $name;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
750 foreach my $f (@{$pfa->fetch_all_by_translation_id($dbID)}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
751 my $analysis = $f->analysis();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
752 if($analysis) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
753 $name = lc($f->analysis->logic_name());
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
754 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
755 warning("ProteinFeature has no attached analysis\n");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
756 $name = '';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
757 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
758 $hash{$name} ||= [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
759 push @{$hash{$name}}, $f;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
760 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
761 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
762
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
763 # a specific type of protein feature was requested
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
764 if(defined($logic_name)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
765 $logic_name = lc($logic_name);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
766 return $self->{'protein_features'}->{$logic_name} || [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
767 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
768
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
769 my @features = ();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
770
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
771 # all protein features were requested
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
772 foreach my $type (keys %{$self->{'protein_features'}}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
773 push @features, @{$self->{'protein_features'}->{$type}};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
774 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
775
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
776 return \@features;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
777 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
778
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
779
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
780 =head2 get_all_DomainFeatures
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
781
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
782 Example : @domain_feats = @{$translation->get_all_DomainFeatures};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
783 Description: A convenience method which retrieves all protein features
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
784 that are considered to be 'Domain' features. Features which
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
785 are 'domain' features are those with analysis logic names:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
786 'pfscan', 'scanprosite', 'superfamily', 'pfam', 'prints',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
787 'smart', 'pirsf', 'tigrfam'.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
788 Returntype : listref of Bio::EnsEMBL::ProteinFeatures
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
789 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
790 Caller : webcode (protview)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
791 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
792
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
793 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
794
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
795 sub get_all_DomainFeatures{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
796 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
797
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
798 my @features;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
799
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
800 my @types = ('pfscan', #profile (prosite or pfam motifs)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
801 'scanprosite', #prosite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
802 'superfamily',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
803 'pfam',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
804 'smart',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
805 'tigrfam',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
806 'pirsf',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
807 'prints');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
808
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
809 foreach my $type (@types) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
810 push @features, @{$self->get_all_ProteinFeatures($type)};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
811 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
812
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
813 return \@features;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
814 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
815
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
816
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
817 =head2 add_ProteinFeature
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
818
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
819 Arg [1] : Bio::EnsEMBL::ProteinFeature $pf
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
820 The ProteinFeature to be added
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
821 Example : $translation->add_ProteinFeature($pf);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
822 Description: Associates a ProteinFeature with this translation. Note that
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
823 adding ProteinFeatures will prevent future lazy-loading of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
824 ProteinFeatures for this translation (see
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
825 get_all_ProteinFeatures).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
826 Returntype : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
827 Exceptions : thrown on incorrect argument type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
828 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
829 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
830
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
831 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
832
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
833 sub add_ProteinFeature {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
834 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
835 my $pf = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
836
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
837 unless ($pf && ref($pf) && $pf->isa('Bio::EnsEMBL::ProteinFeature')) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
838 throw('Expected ProteinFeature argument');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
839 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
840
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
841 my $analysis = $pf->analysis;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
842 throw("ProteinFeature has no attached Analysis.") unless $analysis;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
843
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
844 push @{ $self->{'protein_features'}->{$analysis->logic_name} }, $pf;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
845 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
846
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
847
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
848 =head2 display_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
849
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
850 Example : print $translation->display_id();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
851 Description: This method returns a string that is considered to be
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
852 the 'display' identifier. For translations this is (depending on
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
853 availability and in this order) the stable Id, the dbID or an
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
854 empty string.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
855 Returntype : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
856 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
857 Caller : web drawing code
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
858 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
859
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
860 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
861
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
862 sub display_id {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
863 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
864 return $self->{'stable_id'} || $self->dbID || '';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
865 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
866
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
867
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
868 =head2 length
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
869
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
870 Example : print "Peptide length =", $translation->length();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
871 Description: Retrieves the length of the peptide sequence (i.e. number of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
872 amino acids) represented by this Translation object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
873 Returntype : int
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
874 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
875 Caller : webcode (protview etc.)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
876 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
877
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
878 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
879
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
880 sub length {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
881 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
882 my $seq = $self->seq();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
883
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
884 return ($seq) ? CORE::length($seq) : 0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
885 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
886
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
887
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
888 =head2 seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
889
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
890 Example : print $translation->seq();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
891 Description: Retrieves a string representation of the peptide sequence
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
892 of this Translation. This retrieves the transcript from the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
893 database and gets its sequence, or retrieves the sequence which
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
894 was set via the constructor.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
895 Returntype : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
896 Exceptions : warning if the sequence is not set and cannot be retrieved from
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
897 the database.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
898 Caller : webcode (protview etc.)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
899 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
900
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
901 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
902
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
903 sub seq {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
904 my ( $self, $sequence ) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
905
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
906 if ( defined($sequence) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
907
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
908 $self->{'seq'} = $sequence;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
909
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
910 } elsif ( !defined( $self->{'seq'} ) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
911
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
912 my $transcript = $self->transcript();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
913
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
914 my $canonical_translation = $transcript->translation();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
915 my $is_alternative;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
916 if(!$canonical_translation) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
917 throw "Transcript does not have a canonical translation";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
918 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
919 if ( defined( $canonical_translation->stable_id() )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
920 && defined( $self->stable_id() ) )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
921 {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
922 # Try stable ID.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
923 $is_alternative =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
924 ( $canonical_translation->stable_id() ne $self->stable_id() );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
925 } elsif ( defined( $canonical_translation->dbID() )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
926 && defined( $self->dbID() ) )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
927 {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
928 # Try dbID.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
929 $is_alternative =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
930 ( $canonical_translation->dbID() != $self->dbID() );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
931 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
932 # Resort to using geomic start/end coordinates.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
933 $is_alternative = ( ($canonical_translation->genomic_start() !=
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
934 $self->genomic_start() )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
935 || ( $canonical_translation->genomic_end() !=
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
936 $self->genomic_end() ) );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
937 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
938
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
939 if ($is_alternative) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
940 # To deal with non-canonical (alternative) translations, subsitute
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
941 # the canonical translation in the transcript with $self for a
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
942 # while.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
943
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
944 $transcript->translation($self);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
945 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
946
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
947 my $seq = $transcript->translate();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
948 if ( defined($seq) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
949 $self->{'seq'} = $seq->seq();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
950 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
951
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
952 if ($is_alternative) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
953 # Reinstate the real canonical translation.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
954
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
955 $transcript->translation($canonical_translation);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
956 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
957
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
958 } ## end elsif ( !defined( $self->...))
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
959
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
960 if ( !defined( $self->{'seq'} ) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
961 return ''; # Empty string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
962 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
963
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
964 return $self->{'seq'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
965
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
966 } ## end sub seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
967
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
968
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
969 =head2 get_all_Attributes
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
970
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
971 Arg [1] : optional string $attrib_code
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
972 The code of the attribute type to retrieve values for.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
973 Example : ($sc_attr) = @{$tl->get_all_Attributes('_selenocysteine')};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
974 @tl_attributes = @{$translation->get_all_Attributes()};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
975 Description: Gets a list of Attributes of this translation.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
976 Optionally just get Attrubutes for given code.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
977 Recognized attribute "_selenocysteine"
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
978 Returntype : listref Bio::EnsEMBL::Attribute
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
979 Exceptions : warning if translation does not have attached adaptor and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
980 attempts lazy load.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
981 Caller : general, modify_translation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
982 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
983
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
984 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
985
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
986 sub get_all_Attributes {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
987 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
988 my $attrib_code = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
989
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
990 if( ! exists $self->{'attributes' } ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
991 if(!$self->adaptor() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
992 # warning('Cannot get attributes without an adaptor.');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
993 return [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
994 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
995
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
996 my $aa = $self->adaptor->db->get_AttributeAdaptor();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
997 $self->{'attributes'} = $aa->fetch_all_by_Translation( $self );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
998 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
999
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1000 if( defined $attrib_code ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1001 my @results = grep { uc($_->code()) eq uc($attrib_code) }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1002 @{$self->{'attributes'}};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1003 return \@results;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1004 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1005 return $self->{'attributes'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1006 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1007 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1008
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1009
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1010 =head2 add_Attributes
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1011
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1012 Arg [1..N] : Bio::EnsEMBL::Attribute $attribute
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1013 Attributes to add.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1014 Example : $translation->add_Attributes($selenocysteine_attribute);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1015 Description: Adds an Attribute to the Translation. Usefull to
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1016 do _selenocysteine.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1017 If you add an attribute before you retrieve any from database,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1018 lazy load will be disabled.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1019 Returntype : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1020 Exceptions : throw on incorrect arguments
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1021 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1022 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1023
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1024 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1025
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1026 sub add_Attributes {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1027 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1028 my @attribs = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1029
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1030 if( ! exists $self->{'attributes'} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1031 $self->{'attributes'} = [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1032 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1033
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1034 for my $attrib ( @attribs ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1035 if( ! $attrib->isa( "Bio::EnsEMBL::Attribute" )) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1036 throw( "Argument to add_Attribute must be a Bio::EnsEMBL::Attribute" );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1037 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1038 push( @{$self->{'attributes'}}, $attrib );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1039 $self->{seq}=undef;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1040 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1041 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1042
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1043
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1044 =head2 get_all_SeqEdits
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1045
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1046 Example : my @seqeds = @{$transcript->get_all_SeqEdits()};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1047 Description: Retrieves all post transcriptional sequence modifications for
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1048 this transcript.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1049 Returntype : Bio::EnsEMBL::SeqEdit
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1050 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1051 Caller : spliced_seq()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1052 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1053
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1054 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1055
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1056 sub get_all_SeqEdits {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1057 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1058
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1059 my @seqeds;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1060
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1061 my $attribs;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1062
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1063 my @edits = ('initial_met', '_selenocysteine', 'amino_acid_sub');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1064
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1065
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1066 foreach my $edit(@edits){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1067 $attribs = $self->get_all_Attributes($edit);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1068
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1069 # convert attributes to SeqEdit objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1070 foreach my $a (@$attribs) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1071 push @seqeds, Bio::EnsEMBL::SeqEdit->new(-ATTRIB => $a);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1072 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1073 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1074 return \@seqeds;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1075 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1076
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1077
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1078 =head2 modify_translation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1079
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1080 Arg [1] : Bio::Seq $peptide
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1081 Example : my $seq = Bio::Seq->new(-SEQ => $dna)->translate();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1082 $translation->modify_translation($seq);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1083 Description: Applies sequence edits such as selenocysteines to the Bio::Seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1084 peptide thats passed in
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1085 Returntype : Bio::Seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1086 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1087 Caller : Bio::EnsEMBL::Transcript->translate
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1088 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1089
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1090 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1091
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1092 sub modify_translation {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1093 my ( $self, $seq ) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1094
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1095 my @seqeds = @{ $self->get_all_SeqEdits() };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1096
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1097 # Sort in reverse order to avoid complication of adjusting
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1098 # downstream edits.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1099 # HACK: The translation ENSP00000420939 somehow makes the next line
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1100 # bomb out ($a or $b becomes undef) if the start() method
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1101 # is used. I haven't been able to find out why. It has 10
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1102 # Selenocysteine seqedits that looks correct.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1103 # /Andreas (release 59)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1104 @seqeds = sort { $b->{'start'} <=> $a->{'start'} } @seqeds;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1105
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1106 # Apply all edits.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1107 my $peptide = $seq->seq();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1108 foreach my $se (@seqeds) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1109 $se->apply_edit( \$peptide );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1110 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1111
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1112 $seq->seq($peptide);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1113
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1114 return $seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1115 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1116
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1117 =head2 load
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1118
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1119 Arg [1] : Boolean $load_xrefs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1120 Load (or don't load) xrefs. Default is to load xrefs.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1121 Example : $translation->load();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1122 Description : The Ensembl API makes extensive use of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1123 lazy-loading. Under some circumstances (e.g.,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1124 when copying genes between databases), all data of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1125 an object needs to be fully loaded. This method
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1126 loads the parts of the object that are usually
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1127 lazy-loaded.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1128 Returns : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1129
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1130 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1131
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1132 sub load {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1133 my ( $self, $load_xrefs ) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1134
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1135 if ( !defined($load_xrefs) ) { $load_xrefs = 1 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1136
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1137 $self->seq();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1138
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1139 $self->stable_id();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1140 $self->get_all_Attributes();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1141 $self->get_all_ProteinFeatures();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1142
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1143 if ($load_xrefs) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1144 $self->get_all_DBEntries();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1145 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1146 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1147
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1148 =head2 temporary_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1149
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1150 Description: DEPRECATED This method should not be needed. Use dbID,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1151 stable_id or something else.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1152
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1153 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1154
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1155 sub temporary_id {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1156 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1157 deprecate( "I cant see what a temporary_id is good for, please use " .
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1158 "dbID or stableID or\n try without an id." );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1159 $self->{'temporary_id'} = shift if( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1160 return $self->{'temporary_id'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1161 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1162
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1163
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1164 =head2 get_all_DASFactories
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1165
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1166 Function : Retrieves a listref of registered DAS objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1167 Returntype: Listref of DAS Objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1168 Exceptions: none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1169 Caller : webcode
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1170 Example : $dasref = $prot->get_all_DASFactories;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1171 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1172
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1173 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1174
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1175 sub get_all_DASFactories {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1176 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1177 return [ $self->adaptor()->db()->_each_DASFeatureFactory ];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1178 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1179
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1180
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1181 =head2 get_all_DAS_Features
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1182
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1183 Example : $features = $prot->get_all_DAS_Features;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1184 Description: Retreives a hash reference to a hash of DAS feature
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1185 sets, keyed by the DNS, NOTE the values of this hash
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1186 are an anonymous array containing:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1187 (1) a pointer to an array of features;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1188 (2) a pointer to the DAS stylesheet
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1189 Returntype : hashref of Bio::SeqFeatures
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1190 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1191 Caller : webcode
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1192 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1193
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1194 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1195
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1196 sub get_all_DAS_Features{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1197 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1198
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1199 my $db = $self->adaptor->db;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1200 my $GeneAdaptor = $db->get_GeneAdaptor;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1201 my $Gene = $GeneAdaptor->fetch_by_translation_stable_id($self->stable_id) || return;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1202 my $slice = $Gene->feature_Slice;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1203
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1204 return $self->SUPER::get_all_DAS_Features($slice);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1205 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1206
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1207 =head2 summary_as_hash
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1208
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1209 Example : $translation_summary = $translation->summary_as_hash();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1210 Description : Retrieves a textual summary of this Translation.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1211 Not inherited from Feature.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1212 Returns : hashref of arrays of descriptive strings
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1213 Status : Intended for internal use
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1214 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1215
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1216 sub summary_as_hash {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1217 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1218 my %summary;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1219 $summary{'ID'} = $self->display_id;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1220 $summary{'genomic_start'} = $self->genomic_start;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1221 $summary{'genomic_end'} = $self->genomic_end;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1222 my $transcript = $self->transcript;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1223 $summary{'Parent'} = $transcript->display_id;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1224 return \%summary;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1225 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1226
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1227 1;