Raw content of Bio::EnsEMBL::Compara::RunnableDB::CreateHclusterPrepareJobs # # You may distribute this module under the same terms as perl itself # # POD documentation - main docs before the code =pod =head1 NAME Bio::EnsEMBL::Compara::RunnableDB::CreateHclusterPrepareJobs =cut =head1 SYNOPSIS my $aa = $sdba->get_AnalysisAdaptor; my $analysis = $aa->fetch_by_logic_name('CreateHclusterPrepareJobs'); my $rdb = new Bio::EnsEMBL::Compara::RunnableDB::CreateHclusterPrepareJobs(); $rdb->fetch_input; $rdb->run; =cut =head1 DESCRIPTION This is a homology compara specific runnableDB, that based on an input of arrayrefs of genome_db_ids, creates Homology_dNdS jobs in the hive analysis_job table. =cut =head1 CONTACT avilella@ebi.ac.uk =cut =head1 APPENDIX The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _ =cut package Bio::EnsEMBL::Compara::RunnableDB::CreateHclusterPrepareJobs; use strict; use Bio::EnsEMBL::Compara::DBSQL::DBAdaptor; use Bio::EnsEMBL::Hive; use Bio::EnsEMBL::Hive::Process; our @ISA = qw(Bio::EnsEMBL::Hive::Process); sub fetch_input { my( $self) = @_; $self->{'species_set'} = undef; $self->throw("No input_id") unless defined($self->input_id); #create a Compara::DBAdaptor which shares the same DBI handle #with the pipeline DBAdaptor that is based into this runnable $self->{'comparaDBA'} = Bio::EnsEMBL::Compara::DBSQL::DBAdaptor->new(-DBCONN=>$self->db->dbc); $self->get_params($self->parameters); return 1; } sub get_params { my $self = shift; my $param_string = shift; return unless($param_string); print("parsing parameter string : ",$param_string,"\n"); my $params = eval($param_string); return unless($params); foreach my $key (keys %$params) { print(" $key : ", $params->{$key}, "\n"); } if (defined $params->{'species_set'}) { $self->{'species_set'} = $params->{'species_set'}; } print("parameters...\n"); printf(" species_set : (%s)\n", join(',', @{$self->{'species_set'}})); return; } sub run { my $self = shift; return 1 unless($self->{'species_set'}); $self->create_analysis_jobs($self->{'species_set'}); return 1; } sub write_output { my $self = shift; return 1; } ########################################## # # internal methods # ########################################## sub create_analysis_jobs { my $self = shift; my $aa = $self->db->get_AnalysisAdaptor; my $hclusterprepare_analysis = $aa->fetch_by_logic_name('HclusterPrepare'); foreach my $species (@{$self->{species_set}}) { my $analysis_id = $hclusterprepare_analysis->dbID; my $sql = "insert ignore into analysis_job (analysis_id,input_id,status) VALUES ($analysis_id,$species,'READY')"; my $sth = $self->dbc->prepare($sql); $sth->execute; $sth->finish; } } 1;