Provided by: libbio-perl-perl_1.7.2-2_all bug

NAME

       Bio::Matrix::Generic - A generic matrix implementation

SYNOPSIS

         # A matrix has columns and rows
         my $matrix = Bio::Matrix::Generic->new;
         $matrix->add_column(1,$column1);
         $matrix->add_column(2,$column2);

         my $element = $matrix->entry_by_num(1,2);
         $matrix->entry_by_num(1,2,$newval);

         my $entry = $matrix->entry('human', 'mouse');

         $matrix->entry('human','mouse', $newval);

DESCRIPTION

       This is a general purpose matrix object for dealing with row+column data which is typical
       when enumerating all the pairwise combinations and desiring to get slices of the data.

       Data can be accessed by column and row names or indexes.  Matrix indexes start at 0.

FEEDBACK

   Mailing Lists
       User feedback is an integral part of the evolution of this and other Bioperl modules. Send
       your comments and suggestions preferably to the Bioperl mailing list.  Your participation
       is much appreciated.

         bioperl-l@bioperl.org                  - General discussion
         http://bioperl.org/wiki/Mailing_lists  - About the mailing lists

   Support
       Please direct usage questions or support issues to the mailing list:

       bioperl-l@bioperl.org

       rather than to the module maintainer directly. Many experienced and reponsive experts will
       be able look at the problem and quickly address it. Please include a thorough description
       of the problem with code and data examples if at all possible.

   Reporting Bugs
       Report bugs to the Bioperl bug tracking system to help us keep track of the bugs and their
       resolution. Bug reports can be submitted via the web:

         https://github.com/bioperl/bioperl-live/issues

AUTHOR - Jason Stajich

       Email jason-at-bioperl-dot-org

