Decompose()
decomposes additive (ordered) phylogenetic characters by
binary decomposition.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.RandomTree()
returns trees for < 3 leaves.root_on_node()
handles trees with < 2 leaves.TotalCopheneticIndex()
, fixing
#158.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.RandomTree(root = TRUE)
roots the tree on a random edge.RoguePlot()$legendLabels
returns suggested labels for legend.AddTip()
, CollapseNode()
, DropTip()
,
MakeTreeBinary()
, Renumber()
, Reorder()
, SortTree()
, Subtree()
(#149).AddTip(edgeLength = NULL)
defaults to lengthBelow
. This will become the
default in a future release.root_on_node()
is now exported
(intended for expert use only).root_on_node()
.KeepTip()
internally so SplitFrequency()
supports Splits
objects
as documented.TipTimedTree()
displays trees where leaves are associated with absolute
ages.ReadMrBayesTrees()
samples trees from posterior of MrBayes output.is.TreeNumber()
method.as.Splits()
and NSplits()
.AddUnconstrained()
.WriteTntCharacters()
to support continuous
characters (#139).DescendantEdges()
AllDescendantEdges()
; use DescendantEdges()
instead.EnforceOutgroup()
; use RootTree()
instead.NonDuplicateRoot()
and in.Splits()
.ReadNotes()
.''
s in ReadCharacters()
.legend
parameter to RoguePlot()
.RoguePlot()
now returns invisibly.SpectrumLegend()
-- spun off to separate
"PlotTools" package.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.
head()
and tail()
methods for Splits objects.
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.
Add KeepTip()
and improve performance of DropTip()
.
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.