Bio-Roary
view release on metacpan or search on metacpan
lib/Bio/Roary/CommandLine/RoaryCoreAlignment.pm view on Meta::CPAN
undef $VERSION;
package Bio::Roary::CommandLine::RoaryCoreAlignment;
$Bio::Roary::CommandLine::RoaryCoreAlignment::VERSION = '3.13.0';
# ABSTRACT: Take in the group statistics spreadsheet and the location of the gene multifasta files and create a core alignment.
use Moose;
use Getopt::Long qw(GetOptionsFromArray);
use Cwd 'abs_path';
use File::Path qw(remove_tree);
use Bio::Roary::ExtractCoreGenesFromSpreadsheet;
use Bio::Roary::LookupGeneFiles;
use Bio::Roary::MergeMultifastaAlignments;
extends 'Bio::Roary::CommandLine::Common';
has 'args' => ( is => 'ro', isa => 'ArrayRef', required => 1 );
has 'script_name' => ( is => 'ro', isa => 'Str', required => 1 );
has 'help' => ( is => 'rw', isa => 'Bool', default => 0 );
has 'multifasta_base_directory' => ( is => 'rw', isa => 'Str', default => 'pan_genome_sequences' );
has 'spreadsheet_filename' => ( is => 'rw', isa => 'Str', default => 'gene_presence_absence.csv' );
has 'output_filename' => ( is => 'rw', isa => 'Str', default => 'core_gene_alignment.aln' );
has 'core_definition' => ( is => 'rw', isa => 'Num', default => 0.99 );
has 'dont_delete_files' => ( is => 'rw', isa => 'Bool', default => 0 );
has 'allow_paralogs' => ( is => 'rw', isa => 'Bool', default => 0 );
has '_error_message' => ( is => 'rw', isa => 'Str' );
has 'verbose' => ( is => 'rw', isa => 'Bool', default => 0 );
sub BUILD {
my ($self) = @_;
my ( $multifasta_base_directory, $spreadsheet_filename, $output_filename, $core_definition,$verbose, $help, $mafft, $allow_paralogs, $dont_delete_files );
GetOptionsFromArray(
$self->args,
'm|multifasta_base_directory=s' => \$multifasta_base_directory,
's|spreadsheet_filename=s' => \$spreadsheet_filename,
'o|output_filename=s' => \$output_filename,
'cd|core_definition=f' => \$core_definition,
'z|dont_delete_files' => \$dont_delete_files,
'p|allow_paralogs' => \$allow_paralogs,
'v|verbose' => \$verbose,
'h|help' => \$help,
);
if ( defined($verbose) ) {
$self->verbose($verbose);
$self->logger->level(10000);
}
$self->help($help) if(defined($help));
$self->allow_paralogs($allow_paralogs) if(defined($allow_paralogs));
if ( defined($multifasta_base_directory) && ( -d $multifasta_base_directory ) ) {
$self->multifasta_base_directory( abs_path($multifasta_base_directory));
}
if(! -d $self->multifasta_base_directory )
{
$self->_error_message("Error: Cant access the multifasta base directory: ".$self->multifasta_base_directory);
}
if ( defined($spreadsheet_filename) && ( -e $spreadsheet_filename ) ) {
$self->spreadsheet_filename( abs_path($spreadsheet_filename));
}
if(! -e $self->spreadsheet_filename )
{
$self->_error_message("Error: Cant access the spreadsheet: ".$self->spreadsheet_filename);
}
$self->output_filename( $output_filename ) if ( defined($output_filename) );
if ( defined($core_definition) )
{
if($core_definition > 1)
{
$self->core_definition( $core_definition/100 );
}
else
{
( run in 0.596 second using v1.01-cache-2.11-cpan-98e64b0badf )