annotate variant_effect_predictor/Bio/EnsEMBL/DBSQL/BaseAlignFeatureAdaptor.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 =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::DBSQL::BaseAlignFeatureAdaptor - Abstract Base class for
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 AlignFeatureAdaptors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 Abstract class, should not be instantiated. Implementation of abstract
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 methods must be performed by subclasses.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 This is a base adaptor for the align feature adaptors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 DnaAlignFeatureAdaptor and ProteinAlignFeatureAdaptor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 package Bio::EnsEMBL::DBSQL::BaseAlignFeatureAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 use vars qw(@ISA @EXPORT);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 use Bio::EnsEMBL::DBSQL::BaseFeatureAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 @ISA = qw(Bio::EnsEMBL::DBSQL::BaseFeatureAdaptor);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 @EXPORT = (@{$DBI::EXPORT_TAGS{'sql_types'}});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 =head2 fetch_all_by_Slice_and_hcoverage
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 Arg [1] : Bio::EnsEMBL::Slice $slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 The slice from which to obtain align features.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 Arg [2] : (optional) float $hcoverage
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 A lower bound for the hcoverage of feats to obtain.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 Arg [3] : (optional) string $logic_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 The logic name of the type of features to obtain.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 Example : @feats = @{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 $adaptor->fetch_all_by_Slice_and_hcoverage( $slice,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 50.0 ) };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 Description: Returns a listref of features created from the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 database which are on the Slice $slice and with a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 hcoverage greater than $hcoverage. If logic name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 is defined, only features with an analysis of type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 $logic_name will be returned.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 Returntype : listref of Bio::EnsEMBL::BaseAlignFeatures
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 in Slice coordinates
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 sub fetch_all_by_Slice_and_hcoverage {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 my ( $self, $slice, $hcoverage, $logic_name ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 my $constraint;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 if ( defined($hcoverage) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 $constraint = "hcoverage > $hcoverage";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 return
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 $self->fetch_all_by_Slice_constraint( $slice, $constraint,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 $logic_name );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 =head2 fetch_all_by_Slice_and_external_db
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 Arg [1] : Bio::EnsEMBL::Slice $slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 The slice from which to obtain align features.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 Arg [2] : String $external_db_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 Name of the external DB to which the align features
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 should be restricted.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 Arg [3] : (optional) string $logic_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 The logic name of the type of features to obtain.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 Example : @feats = @{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 $adaptor->fetch_all_by_Slice_and_external_db( $slice,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 'EMBL' ) };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 Description: Returns a listref of features created from the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 database which are on the Slice $slice and associated
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 with external DB $external_db_name. If logic name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 is defined, only features with an analysis of type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 $logic_name will be returned.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 Returntype : listref of Bio::EnsEMBL::BaseAlignFeatures
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 in Slice coordinates
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 Exceptions : thrown if $external_db_name is not defined or if
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 the subclass does not return a table alias for the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 external_db table from _tables()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 sub fetch_all_by_Slice_and_external_db {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 my ( $self, $slice, $external_db_name, $logic_name ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 if ( !defined($external_db_name) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 throw("Need name of external DB to restrict to");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 my @join_tables = $self->_tables();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 my $edb_alias;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 foreach my $join_table (@join_tables) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 my ( $table, $table_alias ) = @{$join_table};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 if ( $table eq 'external_db' ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 $edb_alias = $table_alias;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 last;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 if ( !defined($edb_alias) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 throw("Can not find alias for external_db table");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 my $constraint = sprintf( "%s.db_name = %s",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 $edb_alias,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 $self->dbc()->db_handle()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 ->quote( $external_db_name, SQL_VARCHAR )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 return
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 $self->fetch_all_by_Slice_constraint( $slice, $constraint,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 $logic_name );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 } ## end sub fetch_all_by_Slice_and_external_db
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 =head2 fetch_all_by_Slice_and_pid
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 Arg [1] : Bio::EnsEMBL::Slice $slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 The slice from which to obtain align features.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 Arg [2] : (optional) float $pid
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 A lower bound for the percentage identity of features
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 to obtain.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 Arg [3] : (optional) string $logic_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 The logic name of the type of features to obtain.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 Example : @feats =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 @{ $adaptor->fetch_all_by_Slice_and_pid( $slice, 50.0 ) };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 Description: Returns a listref of features created from the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 database which are on the Slice $slice and with a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 percentage identity greater than $pid. If logic name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 is defined, only features with an analysis of type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 $logic_name will be returned.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 Returntype : listref of Bio::EnsEMBL::BaseAlignFeatures
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 in Slice coordinates
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 sub fetch_all_by_Slice_and_pid {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 my ( $self, $slice, $pid, $logic_name ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 # #get the primary table alias
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 # my @tabs = $self->_tables;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 # my $alias = $tabs[0]->[1];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 # if(defined $pid) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 # $constraint = "${alias}.perc_ident > $pid";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 # }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 my $constraint;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 if ( defined($pid) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 $constraint = sprintf( "perc_ident > %s",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 $self->dbc()->db_handle()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 ->quote( $pid, SQL_FLOAT ) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 return
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 $self->fetch_all_by_Slice_constraint( $slice, $constraint,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 $logic_name );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 =head2 fetch_all_by_hit_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 Arg [1] : string $hit_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 The hit_name of the features to obtain
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 Arg [2] : (optional) string $logic_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 The analysis logic name of the type of features to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 obtain.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 Example : @feats =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 @{ $adaptor->fetch_all_by_hit_name( $name,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 $logic_name ); }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 Description: Returns a listref of features created from the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 database which correspond to the given hit_name. If
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 logic name is defined, only features with an analysis
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 of type $logic_name will be returned.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 Returntype : listref of Bio::EnsEMBL::BaseAlignFeatures
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 Exceptions : thrown if hit_name is not defined
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 sub fetch_all_by_hit_name {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 my ( $self, $hit_name, $logic_name ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 if ( !defined($hit_name) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 throw("hit_name argument is required");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 # Construct a constraint like 't1.hit_name = "123"'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 my @tabs = $self->_tables();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 my ( $name, $syn ) = @{ $tabs[0] };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 my $constraint = sprintf( "%s.hit_name = %s",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 $syn,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 $self->dbc()->db_handle()->quote( $hit_name, SQL_VARCHAR ) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 if ( defined($logic_name) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 # Add the $logic_name constraint
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 $constraint =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 $self->_logic_name_to_constraint( $constraint, $logic_name );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 return $self->generic_fetch($constraint);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 =head2 fetch_all_by_hit_name_unversioned
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 Arg [1] : string $hit_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 The beginning of the hit_name of the features to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 obtain, e.g. AA768786 would retrieve AA768786.1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 AA768786.2 etc.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 Arg [2] : (optional) string $logic_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 The analysis logic name of the type of features to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 obtain.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 Example : @feats =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 @{ $adaptor->fetch_all_by_hit_name( $name,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 $logic_name ) };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 Description: Returns a listref of features created from the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 database which start with the given hit_name. If
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 logic name is defined, only features with an analysis
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 of type $logic_name will be returned.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 Returntype : listref of Bio::EnsEMBL::BaseAlignFeatures
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 Exceptions : thrown if hit_name is not defined
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 Status : At risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 sub fetch_all_by_hit_name_unversioned {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 my ( $self, $hit_name, $logic_name ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 if ( !defined($hit_name) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 throw("hit_name argument is required");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 $hit_name =~ s/_/\\_/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 #construct a constraint like 't1.hit_name = "123"'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 my @tabs = $self->_tables;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 my ( $name, $syn ) = @{ $tabs[0] };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 my $constraint = sprintf( "%s.hit_name LIKE %s",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277 $syn,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278 $self->dbc()->db_handle()->quote( $hit_name . '.%', SQL_VARCHAR ) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280 if ( defined($logic_name) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281 # Add the $logic_name constraint
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 $constraint =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283 $self->_logic_name_to_constraint( $constraint, $logic_name );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 return $self->generic_fetch($constraint);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291 =head2 fetch_all_by_RawContig_and_pid
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 Description: DEPRECATED use fetch_all_by_Slice_and_pid instead
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 fetch_all_by_RawContig_and_pid {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 my($self, $contig, $pid, $logic_name) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300 my $constraint;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302 #get the primary table alias
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303 my @tabs = $self->_tables;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 my $alias = $tabs[0]->[1];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 if(defined $pid) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307 $constraint = "${alias}.perc_ident > $pid";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 return $self->fetch_all_by_RawContig_constraint($contig,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 $constraint,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 $logic_name);
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
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 ##implemented by subclasses:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 # store
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 # _tables
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321 # _columns
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322 # _obj_from_hashref
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 1;