Bio-Roary
view release on metacpan or search on metacpan
lib/Bio/Roary/External/PostAnalysis.pm view on Meta::CPAN
package Bio::Roary::External::PostAnalysis;
$Bio::Roary::External::PostAnalysis::VERSION = '3.13.0';
# ABSTRACT: Perform the post analysis
use Moose;
use Cwd qw(getcwd);
with 'Bio::Roary::JobRunner::Role';
has 'input_files' => ( is => 'ro', isa => 'ArrayRef', required => 1 );
has 'exec' => ( is => 'ro', isa => 'Str', default => 'pan_genome_post_analysis' );
has 'fasta_files' => ( is => 'ro', isa => 'ArrayRef', required => 1 );
has 'output_filename' => ( is => 'ro', isa => 'Str', required => 1 );
has 'output_pan_geneome_filename' => ( is => 'ro', isa => 'Str', required => 1 );
has 'output_statistics_filename' => ( is => 'ro', isa => 'Str', required => 1 );
has 'clusters_filename' => ( is => 'ro', isa => 'Str', required => 1 );
has 'output_multifasta_files' => ( is => 'ro', isa => 'Bool', required => 1 );
has 'dont_delete_files' => ( is => 'ro', isa => 'Bool', default => 0 );
has 'dont_create_rplots' => ( is => 'rw', isa => 'Bool', default => 0 );
has 'dont_split_groups' => ( is => 'rw', isa => 'Bool', default => 0 );
has 'verbose_stats' => ( is => 'rw', isa => 'Bool', default => 0 );
has 'translation_table' => ( is => 'rw', isa => 'Int', default => 11 );
has 'group_limit' => ( is => 'rw', isa => 'Num', default => 50000 );
has 'core_definition' => ( is => 'ro', isa => 'Num', default => 1.0 );
has 'verbose' => ( is => 'rw', isa => 'Bool', default => 0 );
has 'mafft' => ( is => 'ro', isa => 'Bool', default => 0 );
has 'allow_paralogs' => ( is => 'ro', isa => 'Bool', default => 0 );
has '_working_directory' => ( is => 'ro', isa => 'File::Temp::Dir', default => sub { File::Temp->newdir( DIR => getcwd, CLEANUP => 1 ); } );
has '_gff_fofn' => ( is => 'ro', isa => 'Str', lazy => 1, builder => '_build__gff_fofn' );
has '_fasta_fofn' => ( is => 'ro', isa => 'Str', lazy => 1, builder => '_build__fasta_fofn' );
# Overload Role
has 'memory_in_mb' => ( is => 'ro', isa => 'Int', lazy => 1, builder => '_build_memory_in_mb' );
has '_minimum_memory_mb' => ( is => 'ro', isa => 'Int', default => 4000 );
has '_memory_per_sample_mb' => ( is => 'ro', isa => 'Int', default => 30 );
has '_queue' => ( is => 'rw', isa => 'Str', lazy => 1, builder => '_build__queue');
sub _build__queue {
my ($self) = @_;
my $queue = 'normal';
my $num_samples = @{ $self->input_files };
if($num_samples > 200)
{
$queue = 'long';
}
elsif($num_samples > 600)
{
$queue = 'basement';
}
return $queue;
}
sub _build_memory_in_mb {
my ($self) = @_;
my $num_samples = @{ $self->input_files };
my $memory_required = $num_samples * $self->_memory_per_sample_mb;
if ( $memory_required < $self->_minimum_memory_mb ) {
$memory_required = $self->_minimum_memory_mb;
}
return $memory_required;
}
sub _build__gff_fofn
{
my ($self) = @_;
return join('/', ($self->_working_directory, '/_gff_files'));
}
( run in 0.878 second using v1.01-cache-2.11-cpan-98e64b0badf )