annotate variant_effect_predictor/Bio/EnsEMBL/Utils/EasyArgv.pm @ 2:a5976b2dce6f

changing defualt values for ensembl database
author mahtabm
date Thu, 11 Apr 2013 17:15:42 +1000
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 =head1 AUTHOR
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 Juguang Xiao <juguang@tll.org.sg>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 Bio::EnsEMBL::Utils::EasyArgv
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 use Bio::EnsEMBL::Utils::EasyArgv;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 my $db = get_ens_db_from_argv; # this method is exported.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 use Getopt::Long;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 my $others;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 &GetOptions( 'others=s' => \$others );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 This is a lazy but easy way to get the db-related arguments. All you
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 need to do is to invoke get_ens_db_from_argv before using standard
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 Getopt. The below options will be absorbed and removed from @ARGV.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 db_file, host, db_host, dbhost, user, db_user, dbuser, pass, db_pass,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 dbpass, dbname, db_name.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 Now you can take advantage of Perl's do method to execute a file as perl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 script and get returned the last line of it. For your most accessed db
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 setting, you can have a file named, say, ensdb_homo_core_18.perlobj,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 with the content like
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 use strict; # The ceiling line
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 use Bio::EnsEMBL::DBSQL::DBAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 my $db = Bio::EnsEMBL::DBSQL::DBAdaptor->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 -host => 'ensembldb.ensembl.org',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 -user => 'anonymous',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 -dbname => 'homo_sapiens_core_18_34'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 $db; # The floor line
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 In the your command line, you just need to write like
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 perl my_script.pl -db_file ensdb_homo_core_18.perlobj
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 rather than the verbose
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 -host ensembldb.ensembl.org -user anonymous \
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 -dbname homo_sapiens_core_18_34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 package Bio::EnsEMBL::Utils::EasyArgv;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 use vars qw($debug);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 use Exporter ();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 our @ISA= qw(Exporter);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 our @EXPORT = qw(get_ens_db_from_argv
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 use Bio::Root::Root; # For _load_module
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 use Getopt::Long;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 sub _debug_print;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 sub get_ens_db_from_argv {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 my ($db_file, $host, $user, $pass, $dbname, $driver, $db_module);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 $host = 'localhost';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 $driver ='mysql';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 $db_module = 'Bio::EnsEMBL::SQL::DBAdaptor';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 Getopt::Long::config('pass_through');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 &GetOptions(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 'db_file=s' => \$db_file,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 'driver|dbdriver|db_driver=s' => \$driver,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 'host|dbhost|db_host=s' => \$host,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 'user|dbuser|db_user=s' => \$user,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 'pass|dbpass|db_pass=s' => \$pass,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 'dbname|db_name=s' => \$dbname,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 'db_module=s' => \$db_module
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 my $db;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 if(defined $db_file){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 -e $db_file or die "'$db_file' is defined but does not exist\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 eval { $db = do($db_file) };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 $@ and die "'$db_file' is not a perlobj file\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 $db->isa('Bio::EnsEMBL::DBSQL::DBAdaptor')
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 or die "'$db_file' is not EnsEMBL DBAdaptor\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 _debug_print "I get a db from file\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 }elsif(defined $host and defined $user and defined $dbname){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 Bio::Root::Root::_load_module($db_module);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 $db = $db_module->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 -host => $host,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 -user => $user,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 -pass => $pass,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 -dbname => $dbname,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 -driver => $driver
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 }else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 die "Cannot get the db, due to the insufficient information\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 return $db;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 sub _debug_print {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 print STDERR @_ if $debug;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 1;