Bio::SeqIO
MultiFile
Summary
Bio::SeqIO::MultiFile - Treating a set of files as a single input stream
Package variables
No package variables defined.
Included modules
Inherit
Synopsis
$seqin = Bio::SeqIO::MultiFile( '-format' => 'Fasta',
'-files' => ['file1','file2'] );
while((my $seq = $seqin->next_seq)) {
# do something with $seq
}
Description
Bio::SeqIO::MultiFile provides a simple way of bundling a whole
set of identically formatted sequence input files as a single stream.
Methods
Methods description
Title : next_seq
Usage :
Function:
Example :
Returns :
Args : |
Title : next_primary_seq
Usage :
Function:
Example :
Returns :
Args : |
Title : _load_file
Usage :
Function:
Example :
Returns :
Args : |
Title : _set_file
Usage :
Function:
Example :
Returns :
Args : |
Title : _current_seqio
Usage : $obj->_current_seqio($newval)
Function:
Example :
Returns : value of _current_seqio
Args : newvalue (optional) |
Title : _format
Usage : $obj->_format($newval)
Function:
Example :
Returns : value of _format
Args : newvalue (optional) |
Methods code
sub _initialize
{ my($self,@args) = @_;
$self->SUPER::_initialize(@args);
my ($file_array,$format) = $self->_rearrange([qw(
FILES
FORMAT
)],
@args,
);
if( !defined $file_array || ! ref $file_array ) {
$self->throw("Must have an array files for MultiFile");
}
if( !defined $format ) {
$self->throw("Must have a format for MultiFile");
}
$self->{'_file_array'} = [];
$self->_set_file(@$file_array);
$self->_format($format);
if( $self->_load_file() == 0 ) {
$self->throw("Unable even to initialise the first file");
}} |
sub next_seq
{ my ($self,@args) = @_;
my $seq = $self->_current_seqio->next_seq();
if( !defined $seq ) {
if( $self->_load_file() == 0) {
return undef;
} else {
return $self->next_seq();
}
} else {
return $seq;
}} |
sub next_primary_seq
{ my ($self,@args) = @_;
my $seq = $self->_current_seqio->next_primary_seq();
if( !defined $seq ) {
if( $self->_load_file() == 0) {
return undef;
} else {
return $self->next_primary_seq();
}
} else {
return $seq;
}} |
sub _load_file
{ my ($self,@args) = @_;
my $file = shift(@{$self->{'_file_array'}});
if( !defined $file ) {
return 0;
}
my $seqio = Bio::SeqIO->new( '-format' => $self->_format(), -file => $file);
if( !defined $seqio) {
$self->throw("no seqio built for $file!");
}
$self->_current_seqio($seqio);
return 1;} |
sub _set_file
{ my ($self,@files) = @_;
push(@{$self->{'_file_array'}},@files);} |
sub _current_seqio
{ my ($obj,$value) = @_;
if( defined $value) {
$obj->{'_current_seqio'} = $value;
}
return $obj->{'_current_seqio'};} |
sub _format
{ my ($obj,$value) = @_;
if( defined $value) {
$obj->{'_format'} = $value;
}
return $obj->{'_format'};} |
General documentation
User feedback is an integral part of the evolution of this
and other Bioperl modules. Send your comments and suggestions preferably
to one of the Bioperl mailing lists.
Your participation is much appreciated.
bioperl-l@bioperl.org - General discussion
http://www.bioperl.org/MailList.shtml - About the mailing lists
Report bugs to the Bioperl bug tracking system to help us keep track
the bugs and their resolution.
Bug reports can be submitted via email or the web:
bioperl-bugs@bio.perl.org
http://bio.perl.org/bioperl-bugs/
The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _