comparison variant_effect_predictor/Bio/EnsEMBL/DBSQL/UnconventionalTranscriptAssociationAdaptor.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:1f6dce3d34e0
1 =head1 LICENSE
2
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
4 Genome Research Limited. All rights reserved.
5
6 This software is distributed under a modified Apache license.
7 For license details, please see
8
9 http://www.ensembl.org/info/about/code_licence.html
10
11 =head1 CONTACT
12
13 Please email comments or questions to the public Ensembl
14 developers list at <dev@ensembl.org>.
15
16 Questions may also be sent to the Ensembl help desk at
17 <helpdesk@ensembl.org>.
18
19 =cut
20
21 =head1 NAME
22
23 Bio::EnsEMBL::DBSQL::UnconventionalTranscriptAssociationAdaptor
24
25 =head1 SYNOPSIS
26
27 $utaa = $registry->get_adaptor( 'Human', 'Core',
28 'UnconventionalTranscriptAssociation' );
29
30 my $uta = $utaa->fetch_all_by_type('antisense');
31
32 =head1 DESCRIPTION
33
34 This is an adaptor for the retrieval and storage of
35 UnconventionalTranscriptAssociation objects from the database. Most of
36 the implementation is in the superclass BaseFeatureAdaptor.
37
38 =head1 METHODS
39
40 =cut
41
42 package Bio::EnsEMBL::DBSQL::UnconventionalTranscriptAssociationAdaptor;
43
44 use strict;
45 use Bio::EnsEMBL::DBSQL::BaseAdaptor;
46 use Bio::EnsEMBL::UnconventionalTranscriptAssociation;
47
48 use vars qw(@ISA);
49
50 @ISA = qw(Bio::EnsEMBL::DBSQL::BaseAdaptor);
51
52
53
54
55 =head2 fetch_all_by_interaction_type
56
57 Arg [1] : String type
58 the type of associations to obtain
59 Example : $utas = $utaa->fetch_all_by_type('antisense');
60 Description: Obtains all unconventional transcript associations that
61 have a particular interaction type.
62 NOTE: In a multi-species database, this method will
63 return all the entries matching the search criteria, not
64 just the ones associated with the current species.
65 Returntype : listREF of Bio::EnsEMBL::UnconventionalTranscriptAssociations
66 Exceptions : none
67 Caller : general
68 Status : At Risk
69 : under development
70
71 =cut
72
73 sub fetch_all_by_interaction_type {
74
75 my( $self, $type) = @_;
76
77 my $sth = $self->prepare("SELECT transcript_id, gene_id, interaction_type " .
78 "FROM unconventional_transcript_association " .
79 "WHERE interaction_type = ?");
80
81 $sth->bind_param(1, $type, SQL_VARCHAR);
82 $sth->execute();
83
84 my $results = $self->_objs_from_sth($sth);
85
86 $sth->finish();
87
88 return $results;
89
90 }
91
92
93 =head2 fetch_all_by_gene
94
95 Arg [1] : String gene the gene of associations to obtain
96 Arg [2] : (optional) An interaction type; if set, only associations of this type will be returned.
97 Example : $utas = $utaa->fetch_all_by_gene($gene, 'antisense');
98 Description: Obtains all unconventional transcript associations that involve
99 a particular gene.
100 Returntype : listREF of Bio::EnsEMBL::UnconventionalTranscriptAssociations
101 Exceptions : none
102 Caller : general
103 Status : At Risk
104 : under development
105
106 =cut
107
108 sub fetch_all_by_gene {
109
110 my( $self, $gene, $type) = @_;
111
112 if(!ref($gene) || !$gene->isa('Bio::EnsEMBL::Gene')) {
113 throw('$gene must be a Bio::EnsEMBL::Gene');
114 }
115
116 my $sql = "SELECT transcript_id, gene_id, interaction_type FROM unconventional_transcript_association WHERE gene_id = ?";
117 $sql .= " AND interaction_type = ?" if ($type);
118
119 my $sth = $self->prepare($sql);
120
121 $sth->bind_param(1, $gene->dbID(), SQL_INTEGER);
122 $sth->bind_param(2, $type, SQL_VARCHAR) if ($type);
123
124 $sth->execute();
125
126 my $results = $self->_objs_from_sth($sth);
127
128 $sth->finish();
129
130 return $results;
131
132 }
133
134
135 =head2 fetch_all_by_transcript
136
137 Arg [1] : String transcript the transcript of associations to obtain
138 Arg [2] : (optional) An interaction type; if set, only associations of this type will be returned.
139 Example : $utas = $utaa->fetch_all_by_transcript($transcript, 'antisense');
140 Description: Obtains all unconventional transcript associations that involve
141 a particular transcript.
142 Returntype : listREF of Bio::EnsEMBL::UnconventionalTranscriptAssociations
143 Exceptions : none
144 Caller : general
145 Status : At Risk
146 : under development
147
148 =cut
149
150 sub fetch_all_by_transcript {
151
152 my( $self, $transcript, $type) = @_;
153
154 if(!ref($transcript) || !$transcript->isa('Bio::EnsEMBL::Transcript')) {
155 throw('$transcript must be a Bio::EnsEMBL::Transcript');
156 }
157
158 my $sql = "SELECT transcript_id, gene_id, interaction_type FROM unconventional_transcript_association WHERE transcript_id = ?";
159 $sql .= " AND interaction_type = ?" if ($type);
160
161 my $sth = $self->prepare($sql);
162
163 $sth->bind_param(1, $transcript->dbID(), SQL_INTEGER);
164 $sth->bind_param(2, $type, SQL_VARCHAR) if ($type);
165
166 $sth->execute();
167
168 my $results = $self->_objs_from_sth($sth);
169
170 $sth->finish();
171
172 return $results;
173
174 }
175
176
177 =head2 store
178
179 Arg [1] : Bio::EnsEMBL::UnconventionalTranscriptAssociation
180 the unconventional transcript association to store in the database
181 Example : $utaa_adaptor->store($uta);
182 Description: stores unconventional transcript associations in the database
183 Returntype : none
184 Exceptions :
185 Caller : general
186 Status : At Risk
187 : under development
188
189 =cut
190
191 sub store {
192
193 my( $self, $uta ) = @_;
194
195 if(!ref($uta) || !$uta->isa('Bio::EnsEMBL::UnconventionalTranscriptAssociation')) {
196 throw('$uta must be a Bio::EnsEMBL::UnconventionalTranscriptAssociation');
197 }
198
199 my $sth = $self->prepare(qq {INSERT into unconventional_transcript_association
200 (transcript_id, gene_id, interaction_type) VALUES (?,?,?)});
201
202 $sth->bind_param(1, $uta->transcript()->dbID(), SQL_INTEGER);
203 $sth->bind_param(2, $uta->gene()->dbID, SQL_INTEGER);
204 $sth->bind_param(3, $uta->interaction_type(), SQL_VARCHAR);
205
206 $sth->execute();
207
208 }
209
210
211
212 sub _objs_from_sth {
213
214 my ($self, $sth) = @_;
215
216 my $transcript_adaptor = $self->db()->get_TranscriptAdaptor();
217 my $gene_adaptor = $self->db()->get_GeneAdaptor();
218
219 my ($gene_id, $transcript_id, $type);
220 $sth->bind_columns(\$transcript_id, \$gene_id, \$type);
221
222 my @results;
223
224 while($sth->fetch()) {
225
226 my $gene = $gene_adaptor->fetch_by_dbID($gene_id);
227 my $transcript = $transcript_adaptor->fetch_by_dbID($transcript_id);
228
229 my $obj = Bio::EnsEMBL::UnconventionalTranscriptAssociation->new($transcript, $gene, $type);
230 push @results, $obj;
231
232 }
233
234 return \@results;
235 }
236
237 1;
238
239