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