annotate variant_effect_predictor/Bio/EnsEMBL/Utils/SchemaConversion.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::Utils::SchemaConversion - Utility module for Vega schema conversion script
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 my $serverroot = '/path/to/ensembl';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 my $conversion =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 Bio::EnsEMBL::Utils::ConversionSupport->new($serverroot);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 # parse common options
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 $conversion->conv_usage->parse_common_options;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 # convert from schema 19 to 20+
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 $conversion->do_conversion()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 This module is a helper module for database conversion, for
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 both vega-vega and ensembl-vega schemas. It provides a wrapper
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 around SeqStoreConverter::BasicConverter and the species specific
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 methods therein. Also provides access to helper functions in
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 Bio::EnsEMBL::Utils::ConversionSupport
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 package Bio::EnsEMBL::Utils::SchemaConversion;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 use Bio::EnsEMBL::Utils::ConversionSupport;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 use Data::Dumper;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 Example : $conversion->Bio::EnsEMBL::Utils::SchemaConversion->new($serverroot);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 Description : Constructor, including an instance of a Bio::EnsEMBL::Utils::ConversionSupport
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 object. Parses input file and checks input with user
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 Return type : Bio::EnsEMBL::Utils::SchemaConversion object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 Exceptions : thrown if $Siteroot not passed over
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 Caller : $Siteroot/utils/vega_schema_conversion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 my $class = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 my $support = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 my $self = {};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 bless ($self,$class);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 $self->{config} = Bio::EnsEMBL::Utils::ConversionSupport->new($support);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 $self->conv_support->parse_common_options;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 $self->conv_support->parse_extra_options('do_vega_sc=s',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 'do_ens_sc=s',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 'source_db=s',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 'core_sql=s',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 'vega_sql=s',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 'patch_sql=s',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 'force=s',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 'do_features=s');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 #check input and show help
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 $self->conv_usage() if ($self->conv_support->param("help"));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 $self->conv_usage("configuration file needed") unless ($self->conv_support->param("conffile"));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 $self->conv_usage("password for database access needed") unless ($self->conv_support->param("pass"));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 $self->conv_usage("can only do conversion to ensembl OR Vega, not both") if ($self->conv_support->param('do_vega_sc') && $self->conv_support->param('do_ens_sc'));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 $self->conv_usage("You need to do vega->veg or ensembl->vega conversion") unless ($self->conv_support->param('do_vega_sc') || $self->conv_support->param('do_ens_sc'));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 # ask user to confirm parameters to proceed
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 $self->conv_support->allowed_params('conffile',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 'do_vega_sc',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 'do_ens_sc',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 'host',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 'port',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 'user',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 'pass',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 'source_db',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 'dbname',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 'force',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 'do_features',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 'verbose',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 'logpath',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 'logfile',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 'core_sql',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 'vega_sql',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 'patch_sql');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 $self->conv_support->confirm_params;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 =head2 conv_support
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 Example : $conversion->conv_support;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 Description : Provides access to Bio::EnsEMBL::Utils::ConversionSupport methods
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 Return type : Bio::EnsEMBL::Utils::ConversionSuppor object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 sub conv_support {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 return $self->{config};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 =head2 conv_obj
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 Example : $conversion->conv_obj;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 Description : Provides access to SeqStoreConverter::BasicConverter methods
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 Return type : SeqStoreConverter::BasicConverter object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 sub conv_obj {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 return $self->{'converter_object'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 =head2 species_alias
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 Example : $self->species_alias
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 Description : examines name of source database to determine which conversion module to use
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 Return type : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 Exceptions : die if wrong species name used
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 Caller : $self
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 sub species_alias {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 my $self=shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 my $name = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 return 'CanisFamiliaris' if $name =~ /canis/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 return 'HomoSapiens' if $name =~ /homo/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 return 'MusMusculus' if $name =~ /mus/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 return 'DanioRerio' if $name =~ /danio/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 ##hack - should use own modules
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 return 'HomoSapiens' if $name =~ /sus/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 die "invalid name of source database, please check configuration file";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 =head2 choose_conversion_type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 Example : $conversion->choose_conversion_type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 Description : compares conversion type (ensembl or vega) and species type with
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 available modules and chooses that to use for the conversion. Stores
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 a converter object within the caller
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 Return type : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 Caller : $Siteroot/utils/vega_schema_conversion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 sub choose_conversion_type {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 my $converter;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 my $species;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 $species = $self->species_alias($self->conv_support->param('source_db'));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 if ($self->conv_support->param('do_vega_sc')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 $species = "vega::".$species;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 eval "require SeqStoreConverter::$species";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 if($@) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 warn("Could not require conversion module SeqStoreConverter::$species\ for vega conversion\n" .
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 "Using SeqStoreConverter::BasicConverter instead:\n$@");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 require SeqStoreConverter::BasicConverter;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 $species = "BasicConverter";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 warn "Using conversion module SeqStoreConverter::$species for vega conversion\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 eval "require SeqStoreConverter::$species";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 if($@) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 warn("Could not require conversion module SeqStoreConverter::$species for Ensembl conversion\n" .
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 "Using SeqStoreConverter::BasicConverter instead:\n$@");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 require SeqStoreConverter::BasicConverter;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 $species = "BasicConverter";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 warn "Using conversion module SeqStoreConverter::$species for Ensembl conversion\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 $self->conv_support->param('vega_sql',0);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 $converter = "SeqStoreConverter::$species"->new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 ( $self->conv_support->param('user'),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 $self->conv_support->param('pass'),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 $self->conv_support->param('host').':'.$self->conv_support->param('port'),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 $self->conv_support->param('source_db'),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 $self->conv_support->param('dbname'),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 $self->conv_support->param('core_sql'),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 $self->conv_support->param('vega_sql'),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 $self->conv_support->param('force'),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 $self->conv_support->param('verbose'),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 '',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 $self->{'converter_object'} = $converter;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 =head2 do_conversion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 Example : $conversion->do_conversion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 Description : does the database conversion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 Return type : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 Caller : $Siteroot/utils/vega_schema_conversion
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
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 sub do_conversion {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 my $self= shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 $self->conv_obj->debug( "\n\n*** converting " . $self->conv_obj->source . " to " .
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 $self->conv_obj->target() . " ***");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 $self->conv_obj->transfer_meta();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 $self->conv_obj->create_coord_systems();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 $self->conv_obj->create_seq_regions();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 $self->conv_obj->create_assembly();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 $self->conv_obj->create_attribs();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 $self->conv_obj->set_top_level();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 $self->conv_obj->transfer_dna();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 $self->conv_obj->back_patch_schema();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 $self->conv_obj->transfer_genes();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 $self->conv_obj->transfer_prediction_transcripts();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 if ($self->conv_support->param('do_features')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 $self->conv_obj->transfer_features();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 #use this for both ensembl and vega for now,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 #but might need changing when vega gets eg transcript modified dates
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 $self->conv_obj->transfer_vega_stable_ids();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 $self->conv_obj->copy_other_tables();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 $self->conv_obj->copy_repeat_consensus();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 $self->conv_obj->create_meta_coord();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 if ($self->conv_support->param('do_vega_sc')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 $self->conv_obj->copy_other_vega_tables();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 $self->conv_obj->update_clone_info();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 $self->conv_obj->remove_supercontigs();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 $self->conv_obj->copy_internal_clone_names();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 $self->conv_obj->copy_assembly_exception;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 =head2 make_schema_up_to_date
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 Example : $conversion->make_schema_up_to_date
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 Description : patches schema to latest version
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275 Return type : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277 Caller : $conversion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281 sub make_schema_up_to_date {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283 $self->conv_obj->debug ("\nPatching schema to latest version\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 my $user = $self->conv_obj->user;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285 my $pass = $self->conv_obj->password;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 my $port = $self->conv_obj->port;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287 my $host = $self->conv_obj->host;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 my $target = $self->conv_obj->target;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289 my $patch_schema = $self->conv_support->param('patch_sql');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 my $cmd = "/usr/local/mysql/bin/mysql -u $user -p$pass -P $port -h $host $target < $patch_schema";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291 system ($cmd);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 =head2 conv_usage
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 Example : $conversion->conv_usage("message")
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 Description : prints usage information and exits
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300 Return type : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302 Caller : $Siteroot/utils/vega_schema_conversion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 sub conv_usage {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 my $msg = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 print STDERR "\nMSG: $msg\n" if($msg);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 print STDERR <<EOF;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314 ** Source and target databases must be on the same mysql instance
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316 usage: ./conversion_densities.pl <options>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 options: --conf <conf_file> configuration file (uses conf/Conversion.ini by default):
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 fields:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321 do_vega_sc (do vega conversion: 0 or 1)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322 do_ens_sc (do ensembl conversion: 0 or 1)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323 user (a mysql db user with read/write priveleges)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 host (eg ecs3f)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325 port (eg 3310)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 source_db (schema 19 source database)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 dbname (schema 20+ target database)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 force (overwrite existing target database: 0 or 1)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 verbose (print out debug statements: 0 or 1)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330 logpath (location of log file)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 do_features (transfer dna- and protein-align features, for debugging: 0 or 1)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332 core_sql (location of ensembl schema creation script: ensembl/sql/table.sql)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 vega_sql (location of creation script for additional vega tables: ensembl/sql/vega_specific_tables.sql)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334 patch_sql (location of schema patching script: ensembl/sql/vega_latest_schema.sql)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336 --log name of log_file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 --help display this message
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 EOF
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 exit;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347