APPENDIX

       The rest of the documentation details each of the object methods.  Internal methods are
       usually preceded with a _

   new
        Title   : new
        Usage   : my $obj = Bio::Matrix::Generic->new();
        Function: Builds a new Bio::Matrix::Generic object
        Returns : an instance of Bio::Matrix::Generic
        Args    : -values     => arrayref of arrayrefs of data initialization
                  -rownames   => arrayref of row names
                  -colnames   => arrayref of col names
                  -matrix_id  => id of the matrix
                  -matrix_name=> name of the matrix
                  -matrix_init_value => default value to initialize empty cells

   matrix_id
        Title   : matrix_id
        Usage   : my $id = $matrix->matrix_id
        Function: Get/Set the matrix ID
        Returns : scalar value
        Args    : [optional] new id value to store

   matrix_name
        Title   : matrix_name
        Usage   : my $name = $matrix->matrix_name();
        Function: Get/Set the matrix name
        Returns : scalar value
        Args    : [optional] new matrix name value

   entry
        Title   : entry
        Usage   : my $entry = $matrix->entry($row,$col,$value)
        Function: Get the value for a specific cell as specified
                  by the row and column names
        Returns : scalar value or undef if row or col does not
                  exist
        Args    : $rowname - name of the row
                  $colname - column name
                  $value   - [optional] New value for the entry

   get_entry
        Title   : get_entry
        Usage   : my $entry = $matrix->get_entry($rowname,$columname,$value)
        Function: Get the entry for a given row,column pair
        Returns : scalar
        Args    : $row name
                  $column name
                  $value

   entry_by_num
        Title   : entry_by_num
        Usage   : my $entry = $matrix->entry_by_num($rownum,$colnum)
        Function: Get an entry by row and column numbers instead of by name
                  (rows and columns start at 0)
        Returns : scalar value or undef if row or column name does not
                  exist
        Args    : $row - row number
                  $col - column number
                  [optional] $newvalue to store at this cell

   column
        Title   : column
        Usage   : my @col = $matrix->column('ALPHA');
                  OR
                  $matrix->column('ALPHA', \@col);
        Function: Get/Set a particular column
        Returns : Array (in array context) or arrayref (in scalar context)
                  of values.
                  For setting will warn if the new column is of a different
                  length from the rest of the columns.
        Args    : name of the column
                  [optional] new column to store here

   get_column
        Title   : get_column
        Usage   : my @row = $matrix->get_column('ALPHA');
        Function: Get a particular column
        Returns : Array (in array context) or arrayref (in scalar context)
                  of values
        Args    : name of the column

   column_by_num
        Title   : column_by_num
        Usage   : my @col = $matrix->column_by_num(1);
                  OR
                  $matrix->column_by_num(1,\@newcol);
        Function: Get/Set a column by its number instead of name
                  (cols/rows start at 0)
        Returns : Array (in array context) or arrayref (in scalar context)
                  of values
        Args    : name of the column
                  [optional] new value to store for a particular column

   row
        Title   : row
        Usage   : my @row = $matrix->row($rowname);
                    OR
                  $matrix->row($rowname,\@rowvalues);
        Function: Get/Set the row of the matrix
        Returns : Array (in array context) or arrayref (in scalar context)
        Args    : rowname
                  [optional] new value of row to store

   get_row
        Title   : get_row
        Usage   : my @row = $matrix->get_row('ALPHA');
        Function: Get a particular row
        Returns : Array (in array context) or arrayref (in scalar context)
                  of values
        Args    : name of the row

   row_by_num
        Title   : row_by_num
        Usage   : my @row = $matrix->row_by_num($rownum);
                    OR
                  $matrix->row($rownum,\@rowvalues);
        Function: Get/Set the row of the matrix
        Returns : Array (in array context) or arrayref (in scalar context)
        Args    : rowname
                  [optional] new value of row to store

   diagonal
        Title   : diagonal
        Usage   : my @diagonal = $matrix->get_diagonal()
        Function: Get the diagonal of a matrix
        Returns : Array (in array context) or arrayref (in scalar context)
                  of values which lie along the diagonal
        Args    : none

   add_row
        Title   : add_row
        Usage   : $matrix->add_row($index,\@newrow);
        Function: Adds a row at particular location in the matrix.
                  If $index < the rowcount will shift all the rows down
                  by the number of new rows.
                  To add a single empty row, simply call
                  $matrix->add_row($index,undef);
        Returns : the updated number of total rows in the matrix
        Args    : index to store
                  name of the row (header)
                  newrow to add, if this is undef will add a single
                            row with all values set to undef

   remove_row
        Title   : remove_row
        Usage   : $matrix->remove_row($colnum)
        Function: remove a row from the matrix shifting all the rows
                  up by one
        Returns : Updated number of rows in the matrix
        Args    : row index

   add_column
        Title   : add_column
        Usage   : $matrix->add_column($index,$colname,\@newcol);
        Function: Adds a column at particular location in the matrix.
                  If $index < the colcount will shift all the columns right
                  by the number of new columns.
                  To add a single empty column, simply call
                  $matrix->add_column($index,undef);
        Returns : the updated number of total columns in the matrix
        Args    : index to store
                  name of the column (header)
                  newcolumn to add, if this is undef will add a single
                        column with all values set to undef

   remove_column
        Title   : remove_column
        Usage   : $matrix->remove_column($colnum)
        Function: remove a column from the matrix shifting all the columns
                  to the left by one
        Returns : Updated number of columns in the matrix
        Args    : column index

   column_num_for_name
        Title   : column_num_for_name
        Usage   : my $num = $matrix->column_num_for_name($name)
        Function: Gets the column number for a particular column name
        Returns : integer
        Args    : string

   row_num_for_name
        Title   : row_num_for_name
        Usage   : my $num = $matrix->row_num_for_name
        Function: Gets the row number for a particular row name
        Returns : integer
        Args    : string

   column_header
        Title   : column_header
        Usage   : my $name = $matrix->column_header(0)
        Function: Gets the column header for a particular column number
        Returns : string
        Args    : integer

   row_header
        Title   : row_header
        Usage   : my $name = $matrix->row_header(0)
        Function: Gets the row header for a particular row number
        Returns : string
        Args    : integer

   num_rows
        Title   : num_rows
        Usage   : my $rowcount = $matrix->num_rows;
        Function: Get the number of rows
        Returns : integer
        Args    : none

   num_columns
        Title   : num_columns
        Usage   : my $colcount = $matrix->num_columns
        Function: Get the number of columns
        Returns : integer
        Args    : none

   row_names
        Title   : row_names
        Usage   : my @rows = $matrix->row_names
        Function: The names of all the rows
        Returns : array in array context, arrayref in scalar context
        Args    : none

   column_names
        Title   : column_names
        Usage   : my @columns = $matrix->column_names
        Function: The names of all the columns
        Returns : array in array context, arrayref in scalar context
        Args    : none

   private methods
       Private methods for a Generic Matrix

   _values
        Title   : _values
        Usage   : $matrix->_values();
        Function: get/set for array ref of the matrix containing
                  distance values
        Returns : an array reference
        Args    : an array reference