NAME
Bio::Phylo::Unparsers::Nhx - Serializer used by Bio::Phylo::IO, no serviceable parts inside
DESCRIPTION
This module turns a tree object into a New Hampshire eXtended-formatted (parenthetical) tree description. It is called by the Bio::Phylo::IO facade, don't call it directly. You can pass the following additional arguments to the unparse call:
# by default, names for tips are derived from $node->get_name, if
# 'internal' is specified, uses $node->get_internal_name, if 'taxon'
# uses $node->get_taxon->get_name, if 'taxon_internal' uses
# $node->get_taxon->get_internal_name, if $key, uses $node->get_generic($key)
-tipnames => one of (internal|taxon|taxon_internal|$key)
# for things like a translate table in nexus, or to specify truncated
# 10-character names, you can pass a translate mapping as a hashref.
# to generate the translated names, the strings obtained following the
# -tipnames rules are used.
-translate => { Homo_sapiens => 1, Pan_paniscus => 2 }
# if set, appends labels to internal nodes (names obtained from the same
# source as specified by '-tipnames')
-nodelabels => 1
# specifies a branch length sprintf number formatting template, default is %f
-blformat => '%e'
In addition, you can influence what key/value pairs are inserted into the NHX "hot comments" in two ways. The first way (and the way that is least likely to cause unintentional mishaps) is by attaching a Meta annotation to a node. This annotation has to be associated with the NHX namespace. Here is an example:
use Bio::Phylo::Util::CONSTANT ':classnames';
# ...other things happening...
$node->set_namespaces( 'nhx' => _NS_NHX_ );
$node->set_meta_object( 'nhx:foo' => 'bar' );
# which results in: [&&NHX:foo=bar]
The other way is by using the set/get generic methods, e.g.:
$node->set_generic( 'foo' => 'bar');
However, this is riskier because everything you attach to an object using these methods will be inserted into the NHX, including references (which won't serialize well).
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::IO
-
The NHX unparser is called by the Bio::Phylo::IO object. Look there to learn how to unparse newick strings.
- 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