<commit_before>#
# Object for storing details of a simple analysis job
#
# Cared for by <NAME>  <<EMAIL>>
#
# Copyright <NAME>
#
# You may distribute this module under the same terms as perl itself
#
# POD documentation - main docs before the code

=pod 

=head1 NAME

Bio::EnsEMBL::Pipeline::SimpleJob

=head1 SYNOPSIS
    my $db       = new Bio::EnsEMBL::Pipeline::DBSQL::Obj(...);
    my $analysis = new Bio::EnsEMBL::Pipeline::Analysis  (...);

    my $job      = new Bio::EnsEMBL::Pipeline::DBSQL::Job(-dbobj    => $db,
							  -input_id => 1,
							  -analysis => $analysis,
							  -queue    => 'fast_blast_farm',
							  -create   => 1,
							  );

    #### This is the module you change for different analysis types.

    my $runnable = new Bio::EnsEMBL::Pipeline::Runnable::ProcessList();

    my $runjob   = new Bio::EnsEMBL::Pipeline::SimpleJob(-jobobj   => $job,
							 -runnable => $runjob);

    my $stat   = $runjob->run;
    my $output = $runjob->output;



=head1 DESCRIPTION

Stores run and status details of a simple analysis job.  This module is a 
container bringing together the two parts of the pipeline - the database access 
part (job ids,status etc) and the doing part which actually runs the analysis and 
parses the results.

SimpleJob -> JobI       - stores job status and frozen objects in the database
          -> RunnableI  - runs programs and parses output.

In this way we can use our Runnable objects as standalone modules for 
one off analysis and can also change our job tracking code without interfering
with the analysis part.

=head1 CONTACT

Describe contact details here

=head1 APPENDIX

The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _

=cut

# Let the code begin...

package Bio::EnsEMBL::Pipeline::SimpleJob;

use vars qw(@ISA);
use strict;

use FreezeThaw qw(freeze thaw);

# Object preamble - inherits from Bio::Root::Object;

use Bio::EnsEMBL::Pipeline::DB::JobI;
use Bio::EnsEMBL::Pipeline::RunnableDBI;
use Bio::EnsEMBL::Pipeline::Runnable::TransferClone;
use Bio::EnsEMBL::Pipeline::Runnable::CloneExonPair;

@ISA = qw(Bio::EnsEMBL::Pipeline::RunnableDBI Bio::EnsEMBL::Pipeline::DB::JobI Bio::Root::Object);


sub _initialize {
    my ($self,@args) = @_;

    my $make = $self->SUPER::_initialize;
    my ($jobobj,$runnable) = $self->_rearrange([qw(JOBOBJ
						   RUNNABLE
						   )],@args);

    $jobobj  ->isa("Bio::EnsEMBL::Pipeline::DB::JobI")  || $self->throw("No input job object");
    $runnable->isa("Bio::EnsEMBL::Pipeline::RunnableDBI") || $self->throw("No input RunnableDBI object");

    $self->jobobj  ($jobobj);
    $self->runnable($runnable);
<commit_msg>*** empty log message ***<commit_after>#
# Object for storing details of a simple analysis job
#
# Cared for by <NAME>  <<EMAIL>>
#
# Copyright <NAME>
#
# You may distribute this module under the same terms as perl itself
#
# POD documentation - main docs before the code

=pod 

=head1 NAME

Bio::EnsEMBL::Pipeline::SimpleJob

=head1 SYNOPSIS
    my $db       = new Bio::EnsEMBL::Pipeline::DBSQL::Obj(...);
    my $analysis = new Bio::EnsEMBL::Pipeline::Analysis  (...);

    my $job      = new Bio::EnsEMBL::Pipeline::DBSQL::Job(-dbobj    => $db,
							  -input_id => 1,
							  -analysis => $analysis,
							  -queue    => 'fast_blast_farm',
							  -create   => 1,
							  );

    #### This is the module you change for different analysis types.

    my $runnable = new Bio::EnsEMBL::Pipeline::Runnable::ProcessList();

    my $runjob   = new Bio::EnsEMBL::Pipeline::SimpleJob(-jobobj   => $job,
							 -runnable => $runjob);

    my $stat   = $runjob->run;
    my $output = $runjob->output;



=head1 DESCRIPTION

Stores run and status details of a simple analysis job.  This module is a 
container bringing together the two parts of the pipeline - the database access 
part (job ids,status etc) and the doing part which actually runs the analysis and 
parses the results.

SimpleJob -> JobI       - stores job status and frozen objects in the database
          -> RunnableI  - runs programs and parses output.

In this way we can use our Runnable objects as standalone modules for 
one off analysis and can also change our job tracking code without interfering
with the analysis part.

=head1 CONTACT

Describe contact details here

=head1 APPENDIX

The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _

=cut

# Let the code begin...

package Bio::EnsEMBL::Pipeline::SimpleJob;

use vars qw(@ISA);
use strict;

use FreezeThaw qw(freeze thaw);

# Object preamble - inherits from Bio::Root::Object;

use Bio::EnsEMBL::Pipeline::DB::JobI;
use Bio::EnsEMBL::Pipeline::RunnableDBI;

@ISA = qw(Bio::EnsEMBL::Pipeline::RunnableDBI Bio::EnsEMBL::Pipeline::DB::JobI Bio::Root::Object);


sub _initialize {
    my ($self,@args) = @_;

    my $make = $self->SUPER::_initialize;
    my ($jobobj,$runnable) = $self->_rearrange([qw(JOBOBJ
						   RUNNABLE
						   )],@args);

    $jobobj  ->isa("Bio::EnsEMBL::Pipeline::DB::JobI")  || $self->throw("No input job object");
    $runnable->isa("Bio::EnsEMBL::Pipeline::RunnableDBI") || $self->throw("No input RunnableDBI object");

    $self->jobobj  ($jobobj);
    $self->runnable($runnable);

{'fraction_non_alphanumeric': 0.12872782181955456, 'fraction_numerical': 0.0026425066062665155, 'mean_word_length': 3.676963812886143, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 49, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6803336', 'n_tokens_mistral': 1897, 'n_tokens_neox': 1668, 'n_words': 534}