annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/RunnableDB/Annotation.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 =pod
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 Bio::EnsEMBL::Funcgen::RunnableDB::Annotation
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 'Annotation' is a base class for runnables running the Annotatin Pipeline
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10 It performs common tasks such as connecting to the EFG DB etc...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 package Bio::EnsEMBL::Funcgen::RunnableDB::Annotation;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 use Bio::EnsEMBL::Funcgen::Utils::Helper;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 use Bio::EnsEMBL::DBSQL::DBConnection;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 use Bio::EnsEMBL::DBSQL::DBAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22 use Bio::EnsEMBL::Funcgen::DBSQL::DBAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 use Bio::EnsEMBL::Funcgen::InputSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 use Bio::EnsEMBL::Funcgen::DataSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 use Bio::EnsEMBL::Funcgen::FeatureSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 use Bio::EnsEMBL::Funcgen::AnnotatedFeature;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 use Bio::EnsEMBL::Utils::Exception qw(throw warning stack_trace_dump);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 use Data::Dumper;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 use DBI;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 #use base ('Bio::EnsEMBL::Hive::ProcessWithParams');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 use base ('Bio::EnsEMBL::Hive::Process');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 #This defines a set of parameters based on given parameters from the pipeline:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 sub fetch_input { # nothing to fetch... just the DB parameters...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 my $self = shift @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 my $dnadb_params = $self->param('dnadb') || throw "No parameters for Core DB";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 eval{ $self->_dnadba(Bio::EnsEMBL::DBSQL::DBAdaptor->new(%{ $dnadb_params })); };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 if($@) { throw "Error creating the Core DB Adaptor: $@"; }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 if(!$self->_dnadba()){ throw "Could not connect to Core DB"; }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 $self->_dnadb_params($dnadb_params);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 #Get efg connection, otherwise fail..
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 my $efgdb_params = $self->param('efgdb') || throw "No parameters for EFG DB";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 eval{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 $self->_efgdba(Bio::EnsEMBL::Funcgen::DBSQL::DBAdaptor->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 %{ $efgdb_params },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 #Why is this not working???
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 #-dnadb => $self->_dnadba,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 -dnadb_user => $self->_dnadba->dbc->username,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 -dnadb_port => $self->_dnadba->dbc->port,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 -dnadb_host => $self->_dnadba->dbc->host,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 -dnadb_dbname => $self->_dnadba->dbc->dbname,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 ));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 if($@) { throw "Error creating the EFG DB Adaptor: $@"; }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 if(!$self->_efgdba()){ throw "Could not connect to EFG DB"; }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 $self->_efgdb_params($efgdb_params);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 #Get work db connection, otherwise fail..
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 my $workdb_params = $self->param('workdb') || throw "No parameters for Work server";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 $self->_workdb_params($workdb_params);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 my $species = $self->param('species') || throw "No species defined";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 $self->_species($species);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 #Not is use, currently...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 #my $release = $self->param('release') || throw "Release number not specified";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 #$self->_release($release);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 my $work_dir = $self->param('work_dir') || throw "'work_dir' is a required parameter";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 $self->_work_dir($work_dir);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 #Work with conventions here too?? work_dir/output/dbname ??
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 my $output_dir = $self->param('output_dir') || throw "'output_dir' is a required parameter";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 $self->_output_dir($output_dir);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 sub run {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 my $self = shift @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 sub write_output {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 my $self = shift @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 #Private Generic getter and setter
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 sub _getter_setter {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 my ($self, $param_name, $param_value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 if(!$param_name){ return undef; }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 if(!$param_value){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 $param_value = $self->param($param_name);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 $self->param($param_name, $param_value);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 return $param_value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 # Private getter / setters : Maybe do some validation in some cases...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 #Private getter / setter to the Work DB Connection params
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 sub _workdb_params {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 return $_[0]->_getter_setter('workdb_params',$_[1]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 #Private getter / setter to the EFG DB Adaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 sub _efgdba {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 return $_[0]->_getter_setter('efgdb',$_[1]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 #Private getter / setter to the EFG DB Connection params
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 sub _efgdb_params {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 return $_[0]->_getter_setter('efgdb_params',$_[1]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 #Private getter / setter to the Core DB Adaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 sub _dnadba {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 return $_[0]->_getter_setter('dnadb',$_[1]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 #Private getter / setter to the Core DB Connection params
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 sub _dnadb_params {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 return $_[0]->_getter_setter('dnadb_params',$_[1]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 #Private getter / setter to the Species name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 sub _species {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 return $_[0]->_getter_setter('species',$_[1]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 #Private getter / setter to the work folder
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 sub _work_dir {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 return $_[0]->_getter_setter('work_dir',$_[1]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 #Private getter / setter to the output folder
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 sub _output_dir {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 return $_[0]->_getter_setter('output_dir',$_[1]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 #Private getter / setter to the release number
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 sub _release {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 return $_[0]->_getter_setter('release',$_[1]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 1;