NAME
Bio::Phylo::Matrices::Datatype - Validator of character state data
SYNOPSIS
# No direct usage
DESCRIPTION
This is a superclass for objects that validate character data. Objects that inherit from this class (typically those in the Bio::Phylo::Matrices::Datatype::* namespace) can check strings and arrays of character data for invalid symbols, and split and join strings and arrays in a way appropriate for the type (on whitespace for continuous data, on single characters for categorical data). Bio::Phylo::Matrices::Matrix objects and Bio::Phylo::Matrices::Datum internally delegate validation of their contents to these datatype objects; there is no normal usage in which you'd have to deal with datatype objects directly.
METHODS
CONSTRUCTOR
- new()
-
Datatype constructor.
Type : Constructor Title : new Usage : No direct usage, is called by TypeSafeData classes; Function: Instantiates a Datatype object Returns : a Bio::Phylo::Matrices::Datatype child class Args : $type (optional, one of continuous, custom, dna, mixed, protein, restriction, rna, standard)
MUTATORS
- set_lookup()
-
Sets state lookup table.
Type : Mutator Title : set_lookup Usage : $obj->set_lookup($hashref); Function: Sets the state lookup table. Returns : Modified object. Args : Argument must be a hash reference that maps allowed single character symbols (including ambiguity symbols) onto the equivalent set of non-ambiguous symbols
- set_missing()
-
Sets missing data symbol.
Type : Mutator Title : set_missing Usage : $obj->set_missing('?'); Function: Sets the symbol for missing data Returns : Modified object. Args : Argument must be a single character, default is '?'
- set_gap()
-
Sets gap symbol.
Type : Mutator Title : set_gap Usage : $obj->set_gap('-'); Function: Sets the symbol for gaps Returns : Modified object. Args : Argument must be a single character, default is '-'
- set_metas_for_states()
-
Assigns all metadata annotations for all state symbols
Type : Mutator Title : set_metas_for_states Usage : $obj->set_metas_for_states({ $state => [ $m1, $m2 ] }); Function: Assigns all metadata annotations for all state symbols Returns : Modified object. Args : A hash reference of state symbols with metadata arrays
- add_meta_for_state()
-
Adds a metadata annotation for a state symbol
Type : Mutator Title : add_meta_for_state Usage : $obj->add_meta_for_state($meta,$state); Function: Adds a metadata annotation for a state symbol Returns : Modified object. Args : A Bio::Phylo::NeXML::Meta object and a state symbol
- remove_meta_for_state()
-
Removes a metadata annotation for a state symbol
Type : Mutator Title : remove_meta_for_state Usage : $obj->remove_meta_for_state($meta,$state); Function: Removes a metadata annotation for a state symbol Returns : Modified object. Args : A Bio::Phylo::NeXML::Meta object and a state symbol
ACCESSORS
- get_type()
-
Gets data type as string.
Type : Accessor Title : get_type Usage : my $type = $obj->get_type; Function: Returns the object's datatype Returns : A string Args : None
- get_ids_for_special_symbols()
-
Gets state-to-id mapping for missing and gap symbols
Type : Accessor Title : get_ids_for_special_symbols Usage : my %ids = %{ $obj->get_ids_for_special_symbols }; Function: Returns state-to-id mapping Returns : A hash reference, keyed on symbol, with UID values Args : Optional, a boolean: true => prefix state ids with 's' false => keep ids numerical
- get_ids_for_states()
-
Gets state-to-id mapping
Type : Accessor Title : get_ids_for_states Usage : my %ids = %{ $obj->get_ids_for_states }; Function: Returns state-to-id mapping Returns : A hash reference, keyed on symbol, with UID values Args : Optional, a boolean: true => prefix state ids with 's' false => keep ids numerical Note : This returns a mapping to alphanumeric states; special symbols (for missing data and gaps) are handled separately
- get_states_for_symbol()
-
Gets set of fundamental states for an ambiguity symbol
Type : Accessor Title : get_states_for_symbol Usage : my @states = @{ $obj->get_states_for_symbol('N') }; Function: Returns the set of states for an ambiguity symbol Returns : An array ref of symbols Args : An ambiguity symbol Comments: If supplied argument is a fundamental state, an array ref with just that state is returned, e.g. 'A' returns ['A'] for DNA and RNA
- get_symbol_for_states()
-
Gets ambiguity symbol for a set of states
Type : Accessor Title : get_symbol_for_states Usage : my $state = $obj->get_symbol_for_states('A','C'); Function: Returns the ambiguity symbol for a set of states Returns : A symbol (SCALAR) Args : A set of symbols Comments: If no symbol exists in the lookup table for the given set of states, a new - numerical - one is created
- get_lookup()
-
Gets state lookup table.
Type : Accessor Title : get_lookup Usage : my $lookup = $obj->get_lookup; Function: Returns the object's lookup hash Returns : A hash reference Args : None
- get_missing()
-
Gets missing data symbol.
Type : Accessor Title : get_missing Usage : my $missing = $obj->get_missing; Function: Returns the object's missing data symbol Returns : A string Args : None
- get_gap()
-
Gets gap symbol.
Type : Accessor Title : get_gap Usage : my $gap = $obj->get_gap; Function: Returns the object's gap symbol Returns : A string Args : None
- get_meta_for_state()
-
Gets metadata annotations (if any) for the provided state symbol
Type : Accessor Title : get_meta_for_state Usage : my @meta = @{ $obj->get_meta_for_state }; Function: Gets metadata annotations for a state symbol Returns : An array reference of Bio::Phylo::NeXML::Meta objects Args : A state symbol
- get_metas_for_states()
-
Gets metadata annotations (if any) for all state symbols
Type : Accessor Title : get_metas_for_states Usage : my @meta = @{ $obj->get_metas_for_states }; Function: Gets metadata annotations for state symbols Returns : An array reference of Bio::Phylo::NeXML::Meta objects Args : None
TESTS
- is_ambiguous()
-
Tests whether the supplied state symbol represents an ambiguous (polymorphic or uncertain) state. For example, for the most commonly-used alphabet for DNA states, the symbol 'N' represents complete uncertainty, the actual state could be any of 'A', 'C', 'G' or 'T', and so this method would return a true value.
Type : Test Title : is_ambiguous Usage : if ( $obj->is_ambiguous('N') ) { # do something } Function: Returns true if argument is an ambiguous state symbol Returns : BOOLEAN Args : A state symbol
- is_valid()
-
Validates argument.
Type : Test Title : is_valid Usage : if ( $obj->is_valid($datum) ) { # do something } Function: Returns true if $datum only contains valid characters Returns : BOOLEAN Args : A Bio::Phylo::Matrices::Datum object
- is_same()
-
Compares data type objects.
Type : Test Title : is_same Usage : if ( $obj->is_same($obj1) ) { # do something } Function: Returns true if $obj1 contains the same validation rules Returns : BOOLEAN Args : A Bio::Phylo::Matrices::Datatype::* object
UTILITY METHODS
- split()
-
Splits argument string of characters following appropriate rules.
Type : Utility method Title : split Usage : $obj->split($string) Function: Splits $string into characters Returns : An array reference of characters Args : A string
- join()
-
Joins argument array ref of characters following appropriate rules.
Type : Utility method Title : join Usage : $obj->join($arrayref) Function: Joins $arrayref into a string Returns : A string Args : An array reference
SERIALIZERS
- to_xml()
-
Writes data type definitions to xml
Type : Serializer Title : to_xml Usage : my $xml = $obj->to_xml Function: Writes data type definitions to xml Returns : An xml string representation of data type definition Args : None
- to_dom()
-
Analog to to_xml.
Type : Serializer Title : to_dom Usage : $type->to_dom Function: Generates a DOM subtree from the invocant and its contained objects Returns : an <XML Package>::Element object Args : none
SEE ALSO
There is a mailing list at https://groups.google.com/forum/#!forum/bio-phylo for any user or developer questions and discussions.
- Bio::Phylo
-
This object inherits from Bio::Phylo, so the methods defined therein are also applicable to Bio::Phylo::Matrices::Datatype objects.
- Bio::Phylo::Manual
-
Also see the manual: Bio::Phylo::Manual and http://rutgervos.blogspot.com.
CITATION
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