annotate variant_effect_predictor/Bio/EnsEMBL/Gene.pm @ 0:1f6dce3d34e0

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