comparison variant_effect_predictor/Bio/EnsEMBL/Funcgen/RunnableDB/Motif.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:1f6dce3d34e0
1 =pod
2
3 =head1 NAME
4
5 Bio::EnsEMBL::Funcgen::RunnableDB::Motif
6
7 =head1 DESCRIPTION
8
9 'Funcgen::Motif'
10
11 TODO: Try to collate that to Funcgen
12
13 =cut
14
15
16 package Bio::EnsEMBL::Funcgen::RunnableDB::Motif;
17
18 use warnings;
19 use strict;
20
21 use base ('Bio::EnsEMBL::Hive::Process');
22
23 use Bio::EnsEMBL::DBSQL::DBAdaptor;
24 use Bio::EnsEMBL::Funcgen::DBSQL::DBAdaptor;
25 use Bio::EnsEMBL::Utils::Exception qw(throw warning stack_trace_dump);
26 use Data::Dumper;
27
28 sub fetch_input { # nothing to fetch... just the parameters...
29 my $self = shift @_;
30
31 $self->SUPER::fetch_input();
32
33 if(!$self->param('bin_dir')){ throw "No binary folder given"; }
34 $self->_bin_folder($self->param('bin_dir'));
35
36 if(!$self->param('species')){ throw "No species given"; }
37 $self->_species($self->param('species'));
38
39 if(!$self->param('bin_size')){ throw "No bin size given"; }
40 $self->_bin_size($self->param('bin_size'));
41
42 if(!$self->param('window_size')){ throw "No window size given"; }
43 $self->_window_size($self->param('window_size'));
44
45 #Get the core db... possibly make these non-mandatory
46 if(!$self->param('dnadb_host')){ throw "No core host given"; }
47 if(!$self->param('dnadb_port')){ throw "No core port given"; }
48 if(!$self->param('dnadb_user')){ throw "No core user given"; }
49 #if(!$self->param('dnadb_name')){ throw "No core dbname given"; }
50 my $dba;
51 eval{
52 $dba = Bio::EnsEMBL::DBSQL::DBAdaptor->new(
53 -host => $self->param('dnadb_host'),
54 -port => $self->param('dnadb_port'),
55 -user => $self->param('dnadb_user'),
56 -dbname => $self->param('dnadb_name'),
57 -species => $self->_species,
58 );
59 };
60 if($@) { throw "Error creating the Core DB Adaptor: $@"; }
61 if(!$dba){ throw "Could not connect to Core DB"; }
62
63 #Get the efg db... always read only user
64 if(!$self->param('dbhost')){ throw "No host given"; }
65 if(!$self->param('dbport')){ throw "No port given"; }
66 if(!$self->param('dbuser')){ throw "No user given"; }
67 if(!$self->param('dbname')){ throw "No dbname given"; }
68 eval{
69 $self->_efgdba(Bio::EnsEMBL::Funcgen::DBSQL::DBAdaptor->new(
70 -host => $self->param('dbhost'),
71 -port => $self->param('dbport'),
72 -user => $self->param('dbuser'),
73 -dbname => $self->param('dbname'),
74 -species => $self->_species,
75 -dnadb => $dba,
76 ));
77 };
78 if($@) { throw "Error creating the EFG DB Adaptor: $@"; }
79 if(!$self->_efgdba()){ throw "Could not connect to EFG DB"; }
80
81 my $dnadbc = $self->_efgdba()->dnadb->dbc;
82 warn $dnadbc->host." ".$dnadbc->port." ".$dnadbc->username." ".$dnadbc->dbname;
83
84
85 if(!$self->param('feature_set')){ throw "No feature set given"; }
86 my $fseta = $self->_efgdba()->get_FeatureSetAdaptor();
87 my $fset = $fseta->fetch_by_name($self->param('feature_set'));
88 if(!$fset){
89 throw $self->param('feature_set')." is not a valid Feature Set";
90 }
91 $self->_feature_set($fset);
92
93 if(!$self->param('output_dir')){ throw "No output dir given"; }
94 $self->_output_dir($self->param('output_dir')."/".$self->_feature_set->name);
95
96 return 1;
97 }
98
99 sub run {
100 my $self = shift @_;
101
102 return 1;
103 }
104
105
106 sub write_output { # Nothing is written at this stage (for the moment)
107
108 my $self = shift @_;
109
110 return 1;
111
112 }
113
114 #Private Generic getter and setter
115 sub _getter_setter {
116 my ($self, $param_name, $param_value) = @_;
117 if(!$param_name){ return undef; }
118 if(!$param_value){
119 $param_value = $self->param($param_name);
120 } else {
121 $self->param($param_name, $param_value);
122 }
123 return $param_value;
124 }
125
126 # Private getter / setters : Maybe do some validation in some cases...
127
128 #Private getter / setter to the bin folder
129 sub _bin_folder {
130 return $_[0]->_getter_setter('bin_folder',$_[1]);
131 }
132
133 #Private getter / setter to the EFG DB Adaptor
134 sub _efgdba {
135 return $_[0]->_getter_setter('efgdb',$_[1]);
136 }
137
138 #Private getter / setter to the bin size
139 sub _bin_size {
140 return $_[0]->_getter_setter('bin_size',$_[1]);
141 }
142
143 #Private getter / setter to the window size
144 sub _window_size {
145 return $_[0]->_getter_setter('window_size',$_[1]);
146 }
147
148 #Private getter / setter to the output dir
149 sub _output_dir {
150 return $_[0]->_getter_setter('output_dir',$_[1]);
151 }
152
153 #Private getter / setter to the feature set
154 sub _feature_set {
155 return $_[0]->_getter_setter('feature_set',$_[1]);
156 }
157
158 #Private getter / setter to the species
159 sub _species {
160 return $_[0]->_getter_setter('species',$_[1]);
161 }
162
163 1;