
Bio::Phylo::Matrices::Matrix - Character state matrix

use Bio::Phylo::Factory;
my $fac = Bio::Phylo::Factory->new;
# instantiate taxa object
my $taxa = $fac->create_taxa;
for ( 'Homo sapiens', 'Pan paniscus', 'Pan troglodytes' ) {
$taxa->insert( $fac->create_taxon( '-name' => $_ ) );
}
# instantiate matrix object, 'standard' data type. All categorical
# data types follow semantics like this, though with different
# symbols in lookup table and matrix
my $standard_matrix = $fac->create_matrix(
'-type' => 'STANDARD',
'-taxa' => $taxa,
'-lookup' => {
'-' => [],
'0' => [ '0' ],
'1' => [ '1' ],
'?' => [ '0', '1' ],
},
'-labels' => [ 'Opposable big toes', 'Opposable thumbs', 'Not a pygmy' ],
'-matrix' => [
[ 'Homo sapiens' => '0', '1', '1' ],
[ 'Pan paniscus' => '1', '1', '0' ],
[ 'Pan troglodytes' => '1', '1', '1' ],
],
);
# note: complicated constructor for mixed data!
my $mixed_matrix = Bio::Phylo::Matrices::Matrix->new(
# if you want to create 'mixed', value for '-type' is array ref...
'-type' => [
# ...with first field 'mixed'...
'mixed',
# ...second field is an array ref...
[
# ...with _ordered_ key/value pairs...
'dna' => 10, # value is length of type range
'standard' => 10, # value is length of type range
# ... or, more complicated, value is a hash ref...
'rna' => {
'-length' => 10, # value is length of type range
# ...value for '-args' is an array ref with args
# as can be passed to 'unmixed' datatype constructors,
# for example, here we modify the lookup table for
# rna to allow both 'U' (default) and 'T'
'-args' => [
'-lookup' => {
'A' => [ 'A' ],
'C' => [ 'C' ],
'G' => [ 'G' ],
'U' => [ 'U' ],
'T' => [ 'T' ],
'M' => [ 'A', 'C' ],
'R' => [ 'A', 'G' ],
'S' => [ 'C', 'G' ],
'W' => [ 'A', 'U', 'T' ],
'Y' => [ 'C', 'U', 'T' ],
'K' => [ 'G', 'U', 'T' ],
'V' => [ 'A', 'C', 'G' ],
'H' => [ 'A', 'C', 'U', 'T' ],
'D' => [ 'A', 'G', 'U', 'T' ],
'B' => [ 'C', 'G', 'U', 'T' ],
'X' => [ 'G', 'A', 'U', 'T', 'C' ],
'N' => [ 'G', 'A', 'U', 'T', 'C' ],
},
],
},
],
],
);
# prints 'mixed(Dna:1-10, Standard:11-20, Rna:21-30)'
print $mixed_matrix->get_type;

This module defines a container object that holds Bio::Phylo::Matrices::Datum objects. The matrix object inherits from Bio::Phylo::MatrixRole, so the methods defined there apply here.

Sets argument state labels.
Type : Mutator
Title : set_statelabels
Usage : $matrix->set_statelabels( [ [ 'state1', 'state2' ] ] );
Function: Assigns state labels.
Returns : $self
Args : ARRAY, or nothing (to reset);
The array is two-dimensional,
the first index is to indicate
the column the labels apply to,
the second dimension the states
(sorted numerically or alphabetically,
depending on what's appropriate)
Sets the character set manager object Bio::Phylo::Matrices::Characters. Normally you never have to use this.
Type : Mutator Title : set_characters Usage : $matrix->set_characters( $characters ); Function: Assigns Bio::Phylo::Matrices::Characters object Returns : $self Args : Bio::Phylo::Matrices::Characters
Defines matrix gapmode.
Type : Mutator Title : set_gapmode Usage : $matrix->set_gapmode( 1 ); Function: Defines matrix gapmode ( false = missing, true = fifth state ) Returns : $self Args : boolean
Assigns match symbol.
Type : Mutator Title : set_matchchar Usage : $matrix->set_matchchar( $match ); Function: Assigns match symbol (default is '.'). Returns : $self Args : ARRAY
Defines matrix 'polymorphism' interpretation.
Type : Mutator
Title : set_polymorphism
Usage : $matrix->set_polymorphism( 1 );
Function: Defines matrix 'polymorphism' interpretation
( false = uncertainty, true = polymorphism )
Returns : $self
Args : boolean
Defines matrix case sensitivity interpretation.
Type : Mutator
Title : set_respectcase
Usage : $matrix->set_respectcase( 1 );
Function: Defines matrix case sensitivity interpretation
( false = disregarded, true = "respectcase" )
Returns : $self
Args : boolean
Retrieves characters object.
Type : Accessor Title : get_characters Usage : my $characters = $matrix->get_characters Function: Retrieves characters object. Returns : Bio::Phylo::Matrices::Characters Args : None.
Retrieves state labels.
Type : Accessor
Title : get_statelabels
Usage : my @statelabels = @{ $matrix->get_statelabels };
Function: Retrieves state labels.
Returns : ARRAY
Args : None.
Returns matrix gapmode.
Type : Accessor Title : get_gapmode Usage : do_something() if $matrix->get_gapmode; Function: Returns matrix gapmode ( false = missing, true = fifth state ) Returns : boolean Args : none
Returns matrix match character.
Type : Accessor Title : get_matchchar Usage : my $char = $matrix->get_matchchar; Function: Returns matrix match character (default is '.') Returns : SCALAR Args : none
Returns matrix 'polymorphism' interpretation.
Type : Accessor
Title : get_polymorphism
Usage : do_something() if $matrix->get_polymorphism;
Function: Returns matrix 'polymorphism' interpretation
( false = uncertainty, true = polymorphism )
Returns : boolean
Args : none
Returns matrix case sensitivity interpretation.
Type : Accessor
Title : get_respectcase
Usage : do_something() if $matrix->get_respectcase;
Function: Returns matrix case sensitivity interpretation
( false = disregarded, true = "respectcase" )
Returns : boolean
Args : none

There is a mailing list at https://groups.google.com/forum/#!forum/bio-phylo for any user or developer questions and discussions.
This object inherits from Bio::Phylo::Taxa::TaxaLinker, so the methods defined therein are also applicable to Bio::Phylo::Matrices::Matrix objects.
This object inherits from Bio::Phylo::Matrices::TypeSafeData, so the methods defined therein are also applicable to Bio::Phylo::Matrices::Matrix objects.
Also see the manual: Bio::Phylo::Manual and http://rutgervos.blogspot.com.

If you use Bio::Phylo in published research, please cite it:
Rutger A Vos, Jason Caravas, Klaas Hartmann, Mark A Jensen and Chase Miller, 2011. Bio::Phylo - phyloinformatic analysis using Perl. BMC Bioinformatics 12:63. http://dx.doi.org/10.1186/1471-2105-12-63