Mercurial > repos > dereeper > roary_plots
comparison Roary/lib/Bio/Roary/CommandLine/RoaryReorderSpreadsheet.pm @ 0:c47a5f61bc9f draft
Uploaded
author | dereeper |
---|---|
date | Fri, 14 May 2021 20:27:06 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:c47a5f61bc9f |
---|---|
1 undef $VERSION; | |
2 package Bio::Roary::CommandLine::RoaryReorderSpreadsheet; | |
3 | |
4 # ABSTRACT: Take in a tree and a spreadsheet and output a reordered spreadsheet | |
5 | |
6 =head1 SYNOPSIS | |
7 | |
8 Take in a tree and a spreadsheet and output a reordered spreadsheet | |
9 | |
10 =cut | |
11 | |
12 use Moose; | |
13 use Getopt::Long qw(GetOptionsFromArray); | |
14 use Bio::Roary::ReorderSpreadsheet; | |
15 extends 'Bio::Roary::CommandLine::Common'; | |
16 | |
17 has 'args' => ( is => 'ro', isa => 'ArrayRef', required => 1 ); | |
18 has 'script_name' => ( is => 'ro', isa => 'Str', required => 1 ); | |
19 has 'help' => ( is => 'rw', isa => 'Bool', default => 0 ); | |
20 | |
21 has 'tree_file' => ( is => 'rw', isa => 'Str' ); | |
22 has 'spreadsheet_filename' => ( is => 'rw', isa => 'Str', default => 'gene_presence_absence.csv' ); | |
23 has 'output_filename' => ( is => 'rw', isa => 'Str', default => 'reordered_spreadsheet.csv' ); | |
24 has 'tree_format' => ( is => 'rw', isa => 'Str', default => 'newick' ); | |
25 has 'search_strategy' => ( is => 'rw', isa => 'Str', default => 'depth' ); | |
26 has 'sortby' => ( is => 'rw', isa => 'Str', default => 'height'); | |
27 has 'verbose' => ( is => 'rw', isa => 'Bool', default => 0 ); | |
28 | |
29 | |
30 sub BUILD { | |
31 my ($self) = @_; | |
32 | |
33 my ( $output_filename, $tree_file,$search_strategy, $sortby, $tree_format, $spreadsheet_filename,$verbose, $help ); | |
34 | |
35 GetOptionsFromArray( | |
36 $self->args, | |
37 'o|output_filename=s' => \$output_filename, | |
38 't|tree_file=s' => \$tree_file, | |
39 'f|tree_format=s' => \$tree_format, | |
40 's|spreadsheet_filename=s' => \$spreadsheet_filename, | |
41 'a|search_strategy=s' => \$search_strategy, | |
42 'b|sortby=s' => \$sortby, | |
43 'v|verbose' => \$verbose, | |
44 'h|help' => \$help, | |
45 ); | |
46 | |
47 if ( defined($verbose) ) { | |
48 $self->verbose($verbose); | |
49 $self->logger->level(10000); | |
50 } | |
51 $self->help($help) if(defined($help)); | |
52 $self->output_filename($output_filename) if ( defined($output_filename) ); | |
53 $self->tree_file($tree_file) if ( defined($tree_file) ); | |
54 $self->tree_format($tree_format) if ( defined($tree_format) ); | |
55 $self->spreadsheet_filename($spreadsheet_filename) if ( defined($spreadsheet_filename) ); | |
56 $self->sortby($sortby) if ( defined($sortby) ); | |
57 $self->search_strategy($search_strategy) if ( defined($search_strategy) ); | |
58 } | |
59 | |
60 sub run { | |
61 my ($self) = @_; | |
62 ( defined($self->spreadsheet_filename) && defined($self->tree_file) && ( -e $self->spreadsheet_filename ) && ( -e $self->tree_file ) && ( !$self->help ) ) or die $self->usage_text; | |
63 | |
64 ($self->sortby eq "height" || $self->sortby eq "creation" || $self->sortby eq "alpha" || $self->sortby eq "revalpha") or die $self->usage_text; | |
65 ($self->search_strategy eq "breadth" || $self->search_strategy eq "depth") or die $self->usage_text; | |
66 | |
67 my $obj = Bio::Roary::ReorderSpreadsheet->new( | |
68 tree_file => $self->tree_file, | |
69 spreadsheet => $self->spreadsheet_filename, | |
70 output_filename => $self->output_filename, | |
71 sortby => $self->sortby, | |
72 search_strategy => $self->search_strategy | |
73 ); | |
74 $obj->reorder_spreadsheet(); | |
75 | |
76 } | |
77 | |
78 sub usage_text { | |
79 my ($self) = @_; | |
80 | |
81 return <<USAGE; | |
82 Usage: pan_genome_reorder_spreadsheet [options] -t tree.newick | |
83 Reorder the columns in the gene presence and absence spreadsheet against a phylogenetic tree. | |
84 | |
85 Options: -t STR tree filename [] | |
86 -o STR output filename [reordered_spreadsheet.csv] | |
87 -f STR tree format (newick/nexus/nhx/svggraph/tabtree/lintree) [newick] | |
88 -s STR input gene presence and absence spreadsheet [gene_presence_absence.csv] | |
89 -a STR search strategy (depth/breadth) [depth] | |
90 -b STR sorting method (height/creation/alpha/revalpha) [height] | |
91 -v verbose output to STDOUT | |
92 -h this help message | |
93 | |
94 For further info see: http://sanger-pathogens.github.io/Roary/ | |
95 USAGE | |
96 } | |
97 | |
98 __PACKAGE__->meta->make_immutable; | |
99 no Moose; | |
100 1; |