annotate variant_effect_predictor/Bio/EnsEMBL/IdMapping/BaseObject.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::IdMapping::BaseObject - base object for IdMapping objects
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 # this object isn't instantiated directly but rather extended
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 use Bio::EnsEMBL::IdMapping::BaseObject;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 our @ISA = qw(Bio::EnsEMBL::IdMapping::BaseObject);
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 the base object for some of the objects used in the IdMapping
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 application. An object that extends BaseObject will have a ConfParser,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 Logger and Cache object. BaseObject also implements some useful utility
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 functions related to file and db access.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 This isn't very clean OO design but it's efficient and easy to use...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 get_filehandle
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 file_exists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 fetch_value_from_db
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 dump_table_to_file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 upload_file_into_table
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 logger
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 conf
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 cache
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 package Bio::EnsEMBL::IdMapping::BaseObject;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 no warnings 'uninitialized';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 use Bio::EnsEMBL::Utils::Exception qw(throw warning);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 use Bio::EnsEMBL::Utils::ScriptUtils qw(path_append);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 Arg [LOGGER]: Bio::EnsEMBL::Utils::Logger $logger - a logger object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 Arg [CONF] : Bio::EnsEMBL::Utils::ConfParser $conf - a configuration object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 Arg [CACHE] : Bio::EnsEMBL::IdMapping::Cache $cache - a cache object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 Example : my $object = Bio::EnsEMBL::IdMapping::BaseObjectSubclass->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 -LOGGER => $logger,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 -CONF => $conf,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 -CACHE => $cache
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 Description : Constructor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 Return type : implementing subclass type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 Exceptions : thrown on wrong or missing arguments
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 my $caller = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 my $class = ref($caller) || $caller;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 my ($logger, $conf, $cache) = rearrange(['LOGGER', 'CONF', 'CACHE'], @_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 unless ($logger and ref($logger) and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 $logger->isa('Bio::EnsEMBL::Utils::Logger')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 throw("You must provide a Bio::EnsEMBL::Utils::Logger for logging.");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 unless ($conf and ref($conf) and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 $conf->isa('Bio::EnsEMBL::Utils::ConfParser')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 throw("You must provide configuration as a Bio::EnsEMBL::Utils::ConfParser object.");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 unless ($cache and ref($cache) and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 $cache->isa('Bio::EnsEMBL::IdMapping::Cache')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 throw("You must provide configuration as a Bio::EnsEMBL::IdMapping::Cache object.");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 my $self = {};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 bless ($self, $class);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 # initialise
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 $self->logger($logger);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 $self->conf($conf);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 $self->cache($cache);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 =head2 get_filehandle
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 Arg[1] : String $filename - filename for filehandle
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 Arg[2] : String $path_append - append subdirectory name to basedir
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 Arg[3] : String $mode - filehandle mode (<|>|>>)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 Example : my $fh = $object->get_filehandle('mapping_stats.txt', 'stats',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 '>');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 print $fh "Stats:\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 Description : Returns a filehandle to a file for reading or writing. The file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 is qualified with the basedir defined in the configuration and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 an optional subdirectory name.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 Return type : filehandle
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 Exceptions : thrown on missing filename
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 sub get_filehandle {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 my $filename = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 my $path_append = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 my $mode = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 throw("Need a filename for this filehandle.") unless (defined($filename));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 my $path = $self->conf->param('basedir');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 $path = path_append($path, $path_append) if (defined($path_append));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 $mode ||= '>';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 open(my $fh, $mode, "$path/$filename") or
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 throw("Unable to open $path/$filename: $!");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 return $fh;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 =head2 file_exists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 Arg[1] : String $filename - filename to test
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 Arg[2] : Boolean $path_append - turn on pre-pending of basedir
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 Example : unless ($object->file_exists('gene_mappings.ser', 1)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 $object->do_gene_mapping;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 Description : Tests if a file exists and has non-zero size.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 Return type : Boolean
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 sub file_exists {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 my $filename = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 my $path_append = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 my $path = $self->conf->param('basedir');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 $path = path_append($path, $path_append) if (defined($path_append));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 return (-s "$path/$filename");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 =head2 fetch_value_from_db
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 Arg[1] : DBI::db $dbh - a DBI database handle
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 Arg[2] : String $sql - SQL statement to execute
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 Example : my $num_genes = $object->fetch_value_from_db($dbh,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 'SELECT count(*) FROM gene');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 Description : Executes an SQL statement on a db handle and returns the first
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 column of the first row returned. Useful for queries returning a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 single value, like table counts.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 Return type : Return type of SQL statement
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 Exceptions : thrown on wrong or missing arguments
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 : under development
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 fetch_value_from_db {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 my $dbh = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 my $sql = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 throw("Need a db handle.") unless ($dbh and $dbh->isa('DBI::db'));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 throw("Need an SQL query to execute.") unless ($sql);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 my $sth = $dbh->prepare($sql);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 $sth->execute;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 my ($retval) = $sth->fetchrow_array;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 return $retval;
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 =head2 dump_table_to_file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 Arg[1] : String $dbtype - db type (source|target)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 Arg[2] : String $table - name of table to dump
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 Arg[3] : String $filename - name of dump file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 Arg[4] : Boolean $check_existing - turn on test for existing dump
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 Example : my $rows_dumped = $object->dump_table_to_file('source',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 'stable_id_event', 'stable_id_event_existing.txt');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 Description : Dumps the contents of a db table to a tab-delimited file. The
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 dump file will be written to a subdirectory called 'tables'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 under the basedir from your configuration.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 Return type : Int - the number of rows dumped
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 Exceptions : thrown on wrong or missing arguments
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 sub dump_table_to_file {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 my $dbtype = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 my $table = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 my $filename = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 my $check_existing = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 # argument check
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 unless (($dbtype eq 'source') or ($dbtype eq 'target')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 throw("Missing or unknown db type: $dbtype.");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 throw("Need a table name.") unless ($table);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 throw("Need a filename.") unless ($filename);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 # conditionally check if table was already dumped
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 if ($check_existing and $self->file_exists($filename, 'tables')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 $self->logger->info("$filename exists, won't dump again.\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 return 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 my $fh = $self->get_filehandle($filename, 'tables');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 my $dba = $self->cache->get_DBAdaptor($dbtype);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 my $dbh = $dba->dbc->db_handle;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 my $sth = $dbh->prepare("SELECT * FROM $table");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 $sth->execute;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 my $i = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 while (my @row = $sth->fetchrow_array) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 $i++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 # use '\N' for NULL values
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 for (my $j = 0; $j < scalar(@row); $j++) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 $row[$j] = '\N' unless (defined($row[$j]));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 print $fh join("\t", @row);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275 print $fh "\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278 $sth->finish;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280 return $i;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 =head2 upload_file_into_table
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 Arg[1] : String $dbtype - db type (source|target)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287 Arg[2] : String $table - name of table to upload the data to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 Arg[3] : String $filename - name of dump file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289 Arg[4] : Boolean $no_check_empty - don't check if table is empty
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 Example : my $rows_uploaded = $object->upload_file_into_table('target',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291 'stable_id_event', 'stable_id_event_new.txt');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292 Description : Uploads a tab-delimited data file into a db table. The data file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 will be taken from a subdirectory 'tables' under your configured
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294 basedir. If the db table isn't empty and $no_check_empty isn't
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 set, no data is uploaded (and a warning is issued).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 Return type : Int - the number of rows uploaded
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297 Exceptions : thrown on wrong or missing arguments
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 sub upload_file_into_table {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 my $dbtype = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307 my $table = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 my $filename = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309 my $no_check_empty = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 # argument check
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 unless ( ( $dbtype eq 'source' ) or ( $dbtype eq 'target' ) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313 throw("Missing or unknown db type: $dbtype.");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315 throw("Need a table name.") unless ($table);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316 throw("Need a filename.") unless ($filename);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 # sanity check for dry run
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 if ( $self->conf->param('dry_run') ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 $self->logger->warning(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321 "dry_run - skipping db upload for $filename.\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325 my $file =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 join( '/', $self->conf->param('basedir'), 'tables', $filename );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 my $r = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 if ( -s $file ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 $self->logger->debug( "$file -> $table\n", 1 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 my $dba = $self->cache->get_DBAdaptor($dbtype);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334 my $dbh = $dba->dbc->db_handle;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336 my $idtable = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 if ( $table =~ /^([^_]+)_stable_id/ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338 # This is a stable_id table we're working with.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 $idtable = 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 $table = $1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 # check table is empty
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344 my ( $sql, $sth );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345 unless ($no_check_empty) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 if ($idtable) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347 $sql =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 qq(SELECT count(*) FROM $table WHERE stable_id IS NOT NULL);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 $sql = qq(SELECT count(*) FROM $table);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353 $sth = $dbh->prepare($sql);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354 $sth->execute;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 my ($c) = $sth->fetchrow_array;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356 $sth->finish;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358 if ( $c > 0 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359 if ($idtable) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360 $self->logger->warning(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361 "Table $table contains $c stable IDs.\n",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362 1 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365 $self->logger->warning(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366 "Table $table not empty: found $c entries.\n",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367 1 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369 $self->logger->info( "Data not uploaded!\n", 1 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370 return $r;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372 } ## end unless ($no_check_empty)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374 # now upload the data
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375 if ($idtable) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376 # Create a temporary table, upload the data into it, and then
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377 # update the main table.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378 $dbh->do(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379 qq( CREATE TABLE stable_id_$$ ( object_id INTEGER UNSIGNED,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380 stable_id VARCHAR(255),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381 version SMALLINT UNSIGNED,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382 created_date DATETIME,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
383 modified_date DATETIME,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384 PRIMARY KEY(object_id) ) )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
385 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
386
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
387 $dbh->do(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
388 qq(LOAD DATA LOCAL INFILE '$file' INTO TABLE stable_id_$$));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
389
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
390 $dbh->do(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
391 qq(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
392 UPDATE $table, stable_id_$$
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
393 SET $table.stable_id=stable_id_$$.stable_id,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
394 $table.version=stable_id_$$.version,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
395 $table.created_date=stable_id_$$.created_date,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
396 $table.modified_date=stable_id_$$.modified_date
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
397 WHERE $table.${table}_id = stable_id_$$.object_id )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
398 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
399
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
400 $dbh->do(qq(DROP TABLE stable_id_$$));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
401 } ## end if ($idtable)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
402 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
403 $dbh->do(qq(LOAD DATA LOCAL INFILE '$file' INTO TABLE $table));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
404 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
405 $dbh->do(qq(OPTIMIZE TABLE $table));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
406
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
407 } ## end if ( -s $file )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
408 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
409 $self->logger->warning( "No data found in file $filename.\n", 1 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
410 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
411
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
412 return $r;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
413 } ## end sub upload_file_into_table
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
414
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
415
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
416 =head2 logger
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
417
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
418 Arg[1] : (optional) Bio::EnsEMBL::Utils::Logger - the logger to set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
419 Example : $object->logger->info("Starting ID mapping.\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
420 Description : Getter/setter for logger object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
421 Return type : Bio::EnsEMBL::Utils::Logger
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
422 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
423 Caller : constructor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
424 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
425 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
426
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
427 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
428
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
429 sub logger {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
430 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
431 $self->{'_logger'} = shift if (@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
432 return $self->{'_logger'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
433 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
434
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
435
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
436 =head2 conf
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
437
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
438 Arg[1] : (optional) Bio::EnsEMBL::Utils::ConfParser - the configuration
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
439 to set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
440 Example : my $basedir = $object->conf->param('basedir');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
441 Description : Getter/setter for configuration object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
442 Return type : Bio::EnsEMBL::Utils::ConfParser
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
443 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
444 Caller : constructor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
445 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
446 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
447
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
448 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
449
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
450 sub conf {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
451 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
452 $self->{'_conf'} = shift if (@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
453 return $self->{'_conf'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
454 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
455
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
456
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
457 =head2 cache
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
458
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
459 Arg[1] : (optional) Bio::EnsEMBL::IdMapping::Cache - the cache to set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
460 Example : $object->cache->read_from_file('source');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
461 Description : Getter/setter for cache object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
462 Return type : Bio::EnsEMBL::IdMapping::Cache
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
463 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
464 Caller : constructor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
465 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
466 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
467
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
468 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
469
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
470 sub cache {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
471 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
472 $self->{'_cache'} = shift if (@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
473 return $self->{'_cache'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
474 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
475
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
476
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
477 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
478