annotate Roary/lib/Bio/Roary/SequenceLengths.pm @ 0:c47a5f61bc9f draft

Uploaded
author dereeper
date Fri, 14 May 2021 20:27:06 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
1 package Bio::Roary::SequenceLengths;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
2
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
3 # ABSTRACT: Take in a fasta file and create a hash with the length of each sequence
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
4
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
5 =head1 SYNOPSIS
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
6
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
7 Add labels to the groups
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
8 use Bio::Roary::SequenceLengths;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
9
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
10 my $obj = Bio::Roary::SequenceLengths->new(
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
11 fasta_file => 'abc.fa',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
12 );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
13 $obj->sequence_lengths;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
14
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
15 =cut
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
16
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
17 use Moose;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
18 use Bio::SeqIO;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
19 use Bio::Roary::Exceptions;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
20
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
21 has 'fasta_file' => ( is => 'ro', isa => 'Str', required => 1 );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
22 has 'sequence_lengths' => ( is => 'ro', isa => 'HashRef', lazy => 1, builder => '_build_sequence_lengths' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
23 has '_input_seqio' => ( is => 'ro', isa => 'Bio::SeqIO', lazy => 1, builder => '_build__input_seqio' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
24
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
25 sub _build__input_seqio {
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
26 my ($self) = @_;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
27 return Bio::SeqIO->new( -file => $self->fasta_file, -format => 'Fasta' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
28 }
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
29
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
30 sub _build_sequence_lengths {
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
31 my ($self) = @_;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
32
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
33 my %sequence_lengths;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
34 while ( my $input_seq = $self->_input_seqio->next_seq() ) {
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
35 $sequence_lengths{ $input_seq->display_id } = $input_seq->length();
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
36 }
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
37 return \%sequence_lengths;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
38 }
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
39
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
40 no Moose;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
41 __PACKAGE__->meta->make_immutable;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
42
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
43 1;