NAME
Bio::Polloc::TypingI - Generic typing interface
DESCRIPTION
Use this interface to initialize the Bio::Polloc::Typing::* objects. Any rule inherits from this Interface. Usually, rules are initialized from files (via the Bio::Polloc::TypingIO package).
AUTHOR - Luis M. Rodriguez-R
Email lrr at cpan dot org
IMPLEMENTS OR EXTENDS
APPENDIX
Methods provided by the package
new
Attempts to initialize a Bio::Polloc::Typing::*
object
Arguments
- -type str
-
The typing method. For further description of the different type, see:
Li, W., Raoult, D., & Fournier, P.-E. (2009). Bacterial strain typing in the genomic era. FEMS Microbiology Reviews, 33(5), 892-916.
http://www.mendeley.com/research/bacterial-strain-typing-in-the-genomic-era/.
One of:
- bandingPattern
-
"DNA banding pattern-based methods which classify bacteria according to the size of fragments generated by amplification and/or enzymatic digestion of genomic DNA" (Li et al 2009)
- bandingPattern::amplification
-
Same of
bandingPattern
, but specifying fragments generated by amplification. - bandingPattern::restriction
-
Same of
bandingPattern
, but specifying fragments generated by enzymatic digestion. - sequencing
-
"DNA sequencing-based methods, which study the polymorphism of DNA sequences" (Li et al 2009)
- hybridization
-
"DNA hybridization-based methods using nucleotidic probes" (Li et al 2009)
- -locigroup Bio::Polloc::LociGroup object
-
Group of loci (Bio::Polloc::LociGroup) to be use for typing.
Returns
The Bio::Polloc::Typing::*
object
Throws
Bio::Polloc::Polloc::Error if unable to initialize the proper object
type
Gets/sets the type of typing method
Arguments
Value (str). See new and the corresponding Bio::Polloc::Typing::*
objects for further details.
Some variations can be introduced, like case variations or short versions like banding or seq.
Return
Value (str). The typing method, or undef
if undefined. The value returned is undef or a string from the above list, regardless of the input variations.
Throws
Bio::Polloc::Polloc::Error if an unsupported type is received.
locigroup
Sets/gets the group of loci to be used.
Arguments
A Bio::Polloc::LociGroup object (optional).
Returns
A Bio::Polloc::LociGroup object or undef
.
matrix
Generates a matrix of values for the given group of loci.
Arguments
- -locigroup Bio::Polloc::LociGroup object
-
The group of loci to be used as base. If not provided, attempts to find the last value returned by scan. If never called (or not cached by the implementation) looks for the base loci (setted via locigroup or at initialization). If everything fails to provide a base group of loci, warns about it and returns
undef
. - -binary bool (int)
-
If true, returns a binary matrix (presence/absence) instead of the native typing value.
- -names bool (int)
-
If true, returns a hash with the names of the genomes as keys instead of an array.
Returns
A reference to an array or a hash (if -names
is true). The key correspond to the incremental number or the name of the genomes, and the values can be either numeric or an array of numeric values, depending on the typing_value implemented by the genotyping method. If -binary
is true, the values are always 0 or 1, regardless of the typing method.
binary
Alias of matrix with -binary
true.
graph
Returns a GD::Simple object containing the graphic representation of the typing results.
Arguments
- -locigroup Bio::Polloc::LociGroup
-
The group to be used as a basis. If any, attempts to locate the last value returned by scan. If never called, looks for the value stored via locigroup or at initialization. Otherwise, warns about it and returns
undef
, - -width int
-
Width of the image in pixels. 600 by default.
- -height int
-
Height of the image in pixels. 300 by default.
- -font str
-
Font of the text in the image (if any). 'Times' by default, but certain images require a TrueType Font in order to work properly. This argument is optional, but we strongly reccomend to provide the path to Lucida Sans Regular, or any other similar TrueType Font.
Returns
A GD::Simple object.
Synopsis
# ...
$typing->scan($lociGroup);
my $graph = $typing->graph(-font=>'/path/to/LucidaSansRegular.ttf');
if($graph){
open IMG, ">", "graph.png" or die "I can not open graph.png: $!\n";
binmode IMG;
print IMG $graph->png;
close IMG;
}
METHODS TO BE IMPLEMENTED
Methods that should be implemented by objects using this interface as base. All the methods in this section can throw Bio::Polloc::Polloc::NotImplementedException if not implemented.
scan
Scans the genomes using the specified loci as base.
Arguments
- -locigroup Bio::Polloc::LociGroup
-
Loci to use as genotyping base. Optional if provided via locigroup or at initialization.
Returns
A Bio::Polloc::LociGroup object containing the actual loci employed for typing.
cluster
Clusters the genomes based on the provided loci.
Arguments
- -locigroup Bio::Polloc::LociGroup object
-
The base group of loci. Same behavior as matrix.
Returns
A Bio::Tree object.
typing_value
Provides a value for the passed loci associated with the typing method.
Arguments
- -loci Array of Bio::Polloc::LocusI
-
The loci to be evaluated. Note that it is a reference array of Bio::Polloc::LocusI objects, and NOT a Bio::Polloc::LociGroup. This is because all the loci are expected to be part of the same genome, and the same group (if grouped). This argument is mandatory.
Returns
A numeric value or a reference to an array of numeric values, depending on the genotyping method.
INTERNAL METHODS
Methods intended to be used only witin the scope of Bio::Polloc::*
_qualify_type
_scan_locigroup
Gets/sets the group of loci after scanning. This should be called at the end of all the implementations of scan.