annotate variant_effect_predictor/Bio/EnsEMBL/DBSQL/OperonTranscriptAdaptor.pm @ 3:d30fa12e4cc5 default tip

Merge heads 2:a5976b2dce6f and 1:09613ce8151e which were created as a result of a recently fixed bug.
author devteam <devteam@galaxyproject.org>
date Mon, 13 Jan 2014 10:38:30 -0500
parents 1f6dce3d34e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 Copyright (c) 1999-2012 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15 developers list at <dev@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 Bio::EnsEMBL::DBSQL::OperonAdaptor - Database adaptor for the retrieval and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 storage of OperonTranscript objects
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 my $operon_transcript_adaptor = Bio::EnsEMBL::DBSQL::OperonTranscriptAdaptor->new($dba);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 $operon_transcript_adaptor->store($operon_transcript);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 my $operon_transcript2 = $operon_transcript_adaptor->fetch_by_dbID( $operon->dbID() );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 my $operon_transcripts = $operon_transcript_adaptor->fetch_all_by_gene( $gene );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 This is a database aware adaptor for the retrieval and storage of operon
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 transcript objects.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 package Bio::EnsEMBL::DBSQL::OperonTranscriptAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 use Bio::EnsEMBL::Utils::Exception qw( deprecate throw warning );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 use Bio::EnsEMBL::Utils::Scalar qw( assert_ref );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 use Bio::EnsEMBL::DBSQL::SliceAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 use Bio::EnsEMBL::DBSQL::BaseFeatureAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 use Bio::EnsEMBL::DBSQL::DBAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 use Bio::EnsEMBL::Operon;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 use Bio::EnsEMBL::OperonTranscript;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 use Bio::EnsEMBL::Utils::SqlHelper;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 use vars '@ISA';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 @ISA = qw(Bio::EnsEMBL::DBSQL::BaseFeatureAdaptor);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 # _tables
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 # Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 # Description: PROTECTED implementation of superclass abstract method.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 # Returns the names, aliases of the tables to use for queries.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 # Returntype : list of listrefs of strings
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 # Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 # Caller : interna
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 # Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 sub _tables {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 return ( [ 'operon_transcript', 'o' ] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 # _columns
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 # Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 # Example : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 # Description: PROTECTED implementation of superclass abstract method.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 # Returns a list of columns to use for queries.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 # Returntype : list of strings
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 # Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 # Caller : internal
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 # Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 sub _columns {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 my $created_date =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 $self->db()->dbc()->from_date_to_seconds("o.created_date");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 my $modified_date =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 $self->db()->dbc()->from_date_to_seconds("o.modified_date");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 return ( 'o.operon_transcript_id', 'o.seq_region_id',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 'o.seq_region_start', 'o.seq_region_end',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 'o.seq_region_strand', 'o.display_label',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 'o.analysis_id', 'o.stable_id',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 'o.version', $created_date,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 $modified_date );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 =head2 list_dbIDs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 Example : @ot_ids = @{$ot_adaptor->list_dbIDs()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 Description: Gets an array of internal ids for all operon_transcripts in the current db
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 Arg[1] : <optional> int. not 0 for the ids to be sorted by the seq_region.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 Returntype : Listref of Ints
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 sub list_dbIDs {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 my ( $self, $ordered ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 return $self->_list_dbIDs( "operon_transcript", undef, $ordered );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 =head2 list_stable_ids
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 Example : @stable_ot_ids = @{$ot_adaptor->list_stable_ids()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 Description: Gets an listref of stable ids for all operon_transcripts in the current db
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 Returntype : reference to a list of strings
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 sub list_stable_ids {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 return $self->_list_dbIDs( "operon_transcript", "stable_id" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 sub list_seq_region_ids {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 return $self->_list_seq_region_ids('operon');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 =head2 fetch_by_stable_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 Arg [1] : String $id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 The stable ID of the operon_transcript to retrieve
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 Example : $operon_transcript = $operon_transcript_adaptor->fetch_by_stable_id('ENSG00000148944');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 Description: Retrieves a operon_transcript object from the database via its stable id.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 The operon_transcript will be retrieved in its native coordinate system (i.e.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 in the coordinate system it is stored in the database). It may
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 be converted to a different coordinate system through a call to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 transform() or transfer(). If the operon_transcript or exon is not found
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 undef is returned instead.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 Returntype : Bio::EnsEMBL::OperonTranscript or undef
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 Exceptions : if we cant get the operon_transcript in given coord system
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 sub fetch_by_stable_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 my ( $self, $stable_id ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 my $constraint = "o.stable_id = ?";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 $self->bind_param_generic_fetch( $stable_id, SQL_VARCHAR );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 my ($operon_transcript) = @{ $self->generic_fetch($constraint) };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 return $operon_transcript;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 =head2 fetch_by_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 Arg [1] : String $label - name of operon transcript to fetch
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 Example : my $operon_transcript = $operonAdaptor->fetch_by_name("ECK0012121342");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 Description: Returns the operon transcript which has the given display label or undef if
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 there is none. If there are more than 1, only the first is
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 reported.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 Returntype : Bio::EnsEMBL::OperonTranscript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 sub fetch_by_name {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 my $label = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 my $constraint = "o.display_label = ?";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 $self->bind_param_generic_fetch( $label, SQL_VARCHAR );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 my ($operon) = @{ $self->generic_fetch($constraint) };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 return $operon;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 =head2 fetch_all
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 Example : $operon_transcripts = $operon_adaptor->fetch_all();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 Description : Retrieves all operon transcripts stored in the database.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 Returntype : listref of Bio::EnsEMBL::OperonTranscript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 sub fetch_all {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 my $constraint = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 my @operon_transcripts = @{ $self->generic_fetch($constraint) };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 return \@operon_transcripts;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 =head2 fetch_all_versions_by_stable_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 Arg [1] : String $stable_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 The stable ID of the operon_transcript to retrieve
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 Example : $operon_transcript = $operon_transcript_adaptor->fetch_all_versions_by_stable_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 ('ENSG00000148944');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 Description : Similar to fetch_by_stable_id, but retrieves all versions of a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 operon_transcript stored in the database.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 Returntype : listref of Bio::EnsEMBL::OperonTranscript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 Exceptions : if we cant get the operon_transcript in given coord system
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 sub fetch_all_versions_by_stable_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 my ( $self, $stable_id ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 my $constraint = "o.stable_id = ?";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 $self->bind_param_generic_fetch( $stable_id, SQL_VARCHAR );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 return $self->generic_fetch($constraint);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 =head2 fetch_all_by_Slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 Arg [1] : Bio::EnsEMBL::Slice $slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 The slice to fetch operon_transcripts on.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 Arg [2] : (optional) string $logic_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 the logic name of the type of features to obtain
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 Arg [3] : (optional) boolean $load_transcripts
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 if true, transcripts will be loaded immediately rather than
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 lazy loaded later.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 Arg [4] : (optional) string $source
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 the source name of the features to obtain.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 Arg [5] : (optional) string biotype
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 the biotype of the features to obtain.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 Example : @operon_transcripts = @{$operon_transcript_adaptor->fetch_all_by_Slice()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 Description: Overrides superclass method to optionally load transcripts
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 immediately rather than lazy-loading them later. This
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 is more efficient when there are a lot of operon_transcripts whose
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 transcripts are going to be used.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 Returntype : reference to list of operon_transcripts
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 Exceptions : thrown if exon cannot be placed on transcript slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 Caller : Slice::get_all_OperonTranscripts
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 sub fetch_all_by_Slice {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 my ( $self, $slice, $logic_name, $load_transcripts ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 my $constraint = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 my $operons =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 $self->SUPER::fetch_all_by_Slice_constraint( $slice, $constraint,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 $logic_name );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 # If there are less than two operons, still do lazy-loading.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 if ( !$load_transcripts || @$operons < 2 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 return $operons;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 # Preload all of the transcripts now, instead of lazy loading later,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 # faster than one query per transcript.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 # First check if transcripts are already preloaded.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277 # FIXME: Should check all transcripts.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278 if ( exists( $operons->[0]->{'_operon_transcript_array'} ) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279 return $operons;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 # Get extent of region spanned by transcripts.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283 my ( $min_start, $max_end );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 foreach my $o (@$operons) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285 if ( !defined($min_start) || $o->seq_region_start() < $min_start ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 $min_start = $o->seq_region_start();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 if ( !defined($max_end) || $o->seq_region_end() > $max_end ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289 $max_end = $o->seq_region_end();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 my $ext_slice;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 if ( $min_start >= $slice->start() && $max_end <= $slice->end() ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 $ext_slice = $slice;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 my $sa = $self->db()->get_SliceAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 $ext_slice =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300 $sa->fetch_by_region( $slice->coord_system->name(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 $slice->seq_region_name(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302 $min_start,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303 $max_end,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 $slice->strand(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305 $slice->coord_system->version() );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 # Associate transcript identifiers with operon_transcripts.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 my %o_hash = map { $_->dbID => $_ } @{$operons};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 my $o_id_str = join( ',', keys(%o_hash) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314 my $sth =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315 $self->prepare( "SELECT operon_id, operon_transcript_id "
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316 . "FROM operon_transcript "
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317 . "WHERE operon_id IN ($o_id_str)" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 $sth->execute();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321 my ( $o_id, $tr_id );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322 $sth->bind_columns( \( $o_id, $tr_id ) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 my %tr_o_hash;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 while ( $sth->fetch() ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 $tr_o_hash{$tr_id} = $o_hash{$o_id};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330 my $ta = $self->db()->get_OperonTranscriptAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 my $transcripts =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332 $ta->fetch_all_by_Slice( $ext_slice,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 1, undef,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334 sprintf( "ot.operon_transcript_id IN (%s)",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335 join( ',',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336 sort { $a <=> $b }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 keys(%tr_o_hash) ) ) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 # Move transcripts onto operon_transcript slice, and add them to operon_transcripts.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 foreach my $tr ( @{$transcripts} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 if ( !exists( $tr_o_hash{ $tr->dbID() } ) ) { next }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 my $new_tr;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344 if ( $slice != $ext_slice ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345 $new_tr = $tr->transfer($slice);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 if ( !defined($new_tr) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347 throw("Unexpected. "
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 . "Transcript could not be transfered onto OperonTranscript slice."
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352 $new_tr = $tr;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 $tr_o_hash{ $tr->dbID() }->add_OperonTranscript($new_tr);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358 return $operons;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359 } ## end sub fetch_all_by_Slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361 =head2 fetch_by_Operon
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363 Arg [1] : Bio::EnsEMBL::Operon
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364 Example : $ot = $ot_adaptor->fetch_by_Operon($operon);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365 Description: Retrieves all operon transcripts belonging to an operon
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366 Returntype : arrayref of Bio::EnsEMBL::OperonTranscript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373 sub fetch_all_by_Operon {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374 my ( $self, $operon ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375 return $self->fetch_by_operon_id( $operon->dbID() );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378 =head2 fetch_by_operon_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380 Arg [1] : Int id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381 Example : $ot = $ot_adaptor->fetch_by_operon_transcript($operon);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382 Description: Retrieves all operon transcripts belonging to an operon
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
383 Returntype : arrayref of Bio::EnsEMBL::OperonTranscript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
385 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
386 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
387
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
388 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
389
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
390 sub fetch_by_operon_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
391 my ( $self, $operon_id ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
392
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
393 my $constraint = "o.operon_id = ?";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
394 $self->bind_param_generic_fetch( $operon_id, SQL_INTEGER );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
395 return $self->generic_fetch($constraint);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
396 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
397
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
398 =head2 fetch_genes_by_operon_transcript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
399
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
400 Arg [1] : Bio::EnsEMBL::OperonTranscript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
401 Example : $ot = $ot_adaptor->fetch_genes_by_operon_transcript($operon_transcript);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
402 Description: Retrieves all genes attached to an operon transcript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
403 Returntype : arrayref of Bio::EnsEMBL::Gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
404 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
405 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
406 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
407
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
408 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
409
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
410 sub fetch_genes_by_operon_transcript {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
411 my ( $self, $operon_transcript ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
412 assert_ref( $operon_transcript, 'Bio::EnsEMBL::OperonTranscript' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
413 return $self->fetch_genes_by_operon_transcript_id(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
414 $operon_transcript->dbID() );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
415 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
416
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
417 =head2 fetch_genes_by_operon_transcript_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
418
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
419 Arg [1] : Int id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
420 Example : $ot = $ot_adaptor->fetch_genes_by_operon_transcript($operon_transcript_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
421 Description: Retrieves all genes attached to an operon transcript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
422 Returntype : arrayref of Bio::EnsEMBL::Gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
423 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
424 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
425 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
426
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
427 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
428
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
429 sub fetch_genes_by_operon_transcript_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
430 my ( $self, $operon_transcript_id ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
431 my $helper =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
432 Bio::EnsEMBL::Utils::SqlHelper->new( -DB_CONNECTION => $self->db->dbc() );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
433
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
434 my $gene_ids =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
435 $helper->execute_simple(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
436 -SQL =>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
437 'SELECT gene_id FROM operon_transcript_gene tr WHERE operon_transcript_id =?',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
438 -PARAMS => [$operon_transcript_id] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
439
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
440 my $genes = [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
441 my $gene_adaptor = $self->db()->get_GeneAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
442 for my $gene_id (@$gene_ids) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
443 push @$genes, $gene_adaptor->fetch_by_dbID($gene_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
444 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
445 return $genes;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
446 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
447
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
448 =head2 fetch_all_by_gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
449
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
450 Arg [1] : Bio::EnsEMBL::Gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
451 Example : $ots = $ot_adaptor->fetch_all_by_gene($gene);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
452 Description: Retrieves all operon transcripts attached to a given gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
453 Returntype : arrayref of Bio::EnsEMBL::OperonTranscript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
454 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
455 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
456 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
457
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
458 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
459
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
460 sub fetch_all_by_gene {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
461 my ( $self, $gene ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
462 assert_ref( $gene, 'Bio::EnsEMBL::Gene' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
463 return $self->fetch_all_by_gene_id( $gene->dbID() );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
464 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
465
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
466 =head2 fetch_all_by_gene_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
467
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
468 Arg [1] : Int id of Bio::EnsEMBL::Gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
469 Example : $ots = $ot_adaptor->fetch_all_by_gene($gene);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
470 Description: Retrieves all operon transcripts attached to a given gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
471 Returntype : arrayref of Bio::EnsEMBL::OperonTranscript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
472 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
473 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
474 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
475
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
476 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
477
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
478 sub fetch_all_by_gene_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
479 my ( $self, $gene_id ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
480 my $helper =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
481 Bio::EnsEMBL::Utils::SqlHelper->new( -DB_CONNECTION => $self->db->dbc() );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
482
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
483 my $ot_ids = $helper->execute_simple(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
484 -SQL =>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
485 'SELECT operon_transcript_id FROM operon_transcript_gene tr WHERE gene_id =?',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
486 -PARAMS => [$gene_id] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
487
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
488 my $ots = [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
489 for my $ot_id (@$ot_ids) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
490 push @$ots, $self->fetch_by_dbID($ot_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
491 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
492 return $ots;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
493 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
494
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
495 =head2 store
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
496
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
497 Arg [1] : Bio::EnsEMBL::OperonTranscript $gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
498 The gene to store in the database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
499 Arg [2] : ignore_release in xrefs [default 1] set to 0 to use release info
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
500 in external database references
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
501 Example : $gene_adaptor->store($gene);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
502 Description: Stores a gene in the database.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
503 Returntype : the database identifier (dbID) of the newly stored gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
504 Exceptions : thrown if the $gene is not a Bio::EnsEMBL::OperonTranscript or if
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
505 $gene does not have an analysis object
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 store {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
512 my ( $self, $operon_transcript, $operon_id ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
513
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
514 assert_ref( $operon_transcript, 'Bio::EnsEMBL::OperonTranscript' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
515
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
516 my $db = $self->db();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
517
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
518 if ( $operon_transcript->is_stored($db) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
519 return $operon_transcript->dbID();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
520 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
521
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
522 # ensure coords are correct before storing
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
523 #$operon->recalculate_coordinates();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
524
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
525 my $seq_region_id;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
526
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
527 ( $operon_transcript, $seq_region_id ) =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
528 $self->_pre_store($operon_transcript);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
529 my $analysis = $operon_transcript->analysis();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
530 throw("OperonTranscripts must have an analysis object.")
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
531 if ( !defined($analysis) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
532 my $analysis_id;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
533 if ( $analysis->is_stored($db) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
534 $analysis_id = $analysis->dbID();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
535 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
536 $analysis_id = $db->get_AnalysisAdaptor->store($analysis);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
537 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
538 my $store_operon_transcript_sql = qq(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
539 INSERT INTO operon_transcript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
540 SET seq_region_id = ?,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
541 seq_region_start = ?,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
542 seq_region_end = ?,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
543 seq_region_strand = ?,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
544 display_label = ?,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
545 operon_id = ?,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
546 analysis_id =?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
547 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
548
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
549 if ( defined($operon_transcript->stable_id()) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
550 my $created = $self->db->dbc->from_seconds_to_date($operon_transcript->created_date());
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
551 my $modified = $self->db->dbc->from_seconds_to_date($operon_transcript->modified_date());
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
552 $store_operon_transcript_sql .= ", stable_id = ?, version = ?, created_date = " . $created . ",modified_date = " . $modified;
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 # column status is used from schema version 34 onwards (before it was
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
557 # confidence)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
558
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
559 my $sth = $self->prepare($store_operon_transcript_sql);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
560 $sth->bind_param( 1, $seq_region_id, SQL_INTEGER );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
561 $sth->bind_param( 2, $operon_transcript->start(), SQL_INTEGER );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
562 $sth->bind_param( 3, $operon_transcript->end(), SQL_INTEGER );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
563 $sth->bind_param( 4, $operon_transcript->strand(), SQL_TINYINT );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
564 $sth->bind_param( 5, $operon_transcript->display_label(), SQL_VARCHAR );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
565 $sth->bind_param( 6, $operon_id, SQL_INTEGER );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
566 $sth->bind_param( 7, $analysis_id, SQL_INTEGER );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
567
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
568 if ( defined($operon_transcript->stable_id()) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
569 $sth->bind_param( 8, $operon_transcript->stable_id(), SQL_VARCHAR );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
570 my $version = ($operon_transcript->version()) ? $operon_transcript->version() : 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
571 $sth->bind_param( 9, $version, SQL_INTEGER );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
572 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
573
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
574 $sth->execute();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
575 $sth->finish();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
576
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
577 my $operon_transcript_dbID = $sth->{'mysql_insertid'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
578
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
579 # store the dbentries associated with this gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
580 my $dbEntryAdaptor = $db->get_DBEntryAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
581
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
582 foreach my $dbe ( @{ $operon_transcript->get_all_DBEntries } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
583 $dbEntryAdaptor->store( $dbe, $operon_transcript_dbID,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
584 "OperonTranscript" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
585 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
586
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
587 # store operon attributes if there are any
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
588 my $attrs = $operon_transcript->get_all_Attributes();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
589 if ( $attrs && scalar @$attrs ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
590 my $attr_adaptor = $db->get_AttributeAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
591 $attr_adaptor->store_on_OperonTranscript( $operon_transcript, $attrs );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
592 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
593
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
594 # set the adaptor and dbID on the original passed in gene not the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
595 # transfered copy
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
596 $operon_transcript->adaptor($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
597 $operon_transcript->dbID($operon_transcript_dbID);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
598
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
599 if ( defined $operon_transcript->{_gene_array} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
600 $self->store_genes_on_OperonTranscript( $operon_transcript,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
601 $operon_transcript->{_gene_array} );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
602 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
603
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
604 return $operon_transcript_dbID;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
605 } ## end sub store
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
606
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
607 =head2 store_genes_on_OperonTranscript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
608
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
609 Arg [1] : Bio::EnsEMBL::OperonTranscript $ot
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
610 the operon_transcript to store genes on
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
611 Arg [2] : arrayref of Bio::EnsEMBL::Gene $gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
612 the genes to store on operon transcript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
613 Example : $ot_adaptor->store_genes_on_OperonTranscript(\@genes);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
614 Description: Associates genes with operon transcript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
615 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
616 Exceptions : throw on incorrect arguments
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
617 warning if operon_transcript is not stored in this database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
618 Caller : general, store
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
619 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
620
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
621 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
622
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
623 sub store_genes_on_OperonTranscript {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
624 my ( $self, $operon_transcript, $genes ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
625 assert_ref( $operon_transcript, "Bio::EnsEMBL::OperonTranscript" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
626 my $sth = $self->prepare(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
627 'insert into operon_transcript_gene(operon_transcript_id,gene_id) values('
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
628 . $operon_transcript->dbID()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
629 . ',?)' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
630 for my $gene ( @{$genes} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
631 assert_ref( $gene, "Bio::EnsEMBL::Gene" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
632 $sth->bind_param( 1, $gene->dbID(), SQL_INTEGER );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
633 $sth->execute();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
634 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
635 $sth->finish();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
636 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
637 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
638
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
639 =head2 remove
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
640
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
641 Arg [1] : Bio::EnsEMBL::OperonTranscript $ot
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
642 the operon_transcript to remove from the database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
643 Example : $ot_adaptor->remove($ot);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
644 Description: Removes a operon transcript completely from the database.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
645 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
646 Exceptions : throw on incorrect arguments
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
647 warning if operon_transcript is not stored in this database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
648 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
649 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
650
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
651 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
652
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
653 sub remove {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
654 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
655 my $operon_transcript = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
656
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
657 assert_ref( $operon_transcript, 'Bio::EnsEMBL::OperonTranscript' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
658
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
659 if ( !$operon_transcript->is_stored( $self->db() ) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
660 warning( "Cannot remove operon transcript "
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
661 . $operon_transcript->dbID()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
662 . ". Is not stored in "
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
663 . "this database." );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
664 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
665 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
666
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
667 # remove all object xrefs associated with this gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
668
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
669 my $dbe_adaptor = $self->db()->get_DBEntryAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
670 foreach my $dbe ( @{ $operon_transcript->get_all_DBEntries() } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
671 $dbe_adaptor->remove_from_object( $dbe, $operon_transcript,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
672 'OperonTranscript' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
673 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
674
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
675 # # remove the attributes associated with this transcript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
676 # my $attrib_adaptor = $self->db->get_AttributeAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
677 # $attrib_adaptor->remove_from_OperonTranscript($operon_transcript);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
678
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
679 # remove from the database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
680 my $sth = $self->prepare(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
681 "DELETE FROM operon_transcript WHERE operon_transcript_id = ? ");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
682 $sth->bind_param( 1, $operon_transcript->dbID, SQL_INTEGER );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
683 $sth->execute();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
684 $sth->finish();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
685
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
686 # unset the gene identifier and adaptor thereby flagging it as unstored
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
687
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
688 $operon_transcript->dbID(undef);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
689 $operon_transcript->adaptor(undef);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
690
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
691 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
692 } ## end sub remove
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
693
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
694 # _objs_from_sth
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
695
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
696 # Arg [1] : StatementHandle $sth
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
697 # Arg [2] : Bio::EnsEMBL::AssemblyMapper $mapper
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
698 # Arg [3] : Bio::EnsEMBL::Slice $dest_slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
699 # Description: PROTECTED implementation of abstract superclass method.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
700 # responsible for the creation of OperonTranscripts
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
701 # Returntype : listref of Bio::EnsEMBL::OperonTranscripts in target coordinate system
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
702 # Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
703 # Caller : internal
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
704 # Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
705
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
706 sub _objs_from_sth {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
707 my ( $self, $sth, $mapper, $dest_slice ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
708
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
709 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
710 # This code is ugly because an attempt has been made to remove as many
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
711 # function calls as possible for speed purposes. Thus many caches and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
712 # a fair bit of gymnastics is used.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
713 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
714
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
715 my $sa = $self->db()->get_SliceAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
716 my $aa = $self->db->get_AnalysisAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
717
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
718 my @operons;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
719 my %analysis_hash;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
720 my %slice_hash;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
721 my %sr_name_hash;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
722 my %sr_cs_hash;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
723 my ( $stable_id, $version, $created_date, $modified_date );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
724
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
725 my ( $operon_transcript_id, $seq_region_id, $seq_region_start,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
726 $seq_region_end, $seq_region_strand, $display_label,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
727 $analysis_id );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
728
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
729 $sth->bind_columns( \$operon_transcript_id, \$seq_region_id,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
730 \$seq_region_start, \$seq_region_end,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
731 \$seq_region_strand, \$display_label,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
732 \$analysis_id, \$stable_id,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
733 \$version, \$created_date,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
734 \$modified_date );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
735
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
736 my $asm_cs;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
737 my $cmp_cs;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
738 my $asm_cs_vers;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
739 my $asm_cs_name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
740 my $cmp_cs_vers;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
741 my $cmp_cs_name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
742 if ($mapper) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
743 $asm_cs = $mapper->assembled_CoordSystem();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
744 $cmp_cs = $mapper->component_CoordSystem();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
745 $asm_cs_name = $asm_cs->name();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
746 $asm_cs_vers = $asm_cs->version();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
747 $cmp_cs_name = $cmp_cs->name();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
748 $cmp_cs_vers = $cmp_cs->version();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
749 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
750
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
751 my $dest_slice_start;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
752 my $dest_slice_end;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
753 my $dest_slice_strand;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
754 my $dest_slice_length;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
755 my $dest_slice_sr_name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
756 my $dest_slice_seq_region_id;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
757 if ($dest_slice) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
758 $dest_slice_start = $dest_slice->start();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
759 $dest_slice_end = $dest_slice->end();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
760 $dest_slice_strand = $dest_slice->strand();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
761 $dest_slice_length = $dest_slice->length();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
762 $dest_slice_sr_name = $dest_slice->seq_region_name();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
763 $dest_slice_seq_region_id = $dest_slice->get_seq_region_id();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
764 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
765
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
766 my $count = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
767 OPERON: while ( $sth->fetch() ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
768 $count++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
769 # #get the analysis object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
770 my $analysis = $analysis_hash{$analysis_id} ||=
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
771 $aa->fetch_by_dbID($analysis_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
772 $analysis_hash{$analysis_id} = $analysis;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
773 #need to get the internal_seq_region, if present
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
774 $seq_region_id = $self->get_seq_region_id_internal($seq_region_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
775 #get the slice object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
776 my $slice = $slice_hash{ "ID:" . $seq_region_id };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
777
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
778 if ( !$slice ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
779 $slice = $sa->fetch_by_seq_region_id($seq_region_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
780 $slice_hash{ "ID:" . $seq_region_id } = $slice;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
781 $sr_name_hash{$seq_region_id} = $slice->seq_region_name();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
782 $sr_cs_hash{$seq_region_id} = $slice->coord_system();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
783 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
784
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
785 my $sr_name = $sr_name_hash{$seq_region_id};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
786 my $sr_cs = $sr_cs_hash{$seq_region_id};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
787 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
788 # remap the feature coordinates to another coord system
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
789 # if a mapper was provided
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
790 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
791 if ($mapper) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
792
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
793 if (defined $dest_slice && $mapper->isa('Bio::EnsEMBL::ChainedAssemblyMapper') ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
794 ( $seq_region_id, $seq_region_start,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
795 $seq_region_end, $seq_region_strand )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
796 =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
797 $mapper->map( $sr_name, $seq_region_start, $seq_region_end,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
798 $seq_region_strand, $sr_cs, 1, $dest_slice);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
799
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
800 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
801
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
802 ( $seq_region_id, $seq_region_start,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
803 $seq_region_end, $seq_region_strand )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
804 =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
805 $mapper->fastmap( $sr_name, $seq_region_start, $seq_region_end,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
806 $seq_region_strand, $sr_cs );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
807 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
808
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
809
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
810 #skip features that map to gaps or coord system boundaries
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
811 next OPERON if ( !defined($seq_region_id) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
812
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
813 #get a slice in the coord system we just mapped to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
814 if ( $asm_cs == $sr_cs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
815 || ( $cmp_cs != $sr_cs && $asm_cs->equals($sr_cs) ) )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
816 {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
817 $slice = $slice_hash{ "ID:" . $seq_region_id } ||=
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
818 $sa->fetch_by_seq_region_id($seq_region_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
819 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
820 $slice = $slice_hash{ "ID:" . $seq_region_id } ||=
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
821 $sa->fetch_by_seq_region_id($seq_region_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
822 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
823 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
824
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
825 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
826 # If a destination slice was provided convert the coords
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
827 # If the dest_slice starts at 1 and is foward strand, nothing needs doing
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
828 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
829 if ($dest_slice) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
830 if ( $dest_slice_start != 1 || $dest_slice_strand != 1 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
831 if ( $dest_slice_strand == 1 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
832 $seq_region_start =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
833 $seq_region_start - $dest_slice_start + 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
834 $seq_region_end = $seq_region_end - $dest_slice_start + 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
835 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
836 my $tmp_seq_region_start = $seq_region_start;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
837 $seq_region_start = $dest_slice_end - $seq_region_end + 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
838 $seq_region_end =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
839 $dest_slice_end - $tmp_seq_region_start + 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
840 $seq_region_strand *= -1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
841 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
842 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
843
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
844 #throw away features off the end of the requested slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
845 if ( $seq_region_end < 1
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
846 || $seq_region_start > $dest_slice_length
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
847 || ( $dest_slice_seq_region_id != $seq_region_id ) )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
848 {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
849 # print STDERR "IGNORED DUE TO CUTOFF $dest_slice_seq_region_id ne $seq_region_id . $sr_name\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
850 next OPERON;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
851 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
852 $slice = $dest_slice;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
853 } ## end if ($dest_slice)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
854
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
855 push( @operons,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
856 Bio::EnsEMBL::OperonTranscript->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
857 -START => $seq_region_start,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
858 -END => $seq_region_end,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
859 -STRAND => $seq_region_strand,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
860 -SLICE => $slice,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
861 -DISPLAY_LABEL => $display_label,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
862 -ADAPTOR => $self,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
863 -DBID => $operon_transcript_id,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
864 -STABLE_ID => $stable_id,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
865 -VERSION => $version,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
866 -CREATED_DATE => $created_date || undef,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
867 -MODIFIED_DATE => $modified_date || undef,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
868 -ANALYSIS => $analysis ) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
869
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
870 } ## end while ( $sth->fetch() )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
871
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
872 return \@operons;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
873 } ## end sub _objs_from_sth
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
874
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
875 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
876