Skip to content

Releases: ms609/TreeTools

v2.0.0

23 Sep 10:33

Choose a tag to compare

New functionality

  • Cherries() counts the cherries in a binary tree.
  • New method as.Splits.integer().
  • Add methods for NULL objects.

Fixes and enhancements

  • Fix RoguePlot(sort = TRUE) (Rogue#33).
  • Remove R.cache dependency: UnrootedKeys() now uses a native cache implementation.

Backward incompatible changes

  • Require R 3.6.
  • Remove deprecated functions AllDescendantEdges(), .EnforceOutgroup(), ForestSplits(), in.Splits(), PhylogeneticInfo(), SpectrumLegend(), SplitNumber(), TreeSplits().
  • Remove deprecated C++ macro TREETOOLS_SPLITLIST_INIT.

v1.16.1

25 Aug 06:59

Choose a tag to compare

  • Compiler-safe vector initialization, resolving M1-SAN warnings.

v1.16.0

22 Aug 13:10

Choose a tag to compare

New functionality

  • SplitConsistent() calculates split (dis)agreement.
  • LongBranch() identifies long-branched taxa.
  • Treeness() computes the treeness (=stemminess) of a tree, a proxy for its
    phylogenetic signal.
  • Add KeepTip() methods to correspond to DropTip().
  • Preorder() gains topologyOnly argument.

Enhancements

  • MakeTreeBinary() explicitly removes edge lengths.
  • Optimize ClusterTable class.
  • Optimize NSplits().
  • Remove exported C++ cache objects to prefer calculation with intrinsics.
  • Other performance improvements.

Fixes

  • Fix as.ClusterTable() when leaf order varies.
  • Fix regressions in as.ClusterTable() that caused downstream errors.
  • Fix regressions in PhyToString().
  • Fix handling of multiple ambiguities in Reweight().

v1.15.0

21 Jul 14:20

Choose a tag to compare

  • Reweight() sets the weight of characters in a phylogenetic dataset.
  • MatchStrings() checks for mismatched tip labels, suggesting corrections.
  • RootTree() gains fallback argument to handle outgroups that do not root a tree.
  • Fix MakeTreeBinary() labelling trees as in preorder.
  • Fix as.Splits.matrix(tipLabels != NULL).
  • Modernize aspects of C++ code.

v1.14.0

14 May 05:53
31cc8d1

Choose a tag to compare

  • AddTip(lengthBelow = NA) adds leaf at node without adding a new edge.

  • BalancedTree() and equivalent gain a lengths parameter to specify edge lengths.

  • Fix taxa misplaced by RoguePlot(sort = TRUE).

  • Fix unexpected polytomies in Consensus() (#168).

v1.13.1

07 Apr 13:29

Choose a tag to compare

  • Support non-unique labels in DropTip() checks.

v1.13.0

13 Jan 07:13

Choose a tag to compare

  • Decompose() decomposes additive (ordered) phylogenetic characters by binary decomposition.

  • Add %in% and match methods for phylo / multiPhylo objects.

  • Check for overflow in splits functions.

v1.12.0

25 Jul 13:46

Choose a tag to compare

New methods and functions

  • TopologyOnly() removes metadata from phylo objects.
  • J1Index() computes the robust, universal tree balance measure of
    Lemant et al. 2022 doi:10.1093/sysbio/syac027, incorporating code by Rob Noble.

Enhancements

  • Consistent sequence of list entries in phylo objects.
  • RandomTree() returns trees for < 3 leaves.
  • root_on_node() handles trees with < 2 leaves.
  • Support larger trees in TotalCopheneticIndex(), fixing #158.

v1.11.1

07 Jun 15:28

Choose a tag to compare

  • Set random seed and increase tolerance to avoid false negatives on tests.

v1.11.0

23 May 15:52

Choose a tag to compare

New methods and functions

  • YuleTree() generates a random tree by the Yule process.
  • DescendantTips() complements DescendantEdges(), rewritten in C++, fixing a bug when edges were not in preorder.
  • NodeNumbers() returns the indices of nodes within a tree.

Enhancements

  • RandomTree(root = TRUE) roots the tree on a random edge.
  • RoguePlot()$legendLabels returns suggested labels for legend.
  • Support node labels in AddTip(), CollapseNode(), DropTip(), MakeTreeBinary(), Renumber(), Reorder(), SortTree(), Subtree() (#149).
  • AddTip(edgeLength = NULL) defaults to lengthBelow. This will become the default in a future release.
  • An entry point to the C++ function root_on_node() is now exported (intended for expert use only).
  • Fix handling of weighted trees by root_on_node().
  • Use KeepTip() internally so SplitFrequency() supports Splits objects as documented.