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