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

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 Bio::EnsEMBL::DBSQL::DBAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 $db = Bio::EnsEMBL::DBSQL::DBAdaptor->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 -user => 'root',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 -dbname => 'pog',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 -host => 'caldy',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 -driver => 'mysql'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 $gene_adaptor = $db->get_GeneAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 $gene = $gene_adaptor->fetch_by_stable_id($stable_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 $slice =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 $db->get_SliceAdaptor()->fetch_by_chr_start_end( 'X', 1, 10000 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 Formerly this class provided database connectivity and a means
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 to retrieve object adaptors. This class is now provided for
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 convenience and backwards compatibility, and delegates its connection
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 responsibilities to the DBConnection class (no longer inherited from)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 and its object adaptor retrieval to the static Bio::EnsEMBL::Registry.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 Please use Bio::EnsEMBL::Registry to retrieve object adaptors.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 package Bio::EnsEMBL::DBSQL::DBAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 use Bio::EnsEMBL::DBSQL::DBConnection;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 use Bio::EnsEMBL::DBSQL::BaseFeatureAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 use Bio::EnsEMBL::Utils::SeqRegionCache;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 use Bio::EnsEMBL::Utils::Exception qw(throw warning deprecate);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 use Bio::EnsEMBL::Registry;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 use Bio::EnsEMBL::Utils::ConfigRegistry;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 my $reg = "Bio::EnsEMBL::Registry";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 Arg [-DNADB]: (optional) Bio::EnsEMBL::DBSQL::DBAdaptor DNADB
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 All sequence, assembly, contig information etc, will
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 be retrieved from this database instead.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 Arg [-NO_CACHE]: (optional) int 1
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 This option will turn off caching for slice features,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 so, every time a set of features is retrieved,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 they will come from the database instead of the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 cache. This option is only recommended for advanced
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 users, specially if you need to store and retrieve
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 features. It might reduce performance when querying
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 the database if not used properly. If in doubt, do
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 not use it or ask in the developer mailing list.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 Arg [..] : Other args are passed to superclass
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 Bio::EnsEMBL::DBSQL::DBConnection
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 Example : $db = new Bio::EnsEMBL::DBSQL::DBAdaptor(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 -user => 'root',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 -dbname => 'pog',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 -host => 'caldy',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 -driver => 'mysql'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 $db = new Bio::EnsEMBL::DBSQL::DBAdaptor(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 -species => 'Homo_sapiens',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 -group => 'core',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 -user => 'root',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 -dbname => 'pog',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 -host => 'caldy',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 -driver => 'mysql'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 $db = new Bio::EnsEMBL::DBSQL::DBAdaptor(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 -species => 'staphylococcus_aureus',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 -group => 'core',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 -user => 'root',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 -dbname => 'staphylococcus_collection_1_52_1a',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 -multispecies_db => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 -host => 'caldy',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 -driver => 'mysql'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 Description: Constructor for DBAdaptor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 Returntype : Bio::EnsEMBL::DBSQL::DBAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 my ( $class, @args ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 my $self = bless {}, $class;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 my ( $is_multispecies, $species, $species_id, $group, $con, $dnadb,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 $no_cache, $dbname )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 = rearrange( [
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 'MULTISPECIES_DB', 'SPECIES', 'SPECIES_ID', 'GROUP',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 'DBCONN', 'DNADB', 'NO_CACHE', 'DBNAME'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 @args
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 if ( defined($con) ) { $self->dbc($con) }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 if(! defined $dbname) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 throw "-DBNAME is a required parameter when creating a DBAdaptor";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 $self->dbc( new Bio::EnsEMBL::DBSQL::DBConnection(@args) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 if ( defined($species) ) { $self->species($species) }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 if ( defined($group) ) { $self->group($group) }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 $self = Bio::EnsEMBL::Utils::ConfigRegistry::gen_load($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 # if(!defined($species) ){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 # $reg->find_and_add_aliases($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 # }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 $self->species_id( $species_id || 1 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 $self->is_multispecies( defined($is_multispecies)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 && $is_multispecies == 1 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 if ( defined($dnadb) ) { $self->dnadb($dnadb) }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 if ( defined($no_cache) ) { $self->no_cache($no_cache) }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 } ## end sub new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 =head2 clear_caches
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 Example : $dba->clear_caches();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 Description : Loops through all linked adaptors and clears their
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 caches if C<clear_cache()> is implemented. Not all caches
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 are cleared & the DBAdaptor instance should be removed from
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 the registry to clear these remaining essential caches.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 Returntype : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 sub clear_caches {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 my $adaptors = Bio::EnsEMBL::Registry->get_all_adaptors(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 $self->species(), $self->group());
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 while (my $adaptor = shift @{$adaptors}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 if($adaptor->can('clear_cache')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 $adaptor->clear_cache();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 =head2 dbc
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 Arg[1] : (optional) Bio::EnsEMBL::DBSQL::DBConnection
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 Example : $dbc = $dba->dbc();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 Description: Getter/Setter for DBConnection.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 Returntype : Bio::EnsEMBL::DBSQL::DBConnection
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 Exceptions : throws if argument not a Bio::EnsEMBL::DBSQL::DBConnection
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 sub dbc{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 if(@_){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 my $arg = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 if(defined($arg)){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 if(!$arg->isa('Bio::EnsEMBL::DBSQL::DBConnection')){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 throw("$arg is no a DBConnection\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 $self->{_dbc} = $arg;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 return $self->{_dbc};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 =head2 add_db_adaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 Arg [1] : string $name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 the name of the database to attach to this database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 Arg [2] : Bio::EnsEMBL::DBSQL::DBConnection
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 the db adaptor to attach to this database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 Example : $db->add_db_adaptor('lite', $lite_db_adaptor);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 Description: Attaches another database instance to this database so
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 that it can be used in instances where it is required.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 Caller : EnsWeb
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 : may get deprecated, please use add_db from the registry instead
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 sub add_db_adaptor {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 my ($self, $name, $adaptor) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 unless($name && $adaptor && ref $adaptor) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 throw('adaptor and name arguments are required');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 Bio::EnsEMBL::Registry->add_db($self, $name, $adaptor);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 =head2 remove_db_adaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 Arg [1] : string $name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 the name of the database to detach from this database.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 Example : $lite_db = $db->remove_db_adaptor('lite');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 Description: Detaches a database instance from this database and returns
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 it.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 Caller : ?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 : mey get deprecated, use remove_db instead from the Registry
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 sub remove_db_adaptor {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 my ($self, $name) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 return Bio::EnsEMBL::Registry->remove_db($self, $name);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 =head2 get_all_db_adaptors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 Example : @attached_dbs = values %{$db->get_all_db_adaptors()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 Description: returns all of the attached databases as
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275 a hash reference of key/value pairs where the keys are
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 database names and the values are the attached databases
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277 Returntype : hash reference with Bio::EnsEMBL::DBSQL::DBConnection values
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279 Caller : Bio::EnsEMBL::DBSQL::ProxyAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281 : may get deprecated soon
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 : please use Bio::EnsEMBL::Registry->get_all_db_adaptors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 sub get_all_db_adaptors {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 return Bio::EnsEMBL::Registry->get_all_db_adaptors($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289 }
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 =head2 get_db_adaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 Arg [1] : string $name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 the name of the attached database to retrieve
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297 Example : $lite_db = $db->get_db_adaptor('lite');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 Description: returns an attached db adaptor of name $name or undef if
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 no such attached database exists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300 Returntype : Bio::EnsEMBL::DBSQL::DBConnection
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302 Caller : ?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 : may get deprecated soon
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305 : please use Bio::EnsEMBL::Registry->get_db_adaptors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309 sub get_db_adaptor {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 my ($self, $name) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 return Bio::EnsEMBL::Registry->get_db($self, $name);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315 =head2 get_available_adaptors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317 Example : my %pairs = %{$dba->get_available_adaptors()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 Description: gets a hash of the available adaptors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 ReturnType : reference to a hash
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321 Caller : Bio::EnsEMBL::Utils::ConfigRegistry
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 sub get_available_adaptors {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 my %pairs = (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 # Firstly those that just have an adaptor named after there object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 # in the main DBSQL directory.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330 map( { $_ => "Bio::EnsEMBL::DBSQL::${_}Adaptor" } qw(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 Analysis ArchiveStableId Attribute
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332 AssemblyExceptionFeature AssemblyMapper CoordSystem
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 CompressedSequence DBEntry DnaAlignFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334 DensityFeature DensityType Exon
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335 Gene KaryotypeBand MiscSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336 MiscFeature PredictionTranscript PredictionExon
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 ProteinFeature ProteinAlignFeature RepeatConsensus
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338 RepeatFeature Sequence SeqRegionSynonym SimpleFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 Slice SupportingFeature Transcript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 TranscriptSupportingFeature Translation UnmappedObject
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 UnconventionalTranscriptAssociation AssemblySlice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342 SplicingEvent SplicingEventFeature SplicingTranscriptPair
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 Operon OperonTranscript
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344 DataFile Assembly
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345 IntronSupportingEvidence
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 ) ),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347 # Those whose adaptors are in Map::DBSQL
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 map( { $_ => "Bio::EnsEMBL::Map::DBSQL::${_}Adaptor" } qw(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349 Marker MarkerFeature QtlFeature Qtl Ditag DitagFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 ) ),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 # Finally the exceptions... those that have non-standard mapping
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352 # between object / adaptor ....
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353 # 'Blast' => 'Bio::EnsEMBL::External::BlastAdaptor',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354 'MetaCoordContainer' => 'Bio::EnsEMBL::DBSQL::MetaCoordContainer',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 'MetaContainer' => 'Bio::EnsEMBL::DBSQL::MetaContainer',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356 'SNP' => 'Bio::EnsEMBL::DBSQL::ProxySNPAdaptor',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359 return ( \%pairs );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360 } ## end sub get_available_adaptors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362 ###########################################################
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364 # Support for DAS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366 ###########################################################
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368 =head2 add_DASFeatureFactory
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370 Arg [1] : Bio::EnsEMBL::ExternalFeatureFactory $value
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371 Example : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372 Description: Attaches a DAS Feature Factory to this method.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373 ExternalFeatureFactory objects are not really used right now.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374 They may be reintroduced or taken out completely. The fate
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375 of this function is unknown (although it is presently needed).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378 Caller : EnsWeb
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380 : with the new web code this may not be needed/supported
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
383
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384 sub add_DASFeatureFactory{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
385
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
386 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
387
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
388 push(@{$self->{'_das_ff'}},$value);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
389 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
390
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
391
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
392 sub remove_all_DASFeatureFactories {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
393 $_[0]->{'_das_ff'} = [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
394 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
395 =head2 _each_DASFeatureFactory
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
396
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
397 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
398 Example : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
399 Description: Not sure if this is used, or if it should be removed. It
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
400 does not seem to be used at the moment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
401 Returntype : Bio::EnsEMBL::ExternalFeatureFactory
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
402 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
403 Caller : ??
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
404 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
405 : with the new web code this may not be needed/supported
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
406
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
407 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
408
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
409 sub _each_DASFeatureFactory{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
410 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
411
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
412 return @{$self->{'_das_ff'}||[]}
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
413 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
414
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
415
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
416 ##################################################################
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
417 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
418 # SUPPORT FOR EXTERNAL FEATURE FACTORIES
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
419 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
420 ##################################################################
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
421
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
422
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
423
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
424 =head2 add_ExternalFeatureAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
425
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
426 Arg [1] : Bio::EnsEMBL::External::ExternalFeatureAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
427 Example : $db_adaptor->add_ExternalFeatureAdaptor($xfa);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
428 Description: Adds an external feature adaptor to this database adaptor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
429 Adding the external adaptor in this way allows external
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
430 features to be obtained from Slices and from RawContigs.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
431
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
432 The external feature adaptor which is passed to this method
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
433 will have its db attribuite set to this DBAdaptor object via
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
434 the db accessor method.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
435
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
436 ExternalFeatureAdaptors passed to this method are stored
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
437 internally in a hash keyed on the string returned by the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
438 ExternalFeatureAdaptors track_name method.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
439
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
440 If the track name method is not implemented then the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
441 a default key named 'External features' is assigned. In the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
442 event of duplicate key names, a number is appended to the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
443 key name, and incremented for each subsequent adaptor with the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
444 same track name. For example, if no track_names are specified
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
445 then the the external feature adaptors will be stored under the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
446 keys 'External features', 'External features2'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
447 'External features3' etc.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
448 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
449 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
450 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
451
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
452 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
453
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
454 sub add_ExternalFeatureAdaptor {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
455 my ($self, $adaptor) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
456
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
457 unless($adaptor && ref $adaptor &&
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
458 $adaptor->isa('Bio::EnsEMBL::External::ExternalFeatureAdaptor')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
459 throw("[$adaptor] is not a " .
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
460 "Bio::EnsEMBL::External::ExternalFeatureAdaptor");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
461 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
462
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
463 unless(exists $self->{'_xf_adaptors'}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
464 $self->{'_xf_adaptors'} = {};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
465 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
466
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
467 my $track_name = $adaptor->{'_track_name'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
468 if(!$track_name) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
469 $track_name = $adaptor->track_name();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
470 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
471
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
472 #use a generic track name if one hasn't been defined
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
473 unless(defined $track_name) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
474 $track_name = "External features";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
475 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
476
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
477 #if the track name exists add numbers to the end until a free name is found
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
478 if(exists $self->{'_xf_adaptors'}->{"$track_name"}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
479 my $num = 2;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
480 $num++ while(exists $self->{'_xf_adaptors'}->{"$track_name$num"});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
481 $self->{'_xf_adaptors'}->{"$track_name$num"} = $adaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
482 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
483 $self->{'_xf_adaptors'}->{"$track_name"} = $adaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
484 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
485
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
486 $adaptor->ensembl_db($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
487 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
488
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
489
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
490
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
491 =head2 get_ExternalFeatureAdaptors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
492
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
493 Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
494 Example : @xfas = values %{$db_adaptor->get_ExternalFeatureAdaptors};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
495 Description: Retrieves all of the ExternalFeatureAdaptors which have been
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
496 added to this DBAdaptor. The ExternalFeatureAdaptors are
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
497 returned in a reference to a hash keyed on the track names
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
498 of the external adaptors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
499 Returntype : Reference to a hash of ExternalFeatureAdaptors keyed on
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
500 their track names.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
501 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
502 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
503
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
504 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
505
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
506 sub get_ExternalFeatureAdaptors {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
507 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
508
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
509 return $self->{'_xf_adaptors'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
510 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
511
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
512
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
513 =head2 add_ExternalFeatureFactory
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
514
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
515 Arg [1] : Bio::EnsEMBL::DB::ExternalFeatureFactoryI $value
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
516 Example : $db_adaptor->add_ExternalFeatureFactory
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
517 Description: It is recommended that add_ExternalFeatureAdaptor be used
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
518 instead. See documentation for
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
519 Bio::EnsEMBL::External::ExternalFeatureAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
520
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
521 Adds an external feature factory to the core database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
522 so that features from external sources can be displayed in
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
523 ensembl. This method is still available mainly for legacy
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
524 support for external EnsEMBL installations.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
525 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
526 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
527 Caller : external
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
528
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
529 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
530
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
531 sub add_ExternalFeatureFactory{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
532 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
533
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
534 $self->add_ExternalFeatureAdaptor($value);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
535 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
536
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
537 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
538 # OVERWRITABLE STANDARD ADAPTORS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
539 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
540
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
541 =head2 get_adaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
542
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
543 Arg [1] : Canonical data type for which an adaptor is required.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
544 Example : $db_adaptor->get_adaptor("Protein")
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
545 Description: Gets an adaptor object for a standard data type.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
546 Returntype : Adaptor Object of arbitrary type or undef
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
547 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
548 Caller : external
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
549 Status : Medium Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
550 : please use the Registry method, as at some time this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
551 : may no longer be supprted.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
552
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
553 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
554
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
555 sub get_adaptor {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
556 my ($self, $canonical_name, @other_args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
557
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
558 return $reg->get_adaptor($self->species(),$self->group(),$canonical_name);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
559 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
560
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
561
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
562
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
563 =head2 set_adaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
564
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
565 Arg [1] : Canonical data type for new adaptor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
566 Arg [2] : Object defining the adaptor for arg1.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
567 Example : $aa = Bio::EnsEMBL::DBSQL::GeneAdaptor->new($db_adaptor);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
568 : $db_adaptor->set_adaptor("Gene", $ga)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
569 Description: Stores the object which represents the adaptor for the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
570 arg1 data type.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
571 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
572 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
573 Caller : external
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
574 Status : Medium Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
575 : please use the Registry method, as at some time this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
576 : may no longer be supprted.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
577
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
578 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
579
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
580 sub set_adaptor {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
581 my ($self, $canonical_name, $module) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
582
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
583 $reg->add_adaptor($self->species(),$self->group(),$canonical_name,$module);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
584
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
585 return $module;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
586 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
587
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
588
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
589 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
590 # GENERIC FEATURE ADAPTORS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
591 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
592
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
593 =head2 get_GenericFeatureAdaptors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
594
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
595 Arg [1] : List of names of feature adaptors to get. If no
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
596 adaptor names are given, all the defined adaptors are returned.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
597 Example : $db->get_GenericFeature("SomeFeature", "SomeOtherFeature")
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
598 Description: Returns a hash containing the named feature adaptors (or
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
599 all feature adaptors).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
600 Returntype : reference to a Hash containing the named
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
601 feature adaptors (or all feature adaptors).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
602 Exceptions : If any of the the named generic feature adaptors do not exist.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
603 Caller : external
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
604
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
605 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
606
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
607 sub get_GenericFeatureAdaptors {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
608
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
609 my ($self, @names) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
610
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
611 my %adaptors = ();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
612
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
613 if (!@names) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
614 %adaptors = %{$self->{'generic_feature_adaptors'}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
615 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
616 foreach my $name (@names) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
617 if (!exists($self->{'generic_feature_adaptors'}->{$name})) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
618 throw("No generic feature adaptor has been defined for $name" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
619 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
620
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
621
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
622 $adaptors{$name} = $self->{'generic_feature_adaptors'}->{$name};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
623 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
624 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
625
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
626 return \%adaptors;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
627 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
628
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
629
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
630 =head2 add_GenericFeatureAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
631
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
632 Arg [1] : The name of the feature.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
633 Arg [2] : Adaptor object for a generic feature.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
634 Example : $db->add_GenericFeatureAdaptor("SomeFeature",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
635 "Bio::EnsEMBL::DBSQL::SomeFeatureAdaptor")
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
636 Description: Stores the object which represents the adaptor for the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
637 named feature type.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
638 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
639 Exceptions :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
640 Caller : external
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
641
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
642 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
643
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
644 sub add_GenericFeatureAdaptor {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
645 my ($self, $name, $adaptor_obj) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
646
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
647 # check that $adaptor is an object that subclasses BaseFeatureAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
648 if (!$adaptor_obj->isa("Bio::EnsEMBL::DBSQL::BaseFeatureAdaptor")) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
649 throw("$name is a " . ref($adaptor_obj) . "which is not a " .
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
650 "subclass of Bio::EnsEMBL::DBSQL::BaseFeatureAdaptor" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
651 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
652
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
653 $self->{'generic_feature_adaptors'}->{$name} = $adaptor_obj;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
654 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
655
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
656 =head2 species
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
657
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
658 Arg [1] : (optional) string $arg
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
659 The new value of the species used by this DBAdaptor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
660 Example : $species = $dba->species()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
661 Description: Getter/Setter for the species of to use for
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
662 this connection. There is currently no point in setting
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
663 this value after the connection has already been established
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
664 by the constructor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
665 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
666 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
667 Caller : new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
668 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
669
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
670 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
671
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
672 sub species {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
673 my ( $self, $arg ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
674
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
675 if ( defined($arg) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
676 $self->{_species} = $arg;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
677 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
678
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
679 $self->{_species};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
680 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
681
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
682 =head2 all_species
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
683
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
684 Args : NONE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
685 Example : @all_species = @{$dba->all_species()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
686 Description: Returns the names of all species contained in the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
687 database to which this DBAdaptor is connected.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
688 Returntype : array reference
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
689 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
690 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
691 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
692
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
693 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
694
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
695 sub all_species {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
696 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
697
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
698 if ( !$self->is_multispecies() ) { return [ $self->species() ] }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
699
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
700 if ( exists( $self->{'_all_species'} ) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
701 return $self->{'_all_species'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
702 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
703
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
704 my $statement =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
705 "SELECT meta_value "
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
706 . "FROM meta "
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
707 . "WHERE meta_key = 'species.db_name'";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
708
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
709 my $sth = $self->dbc()->db_handle()->prepare($statement);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
710
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
711 $sth->execute();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
712
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
713 my $species;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
714 $sth->bind_columns( \$species );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
715
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
716 my @all_species;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
717 while ( $sth->fetch() ) { push( @all_species, $species ) }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
718
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
719 $self->{'_all_species'} = \@all_species;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
720
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
721 return $self->{'_all_species'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
722 } ## end sub all_species
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
723
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
724
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
725 =head2 is_multispecies
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
726
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
727 Arg [1] : (optional) boolean $arg
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
728 Example : if ($dba->is_multispecies()) { }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
729 Description: Getter/Setter for the is_multispecies boolean of
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
730 to use for this connection. There is currently no
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
731 point in setting this value after the connection has
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
732 already been established by the constructor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
733 Returntype : boolean
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
734 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
735 Caller : new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
736 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
737
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
738 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
739
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
740 sub is_multispecies {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
741 my ( $self, $arg ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
742
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
743 if ( defined($arg) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
744 $self->{_is_multispecies} = $arg;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
745 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
746
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
747 return $self->{_is_multispecies};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
748 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
749
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
750
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
751 =head2 species_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
752
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
753 Arg [1] : (optional) string $arg
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
754 The new value of the species_id used by this DBAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
755 when dealing with multi-species databases.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
756 Example : $species_id = $dba->species_id()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
757 Description: Getter/Setter for the species_id of to use for this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
758 connection. There is currently no point in setting
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
759 this value after the connection has already been
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
760 established by the constructor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
761 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
762 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
763 Caller : new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
764 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
765
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
766 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
767
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
768 sub species_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
769 my ( $self, $arg ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
770
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
771 if ( defined($arg) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
772 $self->{_species_id} = $arg;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
773 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
774
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
775 return $self->{_species_id};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
776 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
777
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
778
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
779 =head2 no_cache
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
780
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
781 Arg [1] : (optional) int $arg
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
782 The new value of the no cache attribute used by this DBAdaptor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
783 Example : $no_cache = $dba->no_cache();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
784 Description: Getter/Setter for the no_cache to use for
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
785 this connection. There is currently no point in setting
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
786 this value after the connection has already been established
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
787 by the constructor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
788 Returntype : int
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
789 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
790 Caller : new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
791 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
792
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
793 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
794
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
795 sub no_cache {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
796 my ($self, $arg ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
797
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
798 if ( defined $arg ){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
799 if ($arg != 1 && $arg != 0){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
800 throw("$arg is not allowed for this attribute. Only value 1|0 is allowed");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
801 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
802 $self->{_no_cache} = $arg;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
803 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
804 $self->{_no_cache};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
805 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
806
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
807
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
808 =head2 group
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
809
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
810 Arg [1] : (optional) string $arg
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
811 The new value of the group used by this DBAdaptor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
812 Example : $group = $dba->group()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
813 Description: Getter/Setter for the group of to use for
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
814 this connection. There is currently no point in setting
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
815 this value after the connection has already been established
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
816 by the constructor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
817 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
818 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
819 Caller : new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
820 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
821
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
822 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
823
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
824 sub group {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
825 my ($self, $arg ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
826 ( defined $arg ) &&
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
827 ( $self->{_group} = $arg );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
828 $self->{_group};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
829 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
830
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
831 =head2 get_SeqRegionCache
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
832
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
833 Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
834 Example : my $srcache = $dba->get_SeqRegionCache();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
835 Description: Retrieves a seq_region cache for this database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
836 Returntype : Bio::EnsEMBL::Utils::SeqRegionCache
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
837 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
838 Caller : SliceAdaptor, AssemblyMapperAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
839 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
840
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
841 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
842
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
843 sub get_SeqRegionCache {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
844 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
845
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
846 # use the cache from the database where seq_regions are stored
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
847 if($self != $self->dnadb()) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
848 return $self->dnadb()->get_SeqRegionCache();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
849 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
850
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
851 if(!$self->{'seq_region_cache'}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
852 $self->{'seq_region_cache'} = Bio::EnsEMBL::Utils::SeqRegionCache->new();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
853 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
854
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
855 return $self->{'seq_region_cache'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
856 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
857
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
858
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
859
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
860 #convenient method to retrieve the schema_build version for the database being used
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
861
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
862 sub _get_schema_build{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
863 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
864
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
865 #avoided using dnadb by default to avoid obfuscation of behaviour
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
866
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
867 my @dbname = split/_/, $self->dbc->dbname();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
868
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
869 #warn "dbname is $schema_build";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
870
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
871 my $schema_build = pop @dbname;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
872 $schema_build = pop(@dbname).'_'.$schema_build;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
873
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
874
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
875 return $schema_build;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
876 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
877
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
878
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
879 =head2 dnadb
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
880
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
881 Title : dnadb
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
882 Usage : my $dnadb = $db->dnadb();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
883 Function: returns the database adaptor where the dna lives
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
884 Useful if you only want to keep one copy of the dna
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
885 on disk but have other databases with genes and features in
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
886 Returns : dna database adaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
887 Args : Bio::EnsEMBL::DBSQL::BaseAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
888 Status : Medium Risk.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
889 : Use the Registry method add_DNAAdaptor/get_DNAAdaptor instead
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
890
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
891 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
892
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
893 sub dnadb {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
894 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
895
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
896 if(@_) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
897 my $arg = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
898 $reg->add_DNAAdaptor($self->species(),$self->group(),$arg->species(),$arg->group());
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
899 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
900
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
901 # return $self->{'dnadb'} || $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
902 return $reg->get_DNAAdaptor($self->species(),$self->group()) || $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
903 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
904
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
905
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
906 use vars '$AUTOLOAD';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
907
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
908 sub AUTOLOAD {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
909 my ( $self, @args ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
910
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
911 my $type;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
912 if ( $AUTOLOAD =~ /^.*::get_(\w+)Adaptor$/ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
913 $type = $1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
914 } elsif ( $AUTOLOAD =~ /^.*::get_(\w+)$/ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
915 $type = $1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
916 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
917 throw( sprintf( "Could not work out type for %s\n", $AUTOLOAD ) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
918 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
919
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
920 my $ret = $reg->get_adaptor( $self->species(), $self->group(), $type );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
921
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
922 return $ret if $ret;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
923
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
924 warning( sprintf(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
925 "Could not find %s adaptor in the registry for %s %s\n",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
926 $type, $self->species(), $self->group() ) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
927
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
928 throw( sprintf(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
929 "Could not get adaptor %s for %s %s\n",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
930 $type, $self->species(), $self->group() ) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
931
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
932 } ## end sub AUTOLOAD
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
933
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
934 sub DESTROY { } # required due to AUTOLOAD
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
935
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
936
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
937 #########################
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
938 # sub DEPRECATED METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
939 #########################
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
940 =head2 db
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
941
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
942 Description: DEPRECATED
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
943
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
944 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
945
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
946 sub db{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
947 my ($self, $arg ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
948 deprecate("db Should no longer be called from the DBAdaptor. DBConnection should now be used OR preferably the object adaptor itself\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
949 return $self->dbc($arg);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
950 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
951
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
952
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
953 sub source { deprecate('Do not use - this method does nothing'); }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
954
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
955
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
956 =head2 assembly_type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
957
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
958 Description: DEPRECATED - Use CoordSystemAdaptor to obtain default coordinate
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
959 system instead.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
960
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
961 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
962
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
963 sub assembly_type{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
964 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
965
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
966 deprecate('Use CoordSystemAdaptor $csa->fetch_all->[0]->version() instead');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
967
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
968 my $csa = $self->get_CoordSystemAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
969 my ($cs) = @{$csa->fetch_all()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
970 return ($cs) ? $cs->version() : undef;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
971 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
972
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
973
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
974
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
975 =head2 list_supported_assemblies
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
976
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
977 Description: DEPRECATED - Use CoordSystemAdaptor to obtain list of top-level
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
978 coordinate systems instead
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
979
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
980 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
981
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
982 sub list_supported_assemblies {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
983 my($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
984 deprecate('Use CoordSystemAdaptor::fetch_all instead');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
985
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
986 my $csa = $self->get_CoordSystemAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
987 my %versions;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
988 foreach my $cs (@{$csa->fetch_all()}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
989 $versions{$cs->version()} = 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
990 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
991
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
992 return keys %versions;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
993 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
994
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
995
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
996 sub prepare{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
997 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
998
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
999 deprecate("prepare Should no longer be called from the DBAdaptor. DBConnection should now be used OR preferably the object adaptor itself\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1000 $self->dbc->prepare(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1001 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1002
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1003 sub dbname{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1004 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1005
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1006 deprecate("dbname Should no longer be called from the DBAdaptor. DBConnection should now be used OR preferably the object adaptor itself\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1007 $self->dbc->dbname(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1008 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1009
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1010 sub disconnect_when_inactive{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1011 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1012
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1013 deprecate("disconnect_when_inactive Should no longer be called from the DBAdaptor. DBConnection should now be used OR preferably the object adaptor itself\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1014 $self->dbc->disconnect_when_inactive(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1015 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1016
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1017 sub reconnect_when_lost{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1018 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1019
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1020 deprecate("reconnect_when_lost Should no longer be called from the DBAdaptor. DBConnection should now be used OR preferably the object adaptor itself\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1021 $self->dbc->reconnect_when_lost(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1022 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1023
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1024
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1025 sub host{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1026 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1027
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1028 deprecate("host Should no longer be called from the DBAdaptor. DBConnection should now be used OR preferably the object adaptor itself\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1029 $self->dbc->host(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1030 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1031 sub username{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1032 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1033
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1034 deprecate("username Should no longer be called from the DBAdaptor. DBConnection should now be used OR preferably the object adaptor itself\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1035 $self->dbc->username(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1036 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1037 sub password{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1038 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1039
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1040 deprecate("password Should no longer be called from the DBAdaptor. DBConnection should now be used OR preferably the object adaptor itself\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1041 $self->dbc->password(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1042 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1043 sub driver{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1044 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1045
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1046 deprecate("driver Should no longer be called from the DBAdaptor. DBConnection should now be used OR preferably the object adaptor itself\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1047 $self->dbc->driver(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1048 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1049 sub port{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1050 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1051
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1052 deprecate("port Should no longer be called from the DBAdaptor. DBConnection should now be used OR preferably the object adaptor itself\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1053 $self->dbc->port(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1054 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1055
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1056 sub db_handle{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1057 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1058
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1059
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1060 deprecate("db_handle Should no longer be called from the DBAdaptor. DBConnection should now be used OR preferably the object adaptor itself\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1061 $self->dbc->db_handle(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1062 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1063
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1064
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1065 1;