This module is an abstract base class. Perl will let you instantiate it,but it provides little functionality on its own. This moduleshould be used via a specialized subclass. See _initialize()for a description of constructor parameters.

Bio::Tools::SeqAnal.pm is a base class for specializedsequence analysis modules such as Bio::Tools::Blast and Bio::Tools::Fasta.It provides some basic data and functionalities that are not unique toa specialized module such as:

* reading raw data into memory.

* storing name and version of the program.

* storing name of the query sequence.

* storing name and version of the database.

* storing & determining the date on which the analysis was performed.

* basic file manipulations (compress, uncompress, delete).

Some of these functionalities (reading, file maipulation) are inherited fromBio::Root::Object, from which Bio::Tools::SeqAnal.pm derives.

Usage : n/a; automatically called by Bio::Root::Object::new() Purpose : Calls private methods to extract the raw report data, : Calls superclass constructor first (Bio::Root::Object.pm). Returns : string containing the make parameter value. Argument : Named parameters (TAGS CAN BE ALL UPPER OR ALL LOWER CASE). : The SeqAnal.pm constructor only processes the following : parameters passed from new() : -RUN => hash reference for named parameters to be used : for running a sequence analysis program. : These are dereferenced and passed to the run() method. : -PARSE => boolean, : -READ => boolean, : : If -RUN is HASH ref, the run() method will be called with the : dereferenced hash. : If -PARSE is true, all parameters passed from new() are passed : to the parse() method. This occurs after the run method call : to enable combined running + parsing. : If -READ is true, all parameters passed from new() are passed : to the read() method. : Either -PARSE or -READ should be true, not both. Comments : Does not calls _rearrange() to handle parameters since only : a few are required and there may be potentially many.

Usage : $object->set_date([<string>]); Purpose : Set the name of the date on which the analysis was performed. Argument : The optional string argument ca be the date or the : string 'file' in which case the date will be obtained from : the report file Returns : String Throws : Exception if no date is supplied and no file exists. Comments : This method attempts to set the date in either of two ways: : 1) using data passed in as an argument, : 2) using the Bio::Root::Utilities.pm file_date() method : on the output file. : Another way is to extract the date from the contents of the : raw output data. Such parsing will have to be specialized : for different seq analysis reports. Override this method : to create such custom parsing code if desired.

A SeqAnal.pm object can be created using one of three modes: run, parse, or read.

MODE DESCRIPTION ----- ----------- run Run a new sequence analysis report. New results can then be parsed or saved for analysis later.
parse Parse the data from a sequence analysis report loading it
into the SeqAnal.pm object.
read Read in data from an existing raw analysis report without
parsing it. In the future, this may also permit persistent
SeqAnal.pm objects. This mode is considered experimental.

The mode is set by supplying switches to the constructor, see _initialize().A key feature of SeqAnal.pm is the ability to access raw data in ageneric fashion. Regardless of what sequence analysis method is used,the raw data always need to be read into memory. The SeqAnal.pm classutilizes the Bio::Root::Object::read() method inherited fromBio::Root::Object to permit the following:

* read from a file or STDIN.

* read a single record or a stream containing multiple records.

* specify a record separator.

* store all input data in memory or process the data stream as it is being read.

By permitting the parsing of data as it is being read, each record can beanalyzed as it is being read and saved or discarded as necessary.This can be useful when cruching through thousands of reports.For examples of this, see the parse() methods defined in Bio::Tools::Blast andBio::Tools::Fasta.

Bio::Tools::SeqAnal.pm is a concrete class that inherits from Bio::Root::Object.This module also makes use of a number of functionalities inherited fromBio::Root::Object (file manipulations such as reading, compressing, decompressing,deleting, and obtaining date.

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.

Methods beginning with a leading underscore are considered privateand are intended for internal use by this module. They arenot considered part of the public interface and are described herefor documentation purposes only.

Information about the various data members of this module is provided for thosewishing to modify or understand the code. Two things to bear in mind:

1 Do NOT rely on these in any code outside of this module.

All data members are prefixed with an underscore to signify that they are private.Always use accessor methods. If the accessor doesn't exist or is inadequate,create or modify an accessor (and let me know, too!).

2 This documentation may be incomplete and out of date.

It is easy for these data member descriptions to become obsolete asthis module is still evolving. Always double check this info and searchfor members not described here.An instance of Bio::Tools::SeqAnal.pm is a blessed reference to a hash containingall or some of the following fields:

FIELD VALUE -------------------------------------------------------------- _file Full path to file containing raw sequence analysis report.
_mode Affects how much detail to extract from the raw report.
Future mode will also distinguish 'running' from 'parsing'
THE FOLLOWING MAY BE EXTRACTABLE FROM THE RAW REPORT FILE:
_prog Name of the sequence analysis program.
_progVersion Version number of the program.
_db Database searched.
_dbRelease Version or date of the database searched.
_dbLetters Total number of letters in the database.
_dbSequences Total number of sequences in the database.
_query Name of query sequence.
_length Length of the query sequence.
_date Date on which the analysis was performed.
INHERITED DATA MEMBERS
_name From Bio::Root::Object.pm. String representing the name of the query sequence.
Typically obtained from the report file.
_parent From Bio::Root::Object.pm. This member contains a reference to the
object to which this seq anal report belongs. Optional & experimenta.
(E.g., a protein object could create and own a Blast object.)