From e6a33df5e6108614fb5c22315cb6d4aca51d6557 Mon Sep 17 00:00:00 2001
From: Patrick Meidl <pm2@sanger.ac.uk>
Date: Fri, 28 Jul 2006 11:00:13 +0000
Subject: [PATCH] create cache for Id mapping one seq_region at a time

---
 misc-scripts/id_mapping/dump_by_seq_region.pl | 155 ++++++++++++++++++
 1 file changed, 155 insertions(+)
 create mode 100755 misc-scripts/id_mapping/dump_by_seq_region.pl

diff --git a/misc-scripts/id_mapping/dump_by_seq_region.pl b/misc-scripts/id_mapping/dump_by_seq_region.pl
new file mode 100755
index 0000000000..4e5821edeb
--- /dev/null
+++ b/misc-scripts/id_mapping/dump_by_seq_region.pl
@@ -0,0 +1,155 @@
+#!/usr/local/ensembl/bin/perl
+
+=head1 NAME
+
+
+=head1 SYNOPSIS
+
+.pl [arguments]
+
+Required arguments:
+
+  --dbname, db_name=NAME              database name NAME
+  --host, --dbhost, --db_host=HOST    database host HOST
+  --port, --dbport, --db_port=PORT    database port PORT
+  --user, --dbuser, --db_user=USER    database username USER
+  --pass, --dbpass, --db_pass=PASS    database passwort PASS
+
+Optional arguments:
+
+  --conffile, --conf=FILE             read parameters from FILE
+                                      (default: conf/Conversion.ini)
+
+  --logfile, --log=FILE               log to FILE (default: *STDOUT)
+  --logpath=PATH                      write logfile to PATH (default: .)
+  --logappend, --log_append           append to logfile (default: truncate)
+
+  -v, --verbose=0|1                   verbose logging (default: false)
+  -i, --interactive=0|1               run script interactively (default: true)
+  -n, --dry_run, --dry=0|1            don't write results to database
+  -h, --help, -?                      print help (this message)
+
+=head1 DESCRIPTION
+
+
+=head1 LICENCE
+
+This code is distributed under an Apache style licence. Please see
+http://www.ensembl.org/info/about/code_licence.html for details.
+
+=head1 AUTHOR
+
+Patrick Meidl <meidl@ebi.ac.uk>, Ensembl core API team
+
+=head1 CONTACT
+
+Please post comments/questions to the Ensembl development list
+<ensembl-dev@ebi.ac.uk>
+
+=cut
+
+use strict;
+use warnings;
+no warnings 'uninitialized';
+
+use FindBin qw($Bin);
+use vars qw($SERVERROOT);
+
+BEGIN {
+    $SERVERROOT = "$Bin/../../..";
+    unshift(@INC, "$SERVERROOT/ensembl/modules");
+    unshift(@INC, "$SERVERROOT/bioperl-live");
+}
+
+use Getopt::Long;
+use Pod::Usage;
+use Bio::EnsEMBL::Utils::ConfParser;
+use Bio::EnsEMBL::Utils::Logger;
+use Bio::EnsEMBL::Utils::ScriptUtils qw(dynamic_use);
+
+$| = 1;
+
+my $conf = new Bio::EnsEMBL::Utils::ConfParser(
+  -SERVERROOT => $SERVERROOT,
+);
+
+# parse options
+$conf->param('default_conf', './default.conf');
+$conf->parse_common_options(@_);
+$conf->parse_extra_options(qw(
+  oldhost|old_host=s
+  oldport|old_port=n
+  olduser|old_user=s
+  oldpass|old_pass=s
+  olddbname|old_dbname=s
+  newhost|new_host=s
+  newport|new_port=n
+  newuser|new_user=s
+  newpass|new_pass=s
+  newdbname|new_dbname=s
+  dumppath|dump_path=s
+  biotypes=s@
+  dbtype=s
+  slice_name=s
+  cache_impl=s
+));
+$conf->allowed_params(
+  $conf->get_common_params,
+  qw(
+    oldhost oldport olduser oldpass olddbname
+    newhost newport newuser newpass newdbname
+    dumppath biotypes
+    dbtype slice_name cache_impl
+  )
+);
+
+if ($conf->param('help') or $conf->error) {
+    warn $conf->error if $conf->error;
+    pod2usage(1);
+}
+
+# ask user to confirm parameters to proceed
+$conf->confirm_params;
+
+# get log filehandle and print heading and parameters to logfile
+my $logger = new Bio::EnsEMBL::Utils::Logger(
+  -LOGFILE      => $conf->param('logfile') || 'dump_by_seq_region.log',
+  -LOGPATH      => $conf->param('logpath'),
+  -LOGAPPEND    => $conf->param('logappend'),
+  -VERBOSE      => $conf->param('verbose'),
+  -IS_COMPONENT => $conf->param('is_component'),
+);
+
+# initialise log
+$logger->init_log($conf->list_all_params);
+
+# check required parameters were set
+$conf->check_required_params(
+  qw(
+    oldhost oldport olduser olddbname
+    newhost newport newuser newdbname
+    dumppath
+    dbtype slice_name cache_impl
+  )
+);
+
+# build cache
+my $cache_impl = $conf->param('cache_impl');
+
+dynamic_use($cache_impl);
+
+my $cache = $cache_impl->new(
+  -LOGGER       => $logger,
+  -CONF         => $conf,
+);
+
+my $dbtype = $conf->param('dbtype');
+my $slice_name = $conf->param('slice_name');
+my $i = 0;
+my $size = 0;
+($i, $size) = $cache->build_cache($dbtype, $slice_name);
+
+# log success
+$logger->log("Done with $dbtype $slice_name (genes: $i, filesize: $size, runtime: ".$logger->runtime." ".$logger->date_and_mem."\n");
+
+
-- 
GitLab