DendroPy 3.8.0 has been released.
This release is include some major extensions/`changes to both the
core DendroPy library as well as the bundled SumTrees application. In
addition, the tutorial has been extended to cover some tree
manipulation opertions (rooting, rotating, and pruning) in detail.
SumTrees now has greatly expanded abilities to deal with ultrametric
trees, as
well as summarizing edge length and tree probability information:
- SumTrees can now summarize edge lengths on target trees in
different
ways:
- `-e mean-length`: sets the edge lengths of the target/
consensus
tree(s) to the mean of the lengths of the corresponding
edges of the
input trees.
- `-e median-length`: sets the edge lengths of the target/
consensus
tree(s) to the median of the lengths of the corresponding
edges of
the input trees.
- `-e median-age`: adjusts the edge lengths of the target/
consensus
tree(s) such that the node ages correspond to the median age
of
corresponding nodes of the input trees [requires rooted
ultrametric
trees].
- `-e mean-age`: adjusts the edge lengths of the target/
consensus
tree(s) such that the node ages correspond to the mean age
of
corresponding nodes of the input trees [requires rooted
ultrametric
trees].
- SumTrees will now annotate edges with summaries (mean, median,
standard
deviation, range, 95% highest posterior density, 5% and 95%
quantiles,
etc.) of the distribution of edge lengths across across input
trees.
- SumTrees will now annotate nodes with summaries (mean, median,
standard
deviation, range, 95% highest posterior density, 5% and 95%
quantiles,
etc.) of the distribution of ages across across input trees if
the trees
are indicated to be ultrametric with the "``--ultrametric``"
flag
[requires rooted ultrametric trees].
- SumTrees will now be interpret and handle tree weights if the
`--weighted-trees` option is specified.
- SumTrees will now report topology frequencies/probabilities, if
given the
`--trprobs` option.
- SumTrees can now handle arbitrarily-large numbers of files.
- SumTrees creates a rooted consensus tree if input trees are
specified to
be rooted using the `--rooted-trees` flag (or rooted trees are
assumed as
with the '--ultrametric' flag).
- More information as well as detailed user guide available here:
http://packages.python.org/DendroPy/scripts/sumtrees.html
The core DendroPy library as well has many new features and
enhancements, including:
- Tree objects can now be rerooted at midpoint (see
`Tree.reroot_at_midpoint()`).
- Annotations (i.e., attributes of Tree, Node or Edge objects that
have had "annotate()" called on them) can now be written as metadata
comments ("[&field=value]") when writing NEXUS/NEWICK format if the
keyword argument `annotations_as_comments` is used.
- When reading in NEXUS/NEWICK format trees, specifying
`extract_comment_metadata=True` will result in metadata comments being
pulled into dictionary, with keys being fieldnames and values being
the field values.
- When reading NEXUS format data, SETS blocks will be processed,
and character sets parsed into the relevant CharacterDataMatrix.
- Character sets (as, for example, parsed out of NEXUS SETS
blocks: see above) can be exported as new CharacterDataMatrix objects,
and be saved/manipulated/etc. independentally.
- When writing in NEXUS or NEWICK formats, the
`write_item_comments` keyword argument (`True` or `False`) can control
whether extended comments associated with nodes on trees will be
written or not.
- TopologyCounter class added to dendropy.treesum: allows for
tracking of topology frequencies.
- `treesplits.tree_from_splits()` allows constructing of (topology-
only) trees from a set of splits.
- Most functionality that used to be 'dendropy.treemanip' has now
been migrated as native methods of the dendropy.Tree class.
'dendropy.treemanip' will be deprecated.
- Trees can now be pruned based on a list of taxa labels to remove
or keep (previously, the methods would only accept lists of Taxon
objects).
- A detailed change log can be found here:
http://packages.python.org/DendroPy/changes.html
The latest release is available from:
http://pypi.python.org/pypi/DendroPy