annotate variant_effect_predictor/Bio/EnsEMBL/Gene.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::Gene - Object representing a genes
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25 =head1 SYNOPSIS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27 my $gene = Bio::EnsEMBL::Gene->new(
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28 -START => 123,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29 -END => 1045,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30 -STRAND => 1,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31 -SLICE => $slice
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34 # print gene information
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35 print("gene start:end:strand is "
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36 . join( ":", map { $gene->$_ } qw(start end strand) )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37 . "\n" );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39 # set some additional attributes
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40 $gene->stable_id('ENSG000001');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41 $gene->description('This is the gene description');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43 =head1 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45 A representation of a Gene within the Ensembl system. A gene is a set of one or
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46 more alternative transcripts.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48 =head1 METHODS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52 package Bio::EnsEMBL::Gene;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56 use POSIX;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57 use Bio::EnsEMBL::Feature;
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::Exception qw(throw warning deprecate);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60 use Bio::EnsEMBL::Utils::Scalar qw(assert_ref);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62 use vars qw(@ISA);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63 @ISA = qw(Bio::EnsEMBL::Feature);
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] :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69 int - start postion of the gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70 Arg [-END] :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71 int - end position of the gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72 Arg [-STRAND] :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73 int - 1,-1 tehe strand the gene is on
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74 Arg [-SLICE] :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75 Bio::EnsEMBL::Slice - the slice the gene is on
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76 Arg [-STABLE_ID] :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77 string - the stable identifier of this gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78 Arg [-VERSION] :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79 int - the version of the stable identifier of this gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80 Arg [-EXTERNAL_NAME] :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81 string - the external database name associated with this gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82 Arg [-EXTERNAL_DB] :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83 string - the name of the database the external name is from
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84 Arg [-EXTERNAL_STATUS]:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85 string - the status of the external identifier
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86 Arg [-DISPLAY_XREF]:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87 Bio::EnsEMBL::DBEntry - The external database entry that is used
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88 to label this gene when it is displayed.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89 Arg [-TRANSCRIPTS]:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90 Listref of Bio::EnsEMBL::Transcripts - this gene's transcripts
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 Arg [-CREATED_DATE]:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92 string - the date the gene was created
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93 Arg [-MODIFIED_DATE]:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94 string - the date the gene was last modified
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95 Arg [-DESCRIPTION]:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96 string - the genes description
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97 Arg [-BIOTYPE]:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98 string - the biotype e.g. "protein_coding"
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99 Arg [-STATUS]:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100 string - the gene status i.e. "KNOWN","NOVEL"
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101 Arg [-SOURCE]:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102 string - the genes source, e.g. "ensembl"
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103 Arg [-IS_CURRENT]:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104 Boolean - specifies if this is the current version of the gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105 Arg [-CANONICAL_TRANSCRIPT]:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106 Bio::EnsEMBL::Transcript - the canonical transcript of this gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107 Arg [-CANONICAL_TRANSCRIPT_ID]:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108 integer - the canonical transcript dbID of this gene, if the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109 transcript object itself is not available.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110 Arg [-CANONICAL_ANNOTATION]:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111 string - canonical annotation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113 Example : $gene = Bio::EnsEMBL::Gene->new(...);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114 Description: Creates a new gene object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115 Returntype : Bio::EnsEMBL::Gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122 sub new {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123 my $caller = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125 my $class = ref($caller) || $caller;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126 my $self = $class->SUPER::new(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127 my (
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128 $stable_id, $version,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129 $external_name, $type,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130 $external_db, $external_status,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131 $display_xref, $description,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132 $transcripts, $created_date,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133 $modified_date, $confidence,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134 $biotype, $source,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135 $status, $is_current,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136 $canonical_transcript_id, $canonical_transcript,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137 $canonical_annotation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138 )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139 = rearrange( [
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140 'STABLE_ID', 'VERSION',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141 'EXTERNAL_NAME', 'TYPE',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142 'EXTERNAL_DB', 'EXTERNAL_STATUS',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143 'DISPLAY_XREF', 'DESCRIPTION',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144 'TRANSCRIPTS', 'CREATED_DATE',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
145 'MODIFIED_DATE', 'CONFIDENCE',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
146 'BIOTYPE', 'SOURCE',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
147 'STATUS', 'IS_CURRENT',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
148 'CANONICAL_TRANSCRIPT_ID', 'CANONICAL_TRANSCRIPT',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
149 'CANONICAL_ANNOTATION'
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
150 ],
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
151 @_
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
152 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
153
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
154
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
155 if ($transcripts) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
156 $self->{'_transcript_array'} = $transcripts;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
157 $self->recalculate_coordinates();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
158 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
159
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
160 $self->stable_id($stable_id);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
161 $self->version($version);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
162 $self->{'created_date'} = $created_date;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
163 $self->{'modified_date'} = $modified_date;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
164
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
165 $self->external_name($external_name) if ( defined $external_name );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
166 $self->external_db($external_db) if ( defined $external_db );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
167 $self->external_status($external_status)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
168 if ( defined $external_status );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
169 $self->display_xref($display_xref) if ( defined $display_xref );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
170 $self->biotype($type) if ( defined $type );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
171 $self->biotype($biotype) if ( defined $biotype );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
172 $self->description($description);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
173 $self->status($confidence); # incase old naming is used.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
174 # kept to ensure routine is backwards compatible.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
175 $self->status($status); # add new naming
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
176 $self->source($source);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
177
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
178 # default to is_current
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
179 $is_current = 1 unless (defined($is_current));
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
180 $self->{'is_current'} = $is_current;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
181
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
182 # Add the canonical transcript if we were given one, otherwise add the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
183 # canonical transcript internal ID if we were given one.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
184 if ( defined($canonical_transcript) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
185 $self->canonical_transcript($canonical_transcript);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
186 } elsif ( defined($canonical_transcript_id) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
187 $self->{'canonical_transcript_id'} = $canonical_transcript_id;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
188 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
189
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
190 $self->canonical_annotation($canonical_annotation)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
191 if ( defined $canonical_annotation );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
192
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
193 return $self;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
194 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
195
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
196
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
197 =head2 is_known
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
198
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
199 Example : print "Gene ".$gene->stable_id." is KNOWN\n" if $gene->is_known;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
200 Description: Returns TRUE if this gene has a status of 'KNOWN'
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
201 Returntype : TRUE if known, FALSE otherwise
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
202 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
203 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
204 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
205
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
206 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
207
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
208
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
209 sub is_known{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
210 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
211 return ( $self->{'status'} eq "KNOWN" || $self->{'status'} eq "KNOWN_BY_PROJECTION" );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
212 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
213
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
214
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
215 =head2 external_name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
216
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
217 Arg [1] : (optional) String - the external name to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
218 Example : $gene->external_name('BRCA2');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
219 Description: Getter/setter for attribute external_name.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
220 Returntype : String or undef
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
221 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
222 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
223 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
224
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
225 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
226
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
227 sub external_name {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
228 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
229
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
230 $self->{'external_name'} = shift if (@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
231
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
232 if (defined $self->{'external_name'}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
233 return $self->{'external_name'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
234 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
235
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
236 my $display_xref = $self->display_xref();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
237
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
238 if (defined $display_xref) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
239 return $display_xref->display_id();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
240 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
241 return undef;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
242 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
243 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
244
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
245
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
246 =head2 status
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
247
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
248 Arg [1] : (optional) String - status to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
249 Example : $gene->status('KNOWN');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
250 Description: Getter/setter for attribute status
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
251 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
252 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
253 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
254 Status : Medium Risk
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
255
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
256 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
257
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
258 sub status {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
259 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
260 $self->{'status'} = shift if( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
261 return $self->{'status'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
262 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
263
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
264
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
265 =head2 source
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
266
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
267 Arg [1] : (optional) String - the source to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
268 Example : $gene->source('ensembl');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
269 Description: Getter/setter for attribute source
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
270 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
271 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
272 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
273 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
274
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
275 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
276
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
277 sub source {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
278 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
279 $self->{'source'} = shift if( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
280 return ( $self->{'source'} || "ensembl" );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
281 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
282
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
283
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
284 =head2 external_db
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
285
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
286 Arg [1] : (optional) String - name of external db to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
287 Example : $gene->external_db('HGNC');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
288 Description: Getter/setter for attribute external_db. The db is the one that
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
289 belongs to the external_name.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
290 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
291 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
292 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
293 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
294
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
295 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
296
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
297 sub external_db {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
298 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
299
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
300 $self->{'external_db'} = shift if( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
301
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
302 if( exists $self->{'external_db'} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
303 return $self->{'external_db'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
304 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
305
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
306 my $display_xref = $self->display_xref();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
307
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
308 if( defined $display_xref ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
309 return $display_xref->dbname()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
310 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
311 return undef;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
312 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
313 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
314
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
315
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
316 =head2 external_status
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
317
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
318 Arg [1] : (optional) String - status of the external db
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
319 Example : $gene->external_status('KNOWNXREF');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
320 Description: Getter/setter for attribute external_status. The status of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
321 the external db of the one that belongs to the external_name.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
322 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
323 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
324 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
325 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
326
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
327 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
328
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
329 sub external_status {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
330 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
331
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
332 $self->{'_ext_status'} = shift if ( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
333 return $self->{'_ext_status'} if exists $self->{'_ext_status'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
334
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
335 my $display_xref = $self->display_xref();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
336
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
337 if( defined $display_xref ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
338 return $display_xref->status()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
339 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
340 return undef;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
341 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
342 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
343
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
344
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
345 =head2 description
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
346
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
347 Arg [1] : (optional) String - the description to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
348 Example : $gene->description('This is the gene\'s description');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
349 Description: Getter/setter for gene description
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
350 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
351 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
352 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
353 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
354
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
355 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
356
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
357 sub description {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
358 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
359 $self->{'description'} = shift if( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
360 return $self->{'description'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
361 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
362
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
363
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
364 =head2 equals
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
365
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
366 Arg [1] : Bio::EnsEMBL::Gene gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
367 Example : if ($geneA->equals($geneB)) { ... }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
368 Description : Compares two genes for equality.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
369 The test for eqality goes through the following list
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
370 and terminates at the first true match:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
371
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
372 1. If Bio::EnsEMBL::Feature::equals() returns false,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
373 then the genes are *not* equal.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
374 2. If the biotypes differ, then the genes are *not*
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
375 equal.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
376 3. If both genes have stable IDs: if these are the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
377 same, the genes are equal, otherwise not.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
378 4. If both genes have the same number of transcripts
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
379 and if these are (when compared pair-wise sorted by
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
380 start-position and length) the same, then they are
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
381 equal, otherwise not.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
382
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
383 Return type : Boolean (0, 1)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
384
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
385 Exceptions : Thrown if a non-gene is passed as the argument.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
386
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
387 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
388
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
389 sub equals {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
390 my ( $self, $gene ) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
391
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
392 if ( !defined($gene) ) { return 0 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
393 if ( $self eq $gene ) { return 1 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
394
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
395 assert_ref( $gene, 'Bio::EnsEMBL::Gene' );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
396
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
397 my $feature_equals = $self->SUPER::equals($gene);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
398 if ( defined($feature_equals) && $feature_equals == 0 ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
399 return 0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
400 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
401
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
402 if ( $self->biotype() ne $gene->biotype() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
403 return 0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
404 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
405
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
406 if ( defined( $self->stable_id() ) && defined( $gene->stable_id() ) )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
407 {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
408 if ( $self->stable_id() eq $gene->stable_id() ) { return 1 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
409 else { return 0 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
410 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
411
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
412 my @self_transcripts = sort {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
413 $a->start() <=> $b->start() ||
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
414 $a->length() <=> $b->length()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
415 } @{ $self->get_all_Transcripts() };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
416 my @gene_transcripts = sort {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
417 $a->start() <=> $b->start() ||
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
418 $a->length() <=> $b->length()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
419 } @{ $gene->get_all_Transcripts() };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
420
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
421 if ( scalar(@self_transcripts) != scalar(@gene_transcripts) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
422 return 0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
423 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
424
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
425 while (@self_transcripts) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
426 my $self_transcript = shift(@self_transcripts);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
427 my $gene_transcript = shift(@gene_transcripts);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
428
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
429 if ( !$self_transcript->equals($gene_transcript) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
430 return 0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
431 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
432 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
433
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
434 return 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
435 } ## end sub equals
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
436
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
437 =head2 canonical_transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
438
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
439 Arg [1] : (optional) Bio::EnsEMBL::Transcipt - canonical_transcript object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
440 Example : $gene->canonical_transcript($canonical_transcript);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
441 Description: Getter/setter for the canonical_transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
442 Returntype : Bio::EnsEMBL::Transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
443 Exceptions : Throws if argument is not a transcript object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
444 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
445 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
446
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
447 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
448
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
449 sub canonical_transcript {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
450 my ( $self, $transcript ) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
451
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
452 if ( defined($transcript) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
453 # We're attaching a new canonical transcript.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
454
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
455 assert_ref( $transcript, 'Bio::EnsEMBL::Transcript' );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
456
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
457 # If there's already a canonical transcript, make sure it doesn't
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
458 # think it's still canonical.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
459 if ( defined( $self->{'canonical_transcript'} ) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
460 $self->{'canonical_transcript'}->is_canonical(0);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
461 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
462
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
463 $self->{'canonical_transcript'} = $transcript;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
464 $self->{'canonical_transcript_id'} = $transcript->dbID();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
465
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
466 $transcript->is_canonical(1);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
467
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
468 } elsif ( !defined( $self->{'canonical_transcript'} )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
469 && defined( $self->{'canonical_transcript_id'} )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
470 && $self->{'canonical_transcript_id'} != 0 )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
471 {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
472 # We have not attached a canoncical transcript, but we have the dbID
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
473 # of one.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
474
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
475 if ( defined( $self->adaptor() ) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
476 my $transcript_adaptor =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
477 $self->adaptor()->db()->get_TranscriptAdaptor();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
478
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
479 my $canonical_transcript =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
480 $transcript_adaptor->fetch_by_dbID(
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
481 $self->{'canonical_transcript_id'} );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
482
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
483 if ( defined($canonical_transcript) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
484 # Recusive call...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
485 $self->canonical_transcript($canonical_transcript);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
486 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
487
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
488 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
489 warning( "Gene has no adaptor "
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
490 . "when trying to fetch canonical transcript." );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
491 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
492
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
493 } ## end elsif ( !defined( $self->...))
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
494
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
495 return $self->{'canonical_transcript'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
496 } ## end sub canonical_transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
497
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
498
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
499 =head2 canonical_annotation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
500
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
501 Arg [1] : (optional) String - canonical_annotation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
502 Example : $gene->canonical_annotation('This is the canonical_annotation');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
503 Description: Getter/setter for the canonical_annotation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
504 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
505 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
506 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
507 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
508
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
509 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
510
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
511 sub canonical_annotation {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
512 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
513 $self->{'canonical_annotation'} = shift if( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
514 return $self->{'canonical_annotation'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
515 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
516
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
517 =head2 get_all_Attributes
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
518
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
519 Arg [1] : (optional) String $attrib_code
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
520 The code of the attribute type to retrieve values for
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
521 Example : my ($author) = @{ $gene->get_all_Attributes('author') };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
522 my @gene_attributes = @{ $gene->get_all_Attributes };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
523 Description: Gets a list of Attributes of this gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
524 Optionally just get Attributes for given code.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
525 Returntype : Listref of Bio::EnsEMBL::Attribute
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
526 Exceptions : warning if gene does not have attached adaptor and attempts lazy
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
527 load.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
528 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
529 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
530
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
531 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
532
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
533 sub get_all_Attributes {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
534 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
535 my $attrib_code = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
536
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
537 if ( ! exists $self->{'attributes' } ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
538 if (!$self->adaptor() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
539 return [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
540 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
541
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
542 my $attribute_adaptor = $self->adaptor->db->get_AttributeAdaptor();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
543 $self->{'attributes'} = $attribute_adaptor->fetch_all_by_Gene($self);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
544 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
545
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
546 if ( defined $attrib_code ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
547 my @results = grep { uc($_->code()) eq uc($attrib_code) }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
548 @{$self->{'attributes'}};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
549 return \@results;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
550 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
551 return $self->{'attributes'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
552 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
553 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
554
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
555
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
556 =head2 add_Attributes
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
557
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
558 Arg [1-N] : list of Bio::EnsEMBL::Attribute's @attribs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
559 Attribute(s) to add
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
560 Example : my $attrib = Bio::EnsEMBL::Attribute->new(...);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
561 $gene->add_Attributes($attrib);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
562 Description: Adds an Attribute to the Gene. If you add an attribute before
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
563 you retrieve any from database, lazy loading will be disabled.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
564 Returntype : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
565 Exceptions : throw on incorrect arguments
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
566 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
567 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
568
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
569 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
570
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
571 sub add_Attributes {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
572 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
573 my @attribs = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
574
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
575 if( ! exists $self->{'attributes'} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
576 $self->{'attributes'} = [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
577 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
578
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
579 for my $attrib ( @attribs ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
580 if( ! $attrib->isa( "Bio::EnsEMBL::Attribute" )) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
581 throw( "Argument to add_Attribute has to be an Bio::EnsEMBL::Attribute" );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
582 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
583 push( @{$self->{'attributes'}}, $attrib );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
584 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
585
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
586 return;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
587 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
588
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
589
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
590 =head2 add_DBEntry
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
591
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
592 Arg [1] : Bio::EnsEMBL::DBEntry $dbe
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
593 The dbEntry to be added
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
594 Example : my $dbe = Bio::EnsEMBL::DBEntery->new(...);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
595 $gene->add_DBEntry($dbe);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
596 Description: Associates a DBEntry with this gene. Note that adding DBEntries
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
597 will prevent future lazy-loading of DBEntries for this gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
598 (see get_all_DBEntries).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
599 Returntype : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
600 Exceptions : thrown on incorrect argument type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
601 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
602 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
603
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
604 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
605
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
606 sub add_DBEntry {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
607 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
608 my $dbe = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
609
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
610 unless($dbe && ref($dbe) && $dbe->isa('Bio::EnsEMBL::DBEntry')) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
611 throw('Expected DBEntry argument');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
612 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
613
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
614 $self->{'dbentries'} ||= [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
615 push @{$self->{'dbentries'}}, $dbe;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
616 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
617
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
618
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
619 =head2 get_all_DBEntries
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
620
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
621 Arg [1] : (optional) String, external database name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
622
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
623 Arg [2] : (optional) String, external_db type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
624
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
625 Example : @dbentries = @{ $gene->get_all_DBEntries() };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
626
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
627 Description: Retrieves DBEntries (xrefs) for this gene. This does
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
628 *not* include DBEntries that are associated with the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
629 transcripts and corresponding translations of this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
630 gene (see get_all_DBLinks()).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
631
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
632 This method will attempt to lazy-load DBEntries
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
633 from a database if an adaptor is available and no
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
634 DBEntries are present on the gene (i.e. they have not
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
635 already been added or loaded).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
636
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
637 Return type: Listref of Bio::EnsEMBL::DBEntry objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
638 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
639 Caller : get_all_DBLinks, GeneAdaptor::store
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
640 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
641
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
642 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
643
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
644 sub get_all_DBEntries {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
645 my ( $self, $db_name_exp, $ex_db_type ) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
646
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
647 my $cache_name = 'dbentries';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
648
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
649 if ( defined($db_name_exp) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
650 $cache_name .= $db_name_exp;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
651 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
652
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
653 if ( defined($ex_db_type) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
654 $cache_name .= $ex_db_type;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
655 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
656
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
657 # if not cached, retrieve all of the xrefs for this gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
658 if ( !defined( $self->{$cache_name} ) && defined( $self->adaptor() ) )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
659 {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
660 $self->{$cache_name} =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
661 $self->adaptor()->db()->get_DBEntryAdaptor()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
662 ->fetch_all_by_Gene( $self, $db_name_exp, $ex_db_type );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
663 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
664
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
665 $self->{$cache_name} ||= [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
666
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
667 return $self->{$cache_name};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
668 } ## end sub get_all_DBEntries
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
669
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
670 =head2 get_all_object_xrefs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
671
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
672 Arg [1] : (optional) String, external database name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
673
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
674 Arg [2] : (optional) String, external_db type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
675
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
676 Example : @oxrefs = @{ $gene->get_all_object_xrefs() };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
677
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
678 Description: Retrieves xrefs for this gene. This does *not*
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
679 include xrefs that are associated with the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
680 transcripts or corresponding translations of this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
681 gene (see get_all_xrefs()).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
682
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
683 This method will attempt to lazy-load xrefs from a
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
684 database if an adaptor is available and no xrefs are
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
685 present on the gene (i.e. they have not already been
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
686 added or loaded).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
687
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
688 NB: This method is an alias for the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
689 get_all_DBentries() method.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
690
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
691 Return type: Listref of Bio::EnsEMBL::DBEntry objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
692
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
693 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
694
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
695 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
696
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
697 sub get_all_object_xrefs {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
698 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
699 return $self->get_all_DBEntries(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
700 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
701
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
702 =head2 get_all_DBLinks
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
703
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
704 Arg [1] : String database name (optional)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
705 SQL wildcard characters (_ and %) can be used to
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
706 specify patterns.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
707
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
708 Example : @dblinks = @{ $gene->get_all_DBLinks() };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
709 @dblinks = @{ $gene->get_all_DBLinks('Uniprot%') };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
710
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
711 Description: Retrieves *all* related DBEntries for this gene. This
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
712 includes all DBEntries that are associated with the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
713 transcripts and corresponding translations of this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
714 gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
715
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
716 If you only want to retrieve the DBEntries
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
717 associated with the gene (and not the transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
718 and translations) then you should use the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
719 get_all_DBEntries() call instead.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
720
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
721 Note: Each entry may be listed more than once. No
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
722 uniqueness checks are done. Also if you put in an
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
723 incorrect external database name no checks are done
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
724 to see if this exists, you will just get an empty
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
725 list.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
726
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
727 Return type: Listref of Bio::EnsEMBL::DBEntry objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
728 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
729 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
730 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
731
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
732 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
733
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
734 sub get_all_DBLinks {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
735 my ( $self, $db_name_exp, $ex_db_type ) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
736
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
737 my @links =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
738 @{ $self->get_all_DBEntries( $db_name_exp, $ex_db_type ) };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
739
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
740 # Add all of the transcript and translation xrefs to the return list.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
741 foreach my $transcript ( @{ $self->get_all_Transcripts() } ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
742 push( @links,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
743 @{$transcript->get_all_DBLinks( $db_name_exp, $ex_db_type ) }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
744 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
745 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
746
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
747 return \@links;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
748 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
749
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
750 =head2 get_all_xrefs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
751
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
752 Arg [1] : String database name (optional)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
753 SQL wildcard characters (_ and %) can be used to
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
754 specify patterns.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
755
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
756 Example : @xrefs = @{ $gene->get_all_xrefs() };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
757 @xrefs = @{ $gene->get_all_xrefs('Uniprot%') };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
758
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
759 Description: Retrieves *all* related xrefs for this gene. This
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
760 includes all xrefs that are associated with the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
761 transcripts and corresponding translations of this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
762 gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
763
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
764 If you want to retrieve the xrefs associated
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
765 with only the gene (and not the transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
766 or translations) then you should use the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
767 get_all_object_xrefs() method instead.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
768
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
769 Note: Each entry may be listed more than once. No
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
770 uniqueness checks are done. Also if you put in an
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
771 incorrect external database name no checks are done
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
772 to see if this exists, you will just get an empty
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
773 list.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
774
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
775 NB: This method is an alias for the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
776 get_all_DBLinks() method.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
777
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
778 Return type: Listref of Bio::EnsEMBL::DBEntry objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
779
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
780 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
781
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
782 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
783
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
784 sub get_all_xrefs {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
785 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
786 return $self->get_all_DBLinks(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
787 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
788
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
789 =head2 get_all_Exons
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
790
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
791 Example : my @exons = @{ $gene->get_all_Exons };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
792 Description: Returns a set of all the exons associated with this gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
793 Returntype : Listref of Bio::EnsEMBL::Exon objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
794 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
795 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
796 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
797
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
798 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
799
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
800
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
801 sub get_all_Exons {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
802 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
803
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
804 my %h;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
805 my @out = ();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
806
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
807 foreach my $trans ( @{$self->get_all_Transcripts} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
808 foreach my $e ( @{$trans->get_all_Exons} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
809 $h{$e->start()."-".$e->end()."-".$e->strand()."-".$e->phase()."-".$e->end_phase()} = $e;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
810 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
811 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
812
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
813 push @out, values %h;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
814
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
815 return \@out;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
816 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
817
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
818
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
819 =head2 get_all_homologous_Genes
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
820
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
821 Description: Queries the Ensembl Compara database and retrieves all
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
822 Genes from other species that are orthologous.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
823 REQUIRES properly setup Registry conf file. Meaning that
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
824 one of the aliases for each core db has to be "Genus species"
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
825 e.g. "Homo sapiens" (as in the name column in genome_db table
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
826 in the compara database).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
827 Returntype : listref [
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
828 Bio::EnsEMBL::Gene,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
829 Bio::EnsEMBL::Compara::Homology,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
830 string $species # needed as cannot get spp from Gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
831 ]
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
832 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
833 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
834 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
835
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
836 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
837
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
838 sub get_all_homologous_Genes {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
839 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
840
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
841 if( exists( $self->{'homologues'} ) ){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
842 return $self->{'homologues'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
843 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
844 $self->{'homologues'} = [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
845
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
846 # TODO: Find a robust way of retrieving compara dba directly.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
847 # For now look through all DBAs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
848 my $compara_dba;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
849 foreach my $dba( @{Bio::EnsEMBL::Registry->get_all_DBAdaptors} ){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
850 if( $dba->isa('Bio::EnsEMBL::Compara::DBSQL::DBAdaptor') ){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
851 $compara_dba = $dba;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
852 last;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
853 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
854 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
855 unless( $compara_dba ){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
856 warning("No compara in Bio::EnsEMBL::Registry");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
857 return $self->{'homologues'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
858 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
859
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
860 # Get the compara 'member' corresponding to self
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
861 my $member_adaptor = $compara_dba->get_adaptor('Member');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
862 my $query_member = $member_adaptor->fetch_by_source_stable_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
863 ("ENSEMBLGENE",$self->stable_id);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
864 unless( $query_member ){ return $self->{'homologues'} };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
865
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
866 # Get the compara 'homologies' corresponding to 'member'
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
867 my $homology_adaptor = $compara_dba->get_adaptor('Homology');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
868 my @homolos = @{$homology_adaptor->fetch_all_by_Member($query_member)};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
869 unless( scalar(@homolos) ){ return $self->{'homologues'} };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
870
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
871 # Get the ensembl 'genes' corresponding to 'homologies'
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
872 foreach my $homolo( @homolos ){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
873 foreach my $member_attrib( @{$homolo->get_all_Member_Attribute} ){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
874 my ($member, $attrib) = @{$member_attrib};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
875 my $hstable_id = $member->stable_id;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
876 next if ($hstable_id eq $query_member->stable_id); # Ignore self
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
877 my $hgene = undef;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
878 eval { $hgene = $member->get_Gene;} ;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
879 unless( $hgene ){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
880 # Something up with DB. Create a new gene is best we can do
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
881 $hgene = Bio::EnsEMBL::Gene->new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
882 ( -stable_id=>$hstable_id,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
883 -description=>$member->description, );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
884 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
885 my $hspecies = $member->genome_db->name;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
886 push @{$self->{'homologues'}}, [$hgene,$homolo,$hspecies];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
887 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
888 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
889 return $self->{'homologues'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
890 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
891
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
892
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
893 =head2 biotype
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
894
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
895 Arg [1] : (optional) String - the biotype to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
896 Example : $gene->biotype("protein_coding");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
897 Description: Getter/setter for the attribute biotype
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
898 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
899 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
900 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
901 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
902
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
903 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
904
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
905 sub biotype {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
906 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
907
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
908 $self->{'biotype'} = shift if( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
909 return ( $self->{'biotype'} || "protein_coding" );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
910 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
911
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
912
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
913 =head2 add_Transcript
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
914
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
915 Arg [1] : Bio::EnsEMBL::Transcript $trans
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
916 The transcript to add to the gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
917 Example : my $transcript = Bio::EnsEMBL::Transcript->new(...);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
918 $gene->add_Transcript($transcript);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
919 Description: Adds another Transcript to the set of alternatively
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
920 spliced Transcripts of this gene. If it shares exons
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
921 with another Transcript, these should be object-identical.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
922 Returntype : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
923 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
924 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
925 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
926
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
927 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
928
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
929 sub add_Transcript {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
930 my ($self, $trans) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
931
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
932 if( !ref $trans || ! $trans->isa("Bio::EnsEMBL::Transcript") ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
933 throw("$trans is not a Bio::EnsEMBL::Transcript!");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
934 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
935
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
936 $self->{'_transcript_array'} ||= [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
937 push(@{$self->{'_transcript_array'}},$trans);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
938
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
939 $self->recalculate_coordinates();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
940 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
941
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
942
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
943 =head2 get_all_Transcripts
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
944
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
945 Example : my @transcripts = @{ $gene->get_all_Transcripts };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
946 Description: Returns the Transcripts in this gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
947 Returntype : Listref of Bio::EnsEMBL::Transcript objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
948 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
949 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
950 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
951
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
952 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
953
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
954 sub get_all_Transcripts {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
955 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
956
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
957 if( ! exists $self->{'_transcript_array'} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
958 if( defined $self->adaptor() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
959 my $ta = $self->adaptor()->db()->get_TranscriptAdaptor();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
960 my $transcripts = $ta->fetch_all_by_Gene( $self );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
961 $self->{'_transcript_array'} = $transcripts;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
962 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
963 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
964 return $self->{'_transcript_array'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
965 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
966
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
967
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
968 =head2 get_all_alt_alleles
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
969
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
970 Example : my @alt_genes = @{ $gene->get_all_alt_alleles };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
971 foreach my $alt_gene (@alt_genes) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
972 print "Alternate allele: " . $alt_gene->stable_id() . "\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
973 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
974 Description: Returns a listref of Gene objects that represent this Gene on
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
975 an alternative haplotype. Empty list if there is no such
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
976 Gene (eg there is no overlapping haplotype).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
977 Returntype : listref of Bio::EnsEMBL::Gene objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
978 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
979 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
980 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
981
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
982 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
983
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
984 sub get_all_alt_alleles {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
985 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
986 my $result = $self->adaptor()->fetch_all_alt_alleles( $self );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
987 return $result;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
988 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
989
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
990
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
991 =head2 version
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
992
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
993 Arg [1] : (optional) Int
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
994 A version number for the stable_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
995 Example : $gene->version(2);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
996 Description: Getter/setter for version number
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
997 Returntype : Int
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
998 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
999 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1000 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1001
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1002 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1003
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1004 sub version {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1005 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1006 $self->{'version'} = shift if(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1007 return $self->{'version'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1008 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1009
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1010
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1011 =head2 stable_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1012
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1013 Arg [1] : (optional) String - the stable ID to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1014 Example : $gene->stable_id("ENSG0000000001");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1015 Description: Getter/setter for stable id for this gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1016 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1017 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1018 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1019 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1020
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1021 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1022
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1023 sub stable_id {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1024 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1025 $self->{'stable_id'} = shift if(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1026 return $self->{'stable_id'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1027 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1028
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1029
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1030 =head2 is_current
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1031
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1032 Arg [1] : Boolean $is_current
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1033 Example : $gene->is_current(1)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1034 Description: Getter/setter for is_current state of this gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1035 Returntype : Int
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1036 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1037 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1038 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1039
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1040 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1041
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1042 sub is_current {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1043 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1044 $self->{'is_current'} = shift if (@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1045 return $self->{'is_current'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1046 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1047
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1048
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1049 =head2 created_date
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1050
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1051 Arg [1] : (optional) String - created date to set (as a UNIX time int)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1052 Example : $gene->created_date('1141948800');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1053 Description: Getter/setter for attribute created_date
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1054 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1055 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1056 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1057 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1058
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1059 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1060
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1061 sub created_date {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1062 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1063 $self->{'created_date'} = shift if ( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1064 return $self->{'created_date'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1065 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1066
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1067
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1068 =head2 modified_date
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1069
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1070 Arg [1] : (optional) String - modified date to set (as a UNIX time int)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1071 Example : $gene->modified_date('1141948800');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1072 Description: Getter/setter for attribute modified_date
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1073 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1074 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1075 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1076 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1077
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1078 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1079
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1080 sub modified_date {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1081 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1082 $self->{'modified_date'} = shift if ( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1083 return $self->{'modified_date'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1084 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1085
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1086
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1087 =head2 transform
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1088
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1089 Arg [1] : String - coordinate system name to transform to
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1090 Arg [2] : String - coordinate system version
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1091 Example : my $new_gene = $gene->transform('supercontig');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1092 Description: Moves this gene to the given coordinate system. If this gene has
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1093 Transcripts attached, they move as well.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1094 Returntype : Bio::EnsEMBL::Gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1095 Exceptions : throw on wrong parameters
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1096 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1097 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1098
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1099 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1100
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1101 sub transform {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1102 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1103
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1104 # catch for old style transform calls
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1105 if( !@_ || ( ref $_[0] && ($_[0]->isa( "Bio::EnsEMBL::Slice" ) or $_[0]->isa( "Bio::EnsEMBL::LRGSlice" )) )) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1106 deprecate('Calling transform without a coord system name is deprecated.');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1107 return $self->_deprecated_transform(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1108 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1109
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1110 my $new_gene = $self->SUPER::transform(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1111
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1112 if ( !defined($new_gene) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1113 # check if this gene projects at all to requested coord system,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1114 # if not we are done.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1115 my @segments = @{ $self->project(@_) };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1116 if ( !@segments ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1117 return undef;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1118 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1119 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1120
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1121 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1122 # If you are transforming the gene then make sure the transcripts and exons are loaded
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1123 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1124
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1125 foreach my $tran (@{$self->get_all_Transcripts}){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1126 $tran->get_all_Exons();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1127 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1128
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1129 if( exists $self->{'_transcript_array'} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1130 my @new_transcripts;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1131 my ( $strand, $slice );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1132 my $low_start = POSIX::INT_MAX;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1133 my $hi_end = POSIX::INT_MIN;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1134 for my $old_transcript ( @{$self->{'_transcript_array'}} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1135 my $new_transcript = $old_transcript->transform( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1136 # this can fail if gene transform failed
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1137
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1138 return undef unless $new_transcript;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1139
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1140 if( ! defined $new_gene ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1141 if( $new_transcript->start() < $low_start ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1142 $low_start = $new_transcript->start();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1143 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1144 if( $new_transcript->end() > $hi_end ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1145 $hi_end = $new_transcript->end();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1146 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1147 $slice = $new_transcript->slice();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1148 $strand = $new_transcript->strand();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1149 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1150 push( @new_transcripts, $new_transcript );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1151 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1152
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1153 if( ! defined $new_gene ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1154 %$new_gene = %$self;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1155 bless $new_gene, ref( $self );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1156
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1157 $new_gene->start( $low_start );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1158 $new_gene->end( $hi_end );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1159 $new_gene->strand( $strand );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1160 $new_gene->slice( $slice );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1161 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1162
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1163 $new_gene->{'_transcript_array'} = \@new_transcripts;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1164 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1165 return $new_gene;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1166 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1167
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1168
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1169 =head2 transfer
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1170
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1171 Arg [1] : Bio::EnsEMBL::Slice $destination_slice
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1172 Example : my $new_gene = $gene->transfer($slice);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1173 Description: Moves this Gene to given target slice coordinates. If Transcripts
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1174 are attached they are moved as well. Returns a new gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1175 Returntype : Bio::EnsEMBL::Gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1176 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1177 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1178 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1179
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1180 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1181
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1182 sub transfer {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1183 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1184
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1185 my $new_gene = $self->SUPER::transfer( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1186 return undef unless $new_gene;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1187
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1188 if( exists $self->{'_transcript_array'} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1189 my @new_transcripts;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1190 for my $old_transcript ( @{$self->{'_transcript_array'}} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1191 my $new_transcript = $old_transcript->transfer( @_ );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1192 push( @new_transcripts, $new_transcript );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1193 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1194 $new_gene->{'_transcript_array'} = \@new_transcripts;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1195 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1196 return $new_gene;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1197 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1198
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1199
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1200 =head2 display_xref
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1201
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1202 Arg [1] : (optional) Bio::EnsEMBL::DBEntry - the display xref to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1203 Example : $gene->display_xref($db_entry);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1204 Description: Getter/setter display_xref for this gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1205 Returntype : Bio::EnsEMBL::DBEntry
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1206 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1207 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1208 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1209
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1210 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1211
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1212 sub display_xref {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1213 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1214 $self->{'display_xref'} = shift if(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1215 return $self->{'display_xref'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1216 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1217
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1218
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1219 =head2 display_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1220
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1221 Example : print $gene->display_id();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1222 Description: This method returns a string that is considered to be
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1223 the 'display' identifier. For genes this is (depending on
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1224 availability and in this order) the stable Id, the dbID or an
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1225 empty string.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1226 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1227 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1228 Caller : web drawing code
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1229 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1230
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1231 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1232
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1233 sub display_id {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1234 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1235 return $self->{'stable_id'} || $self->dbID || '';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1236 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1237
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1238
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1239 =head2 recalculate_coordinates
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1240
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1241 Example : $gene->recalculate_coordinates;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1242 Description: Called when transcript added to the gene, tries to adapt the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1243 coords for the gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1244 Returntype : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1245 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1246 Caller : internal
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1247 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1248
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1249 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1250
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1251 sub recalculate_coordinates {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1252 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1253
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1254 my $transcripts = $self->get_all_Transcripts();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1255
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1256 return if(!$transcripts || !@$transcripts);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1257
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1258 my ( $slice, $start, $end, $strand );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1259 $slice = $transcripts->[0]->slice();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1260 $strand = $transcripts->[0]->strand();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1261 $start = $transcripts->[0]->start();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1262 $end = $transcripts->[0]->end();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1263
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1264 my $transsplicing = 0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1265
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1266 for my $t ( @$transcripts ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1267 if( $t->start() < $start ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1268 $start = $t->start();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1269 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1270
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1271 if( $t->end() > $end ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1272 $end = $t->end();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1273 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1274
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1275 if( $t->slice()->name() ne $slice->name() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1276 throw( "Transcripts with different slices not allowed on one Gene" );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1277 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1278
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1279 if( $t->strand() != $strand ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1280 $transsplicing = 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1281 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1282 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1283 if( $transsplicing ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1284 warning( "Gene contained trans splicing event" );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1285 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1286
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1287 $self->start( $start );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1288 $self->end( $end );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1289 $self->strand( $strand );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1290 $self->slice( $slice );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1291 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1292
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1293
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1294 =head2 get_all_DASFactories
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1295
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1296 Example : $dasref = $prot->get_all_DASFactories
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1297 Description: Retrieves a listref of registered DAS objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1298 TODO: Abstract to a DBLinkContainer obj
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1299 Returntype : [ DAS_objects ]
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1300 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1301 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1302 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1303
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1304 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1305
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1306 sub get_all_DASFactories {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1307 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1308 return [ $self->adaptor()->db()->_each_DASFeatureFactory ];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1309 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1310
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1311
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1312 =head2 get_all_DAS_Features
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1313
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1314 Example : $features = $prot->get_all_DAS_Features;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1315 Description: Retreives a hash reference to a hash of DAS feature
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1316 sets, keyed by the DNS, NOTE the values of this hash
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1317 are an anonymous array containing:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1318 (1) a pointer to an array of features
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1319 (2) a pointer to the DAS stylesheet
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1320 Returntype : hashref of Bio::SeqFeatures
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1321 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1322 Caller : webcode
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1323 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1324
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1325 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1326
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1327 sub get_all_DAS_Features{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1328 my ($self, @args) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1329 my $slice = $self->feature_Slice;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1330 return $self->SUPER::get_all_DAS_Features($slice);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1331 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1332
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1333
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1334
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1335
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1336 =head2 add_unconventional_transcript_association
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1337
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1338 Arg [1] : Bio::EnsEMBL::Transcript $trans
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1339 The transcript to associate with the gene, in an unconventional manner.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1340 Arg [2] : String $type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1341 The type of association between this gene and this transcript, e.g.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1342 "antisense","sense_intronic","sense_overlaping_exonic","chimeric_sense_exonic"
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1343 Example : my $transcript = Bio::EnsEMBL::Transcript->new(...);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1344 $gene->add_unconventional_transcript_association($transcript, "antisense");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1345 Description: Associate a transcript with this gene in a way that is
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1346 non-conventional.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1347 Returntype : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1348 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1349 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1350 Status : At Risk.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1351
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1352 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1353
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1354 sub add_unconventional_transcript_association {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1355
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1356 my ($self, $transcript, $type) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1357
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1358 if( !ref $transcript || ! $transcript->isa("Bio::EnsEMBL::Transcript") ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1359 throw("$transcript is not a Bio::EnsEMBL::Transcript!");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1360 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1361
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1362 my $uta = Bio::EnsEMBL::UnconventionalTranscriptAssociation->new($transcript, $self, $type);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1363 $self->{'_unconventional_transcript_array'} ||= [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1364 push(@{$self->{'_unconventional_transcript_array'}}, $uta);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1365
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1366 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1367
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1368
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1369 =head2 get_all_unconventional_transcript_associations
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1370
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1371 Arg [1] : (optional) String - Only get transcripts where the association
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1372 between this gene and the transcripts is of a certain type.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1373 Example : my @transcripts = @{ $gene->get_all_unconventional_transcript_associations, "antisense" };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1374 Description: Returns the unconventional transcripts associated with this gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1375 Returntype : Listref of Bio::EnsEMBL::UnconventionalTranscriptAssociation objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1376 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1377 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1378 Status : At risk.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1379
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1380 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1381
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1382 sub get_all_unconventional_transcript_associations {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1383
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1384 my ($self, $type) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1385
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1386 if( ! exists $self->{'_unconventional_transcript_array'} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1387 $self->{'_unconventional_transcript_array'} = [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1388 if( defined $self->adaptor() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1389 my $utaa = $self->adaptor()->db()->get_UnconventionalTranscriptAssociationAdaptor();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1390 my $utas = $utaa->fetch_all_by_gene( $self, $type );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1391 $self->{'_unconventional_transcript_array'} = $utas;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1392 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1393 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1394
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1395 return $self->{'_unconventional_transcript_array'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1396 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1397
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1398 =head2 remove_unconventional_transcript_associations
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1399
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1400 Args : None
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1401 Example : $gene->remove_unconventional_transcript_associations();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1402 Description: Returns the unconventional transcripts associated with this gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1403 Returntype : Listref of Bio::EnsEMBL::UnconventionalTranscriptAssociation objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1404 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1405 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1406 Status : At risk.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1407
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1408 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1409
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1410 sub remove_unconventional_transcript_associations {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1411
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1412 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1413
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1414 $self->{'_unconventional_transcript_array'} = [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1415
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1416 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1417
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1418 =head2 load
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1419
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1420 Arg [1] : Boolean $load_xrefs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1421 Load (or don't load) xrefs. Default is to load xrefs.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1422 Example : $gene->load();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1423 Description : The Ensembl API makes extensive use of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1424 lazy-loading. Under some circumstances (e.g.,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1425 when copying genes between databases), all data of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1426 an object needs to be fully loaded. This method
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1427 loads the parts of the object that are usually
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1428 lazy-loaded. It will also call the equivalent
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1429 method on all the transcripts of the gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1430 Returns :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1431
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1432 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1433
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1434 sub load {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1435 my ( $self, $load_xrefs ) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1436
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1437 if ( !defined($load_xrefs) ) { $load_xrefs = 1 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1438
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1439 foreach my $transcript ( @{ $self->get_all_Transcripts() } ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1440 $transcript->load($load_xrefs);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1441 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1442
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1443 $self->analysis();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1444 $self->get_all_Attributes();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1445 $self->stable_id();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1446 $self->canonical_transcript();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1447
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1448 if ($load_xrefs) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1449 $self->get_all_DBEntries();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1450 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1451 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1452
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1453 =head2 is_ref
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1454
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1455 Description: getter setter for the gene attribute is_ref
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1456 Arg [1] : (optional) 1 or 0
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1457 return : boolean
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1458
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1459 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1460
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1461 sub is_reference{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1462 my ( $self, $is_ref) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1463
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1464 if(defined($is_ref)){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1465 $self->{'is_ref'} = $is_ref;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1466 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1467 else{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1468 $self->{'is_ref'} = $self->adaptor->is_ref($self->dbID);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1469 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1470 return $self->{'is_ref'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1471 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1472
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1473 =head2 summary_as_hash
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1474
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1475 Example : $gene_summary = $gene->summary_as_hash();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1476 Description : Extends Feature::summary_as_hash
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1477 Retrieves a summary of this Gene object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1478
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1479 Returns : hashref of arrays of descriptive strings
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1480 Status : Intended for internal use
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1481 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1482
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1483 sub summary_as_hash {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1484 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1485 my $summary_ref = $self->SUPER::summary_as_hash;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1486 $summary_ref->{'description'} = $self->description;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1487 $summary_ref->{'biotype'} = $self->biotype;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1488 $summary_ref->{'external_name'} = $self->external_name;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1489 return $summary_ref;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1490 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1491
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1492
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1493 ###########################
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1494 # DEPRECATED METHODS FOLLOW
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1495 ###########################
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1496
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1497 =head2 DEPRECATED add_DBLink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1498
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1499 Description: DEPRECATED This method has been deprecated in favour of the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1500 add_DBEntry method. Objects are responible for holding only
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1501 xrefs directly associated with themselves now.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1502
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1503 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1504
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1505
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1506 sub add_DBLink{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1507 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1508
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1509 throw("add_DBLink is deprecated. You probably want add_DBEntry.");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1510
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1511 # unless(defined $value && ref $value
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1512 # && $value->isa('Bio::Annotation::DBLink') ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1513 # throw("This [$value] is not a DBLink");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1514 # }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1515
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1516 # if( !defined $self->{'_db_link'} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1517 # $self->{'_db_link'} = [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1518 # }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1519
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1520 # push(@{$self->{'_db_link'}},$value);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1521 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1522
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1523
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1524 =head2 temporary_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1525
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1526 Function: DEPRECATED: Use dbID or stable_id or something else instead
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1527
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1528 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1529
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1530 sub temporary_id {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1531 my ($obj,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1532 deprecate( "I cant see what a temporary_id is good for, please use " .
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1533 "dbID or stableID or\n try without an id." );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1534 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1535 $obj->{'temporary_id'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1536 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1537 return $obj->{'temporary_id'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1538 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1539
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1540
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1541 =head2 chr_name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1542
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1543 Description: DEPRECATED. Use project, tranform, or transfer to obtain this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1544 gene in another coord system. Use $gene->slice->seq_region_name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1545 to get the name of the underlying coord system. Or
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1546 $gene->slice->name().
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1547
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1548 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1549
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1550 sub chr_name {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1551 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1552
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1553 deprecate( "Use project() to obtain other coordinate systems" );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1554
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1555 my $gene_slice = $self->slice();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1556 if( $gene_slice->coord_system()->name eq "chromosome" ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1557 return $gene_slice->seq_region_name();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1558 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1559
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1560 my $coords = $self->project( "toplevel" );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1561
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1562 if( @$coords ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1563 return $coords->[0]->[2]->seq_region_name();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1564 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1565 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1566
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1567
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1568 =head2 fetch_coded_for_regulatory_factors
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1569
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1570 Arg [1] : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1571 Example : $gene->fetch_coded_for_regualtory_factors()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1572 Description: DEPRECATED: Fetches any regulatory_factors that are coded for by
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1573 this gene.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1574 Returntype : Listref of Bio::Ensembl::RegulatoryFactor
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1575 Exceptions :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1576 Caller : ?
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1577 Status : At Risk
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1578 : under development
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1579
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1580 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1581
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1582 sub fetch_coded_for_regulatory_factors {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1583
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1584 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1585
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1586 my $rfa = $self->adaptor->db->get_RegulatoryFactorAdaptor();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1587
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1588 return $rfa->fetch_factors_coded_for_by_gene($self);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1589
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1590 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1591
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1592
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1593 =head2 type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1594
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1595 Description: DEPRECATED. Use biotype() instead.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1596
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1597 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1598
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1599 sub type {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1600 deprecate("Use biotype() instead");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1601 biotype(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1602 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1603
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1604
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1605 =head2 confidence
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1606
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1607 Description: DEPRECATED. Use status() instead.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1608
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1609 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1610
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1611 sub confidence {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1612 deprecate("Use status() instead");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1613 status(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1614 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1615
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1616
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1617 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1618