Mercurial > repos > mahtabm > ensembl
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/variant_effect_predictor/Bio/EnsEMBL/Funcgen/RunnableDB/Motif.pm Thu Apr 11 02:01:53 2013 -0400 @@ -0,0 +1,163 @@ +=pod + +=head1 NAME + +Bio::EnsEMBL::Funcgen::RunnableDB::Motif + +=head1 DESCRIPTION + +'Funcgen::Motif' + +TODO: Try to collate that to Funcgen + +=cut + + +package Bio::EnsEMBL::Funcgen::RunnableDB::Motif; + +use warnings; +use strict; + +use base ('Bio::EnsEMBL::Hive::Process'); + +use Bio::EnsEMBL::DBSQL::DBAdaptor; +use Bio::EnsEMBL::Funcgen::DBSQL::DBAdaptor; +use Bio::EnsEMBL::Utils::Exception qw(throw warning stack_trace_dump); +use Data::Dumper; + +sub fetch_input { # nothing to fetch... just the parameters... + my $self = shift @_; + + $self->SUPER::fetch_input(); + + if(!$self->param('bin_dir')){ throw "No binary folder given"; } + $self->_bin_folder($self->param('bin_dir')); + + if(!$self->param('species')){ throw "No species given"; } + $self->_species($self->param('species')); + + if(!$self->param('bin_size')){ throw "No bin size given"; } + $self->_bin_size($self->param('bin_size')); + + if(!$self->param('window_size')){ throw "No window size given"; } + $self->_window_size($self->param('window_size')); + + #Get the core db... possibly make these non-mandatory + if(!$self->param('dnadb_host')){ throw "No core host given"; } + if(!$self->param('dnadb_port')){ throw "No core port given"; } + if(!$self->param('dnadb_user')){ throw "No core user given"; } + #if(!$self->param('dnadb_name')){ throw "No core dbname given"; } + my $dba; + eval{ + $dba = Bio::EnsEMBL::DBSQL::DBAdaptor->new( + -host => $self->param('dnadb_host'), + -port => $self->param('dnadb_port'), + -user => $self->param('dnadb_user'), + -dbname => $self->param('dnadb_name'), + -species => $self->_species, + ); + }; + if($@) { throw "Error creating the Core DB Adaptor: $@"; } + if(!$dba){ throw "Could not connect to Core DB"; } + + #Get the efg db... always read only user + if(!$self->param('dbhost')){ throw "No host given"; } + if(!$self->param('dbport')){ throw "No port given"; } + if(!$self->param('dbuser')){ throw "No user given"; } + if(!$self->param('dbname')){ throw "No dbname given"; } + eval{ + $self->_efgdba(Bio::EnsEMBL::Funcgen::DBSQL::DBAdaptor->new( + -host => $self->param('dbhost'), + -port => $self->param('dbport'), + -user => $self->param('dbuser'), + -dbname => $self->param('dbname'), + -species => $self->_species, + -dnadb => $dba, + )); + }; + if($@) { throw "Error creating the EFG DB Adaptor: $@"; } + if(!$self->_efgdba()){ throw "Could not connect to EFG DB"; } + + my $dnadbc = $self->_efgdba()->dnadb->dbc; + warn $dnadbc->host." ".$dnadbc->port." ".$dnadbc->username." ".$dnadbc->dbname; + + + if(!$self->param('feature_set')){ throw "No feature set given"; } + my $fseta = $self->_efgdba()->get_FeatureSetAdaptor(); + my $fset = $fseta->fetch_by_name($self->param('feature_set')); + if(!$fset){ + throw $self->param('feature_set')." is not a valid Feature Set"; + } + $self->_feature_set($fset); + + if(!$self->param('output_dir')){ throw "No output dir given"; } + $self->_output_dir($self->param('output_dir')."/".$self->_feature_set->name); + + return 1; +} + +sub run { + my $self = shift @_; + + return 1; +} + + +sub write_output { # Nothing is written at this stage (for the moment) + + my $self = shift @_; + + return 1; + +} + +#Private Generic getter and setter +sub _getter_setter { + my ($self, $param_name, $param_value) = @_; + if(!$param_name){ return undef; } + if(!$param_value){ + $param_value = $self->param($param_name); + } else { + $self->param($param_name, $param_value); + } + return $param_value; +} + +# Private getter / setters : Maybe do some validation in some cases... + +#Private getter / setter to the bin folder +sub _bin_folder { + return $_[0]->_getter_setter('bin_folder',$_[1]); +} + +#Private getter / setter to the EFG DB Adaptor +sub _efgdba { + return $_[0]->_getter_setter('efgdb',$_[1]); +} + +#Private getter / setter to the bin size +sub _bin_size { + return $_[0]->_getter_setter('bin_size',$_[1]); +} + +#Private getter / setter to the window size +sub _window_size { + return $_[0]->_getter_setter('window_size',$_[1]); +} + +#Private getter / setter to the output dir +sub _output_dir { + return $_[0]->_getter_setter('output_dir',$_[1]); +} + +#Private getter / setter to the feature set +sub _feature_set { + return $_[0]->_getter_setter('feature_set',$_[1]); +} + +#Private getter / setter to the species +sub _species { + return $_[0]->_getter_setter('species',$_[1]); +} + +1;
