Bio::FASTASequence::File - Perl extension for Bio::FASTASequence


Bio-FASTASequence-File documentation Contained in the Bio-FASTASequence-File distribution.

Index


Code Index:

NAME

Top

Bio::FASTASequence::File - Perl extension for Bio::FASTASequence

SYNOPSIS

Top

  use Bio::FASTASequence::File;
  my $filename = '/path/to/file.fasta';
  my $parsed_fasta = Bio::FASTASequence::File->new($filename);
  my $hashref = $parsed_fasta->get_result();

  # or
  my $parsed = Bio::FASTASequence::File->new();
  my $hashref = $parsed->file($filename);

  # if a sequence with accession_nr H23OP3 is in the file (as an example)
  # these methods are the methods from Bio::FASTASequence
  my $crc64 = $hashref->{H23OP3}->getCRC64();
  my $sequence = $hashref->{H23OP3}->getSequence();

DESCRIPTION

Top

This module is an extension for Bio::FASTASequence to parse a fasta-file at once.

METHODS

Top

new

  my $parsed_fasta = Bio::FASTASequence::File->new($filename);

creates a new instance of Bio::FASTASequence::File

file

  my $parsed = Bio::FASTASequence::File->new();
  $parsed->file($filename);

set the file for the object and parses the given file.

SEE ALSO

Top

Bio::FASTASequence

Dependencies

Top

This module requires Bio::FASTASequence

AUTHOR

Top

Feel free to contact me for feature requests or bug reports:

Renee Baecker, <module@renee-baecker.de>

COPYRIGHT AND LICENSE

Top


Bio-FASTASequence-File documentation Contained in the Bio-FASTASequence-File distribution.

package Bio::FASTASequence::File;

use 5.006001;
use strict;
use warnings;
use Bio::FASTASequence;

our $VERSION = '0.04';


# Preloaded methods go here.

sub new{
  my ($class,$filename) = @_;
  my $self = {};
  $self->{file} = $filename || '';
  _parse_file($self) if($self->{file});
  bless($self,$class);
  return $self;
}# end new

sub file{
  my ($self,$file) = @_;
  $self->{file} = $file || '';
  _parse_file($self) if($self->{file});
  return $self->{result};
}# end file

sub get_result{
  my ($self) = @_;
  return $self->{result};
}# end get_parsed

sub _parse_file{
  my ($self) = @_;
  local $/ = "\n>";
  open(FH,$self->{file}) or die($self->{file}.": ".$!);
  while(my $entry = <FH>){
    $entry = '>'.$entry unless($entry =~ /^>/);
    $entry =~ s/>$//;
    my $seq = Bio::FASTASequence->new($entry);
    $self->{result}->{$seq->getAccessionNr()} = $seq;
  }
  close FH;
}

1;
__END__