NEWS.md
AddUnconstrained()
and ImposeConstraint()
handle wider range of inputs.
PhyDatToMatrix()
can (and by default does) override levels to write ambiguous tokens in custom formats such as {01}
.
Call C functions using symbols, not strings.
ZeroTaxonTree()
creates a phylo
object with no leaves.
DropTip()
gains new methods DropTip.list()
and DropTip.NULL()
.
as.matrix.phylo()
converts a tree to a matrix representation, allowing a tree to be passed as a constraint to ImposeConstraint()
.
as.matrix.Splits()
and as.matrix.phyDat()
methods added as synonyms to as.logical.Splits()
and PhyDatToMatrix()
.
Handle TipLabels(0)
and BalancedTree(0)
.
Support zero-leaf trees in as.Splits()
and duplicated.Splits()
.
Support non-identical tip labels in as.Splits()
.
Try Latin-1 encoding if ReadCharacters()
family fail under UTF-8.
TntOrder()
renumbers a tree’s nodes to match TNT’s convention.
Set names of splits object with names(splits) <- ...
.
as.Splits()
support character vectors in the form “…***“.
ReadTntTree()
reads tree tags and follows TNT node numbering conventions.
SpectrumLegend()
gains title
parameter and more styling options.
Support > 32767 trees in Consensus()
(#127).
DropTip()
speed improved when branch lengths are present.
ReadTntTree()
supports multi-line trees.
as.MixedBase()
supports larger trees (44-32767 tips).
Add deprecation warning to in.Splits()
.
RenumberTips()
drops “preorder” attribute, as reordering tip labels may break edge ordering guarantee.
Native implementation of ClusterTable
class.
Replace throw
with stop
in C++ scripts.
AddTip()
: Fix bug when adding tip to root of weighted tree.rev.Splits()
reverses order in which splits are listed.
KeepTip.Splits()
is a faster alternative to SubSplit()
.
%in%.Splits()
retains names when comparing small splits (#40).
sort.multiPhylo()
sorts lists of trees according to their mixed base representation (#84).
Bitwise manipulation of splits with |
, &
, xor
.
as.MixedBase()
uniquely represents binary trees as a mixed-base vector.
PathLengths()
describes all paths within a tree.
KeptVerts()
and KeptPaths()
identify elements in reduced trees.
PostorderOrder()
describes a sequence of edges corresponding to a postorder traversal of a tree.
SpectrumLegend()
adds gradients to plot legends.
Improve handling of zero-split trees.
DropTip()
no longer adds a root to unrooted trees, and retains edge lengths.
Improve speed of DropTip()
, by an order of magnitude in some cases.
Support edge lengths in Preorder()
, RootTree()
, UnrootTree()
and Postorder()
(#49, #89).
Fix bug when tree is rooted on a discontinuous outgroup.
SortTree()
handles weighted and non-binary trees (#25, #25), and gains option to sort by tip labels.
TipsInSplits(smallest = TRUE)
counts tips in smaller bipartition.
Fix a bug with phyDat
objects in ArtificialExtinction()
.
RenumberTips()
allows tipOrder
to contain elements not present in tree
.
Use lighter Rcpp headers.
Small improvements to computational efficiency.
PostorderEdges()
(#35).RoguePlot()
plots the positions of rogue taxa.DropTip()
gains check
parameter to allow slightly faster operation where input is guaranteed to be valid.
RandomTree()
gains nodes
parameter allow the inclusion of polytomies.
Infer tips
parameter if missing in StringToPhyDat()
.
Remove dependency on “phangorn” (allowing use on R < 4.1)
Improve parsing of information from nexus files.
Export DropTipPhylo()
as wrapper to DropTip.phylo()
.
PhyDatToMatrix()
optionally encodes ambiguous / inapplicable tokens as NA
.
Implement sort.multiPhylo()
.
Update test suite for compatibility with “testthat” > 3.0.4 (@hadley, #83).
ConstrainedNJ()
returns an approximation to a neighbour-joining tree that respects constraints.
PolarizeSplits()
marks a specified taxon as representing the ingroup of all splits.
ImposeConstraint()
makes a tree consistent with topological constraints.
as.phylo.Splits()
represents a Splits
object as a tree.
Consensus()
is a faster C++ implementation of ape::consensus()
.
ClusterTable()
C++ functionality imported from “TreeDist”.
Warn when empty cells passed to MatrixToPhyDat()
.
Warn when LabelSplits(labels)
lack names.
SplitFrequency()
drops tips from forest
that aren’t in reference
.
AddTipEverywhere()
supports trees with < 3 leaves.
Make RootTree()
and PhyDatToMatrix()
more robust.
Support encoding
option in ReadCharacters()
function family.
Support CHARSTATELABELS
in ReadCharacters()
.
Support for more formatting quirks in ReadNotes()
.
Better support ambiguous tokens in WriteTntCharacters()
.
Fast matching functions from “fastmatch”.
Improve efficiency of Preorder()
and Postorder()
, and lift limit on tree size.
TCIContext()
.StringToPhyDat()
.AddTip(tree, where = "tip name")
.SplitFrequency()
supports four-leaf trees.RootTree.matrix()
method for edge matrices.TipLabels.phyDat()
method.NULL
methods for tree reordering functions.NTip.phyDat()
method.MakeTreeBinary()
docs and tests to reflect updated behaviour of ape::multi2di()
in ‘ape’ v5.5.AddTip()
supports edge lengths.CladisticInfo()
supports Splits
objects.as.multiPhylo()
converts trees, datasets and Splits objects into multiPhylo
objects.LabelSplits(labels = NULL)
labels each split with its associated node.PhyDatToMatrix()
supports integer-only levels.SortTree()
supports lists of trees.ReadTntCharacters()
character block extraction (#50).RootTree()
.root_on_node()
.MSTEdges()
supports distance matrices with > 256 entries.MSTLength()
reports length of minimum spanning tree.AllTipLabels()
returns all labels from all trees in a list.PairwiseDistances()
(from ‘TreeDistData’) computes distances between all pairs of trees in a list.ArtificialExtinction()
gains replaceAll
option.WriteTntCharacters(types = ...)
writes different character types to TNT file..default
and .NULL
.MSTEdges()
implemented in C++, improving runtime by orders of magnitude.SisterSize()
and RootNodeDist()
measure sister-clade size and root-node distance.MSTEdges()
: Edges of minimum spanning tree.SplitImbalance()
: how balanced is each split?root_on_node()
and root_binary()
to root trees quickly and robustly.TNTReadTree()
handles additional punctuation characters.
Import RdMacros package ‘Rdpack’.
C++ implementation of TipsInSplits()
.
Export C++ functions preorder_edges_and_nodes()
and postorder_edges()
.
Remove obsolete copy of C++ code from ‘phangorn’.
ArtificialExtinction()
: Remove characters that are absent in a fossil template.WriteTntCharacters()
: Write morphological dataset in TNT format.RandomTree()
: Draw tree from uniform distribution, instead of via ape::rtree()
.MakeTreeBinary()
: Uniform equivalent of ape::multi2di()
.match.list()
method for lists of splits.SplitsInBinaryTree()
: How many splits occur in an n-leaf binary tree?vapply64()
, sapply64()
, replicate64()
: helper functions when a function returns a 64-bit integer.UnrootTree()
, RootTree()
, RootOnNode()
to support lists of trees.CladisticInfo()
: Calculate the information content of a tree.RootNode()
: Which node is a tree’s root?UnrootTree()
: Safely remove a root node.NodeDepth()
: Discriminate shallow from deep nodes.NodeOrder()
, NDescendants()
: Count edges incident to each node.CladeSizes()
: Count leaves / nodes descended from each node.ListAncestors()
: List ancestors of a node.LabelSplits()
: Label splits on plotted tree.DropTip()
: Remove tip, handling weird node orders.LeafLabelInterchange()
: Exchange position of n tips.StarTree()
: Generate unresolved tree.TotalCopheneticIndex()
integrated from ‘tci’ package.PostorderEdges()
: use Postorder()
instead.NonDuplicateRoot()
: unused internal function.match.Splits()
: use match()
instead.in.Splits()
: use %in%.Splits()
instead.as.Splits()
.Reorder
functions can handle multiPhylo
objects and edges.ReadCharacters()
.as.logical.Splits()
and related functions.as.Splits()
.RootOnNode()
.doubleFactorials
cache to fix as.integer()
rounding error.AddTipEverywhere()
.RootOnNode()
: Quickly root a tree on a specified node.as.Newick
: Fast conversion to Newick format.as.TreeNumber
: Tree shape enumeration.RenumberTips
can extract tip order from phylo
and Splits
objects.