annotate roary/lib/Bio/Roary/SpreadsheetRole.pm @ 0:b8af7809bf92 draft

Uploaded
author jbarberoaparicio
date Mon, 17 Dec 2018 05:45:06 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
1 package Bio::Roary::SpreadsheetRole;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
2
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
3 # ABSTRACT: Read and write a spreadsheet
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
4
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
5 =head1 SYNOPSIS
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
6
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
7 with 'Bio::Roary::SpreadsheetRole';
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
8
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
9 =cut
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
10 use Moose::Role;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
11
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
12 has 'spreadsheet' => ( is => 'ro', isa => 'Str', required => 1 );
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
13 has '_fixed_headers' => ( is => 'ro', isa => 'ArrayRef', lazy => 1, builder => '_build__fixed_headers' );
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
14 has '_input_spreadsheet_fh' => ( is => 'ro', lazy => 1, builder => '_build__input_spreadsheet_fh' );
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
15 has '_output_spreadsheet_fh' => ( is => 'ro', lazy => 1, builder => '_build__output_spreadsheet_fh' );
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
16 has '_fixed_headers' => ( is => 'ro', isa => 'ArrayRef', lazy => 1, builder => '_build__fixed_headers' );
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
17 has '_num_fixed_headers' => ( is => 'ro', isa => 'Int', lazy => 1, builder => '_build__num_fixed_headers' );
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
18 has '_csv_parser' => ( is => 'ro', isa => 'Text::CSV',lazy => 1, builder => '_build__csv_parser' );
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
19 has '_csv_output' => ( is => 'ro', isa => 'Text::CSV',lazy => 1, builder => '_build__csv_output' );
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
20
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
21 sub BUILD
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
22 {
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
23 my ($self) = @_;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
24 $self->_input_spreadsheet_fh;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
25 }
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
26
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
27 sub _build__fixed_headers
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
28 {
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
29 my ($self) = @_;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
30 my @fixed_headers = @{Bio::Roary::GroupStatistics->fixed_headers()};
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
31 return \@fixed_headers;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
32 }
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
33
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
34 sub _build__csv_parser
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
35 {
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
36 my ($self) = @_;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
37 return Text::CSV->new( { binary => 1, always_quote => 1} );
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
38 }
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
39
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
40 sub _build__csv_output
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
41 {
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
42 my ($self) = @_;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
43 return Text::CSV->new( { binary => 1, always_quote => 1, eol => "\r\n"} );
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
44 }
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
45
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
46 sub _build__input_spreadsheet_fh {
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
47 my ($self) = @_;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
48 open( my $fh, $self->spreadsheet ) or die "Couldnt open input spreadsheet: ".$self->spreadsheet ;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
49 return $fh;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
50 }
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
51
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
52 sub _build__output_spreadsheet_fh {
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
53 my ($self) = @_;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
54 open( my $fh, '>', $self->output_filename );
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
55 return $fh;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
56 }
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
57
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
58 sub _build__num_fixed_headers
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
59 {
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
60 my ($self) = @_;
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
61 return @{$self->_fixed_headers};
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
62 }
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
63
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
64
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
65
b8af7809bf92 Uploaded
jbarberoaparicio
parents:
diff changeset
66 1;