Recent Releases of treetools
treetools - v1.16.0
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 toDropTip(). Preorder()gainstopologyOnlyargument.
Enhancements
MakeTreeBinary()explicitly removes edge lengths.- Optimize
ClusterTableclass. - 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().
- R
Published by ms609 6 months ago
treetools - v1.15.0
Reweight()sets the weight of characters in a phylogenetic dataset.MatchStrings()checks for mismatched tip labels, suggesting corrections.RootTree()gainsfallbackargument 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.
- R
Published by ms609 7 months ago
treetools - v1.14.0
AddTip(lengthBelow = NA)adds leaf at node without adding a new edge.BalancedTree()and equivalent gain alengthsparameter to specify edge lengths.Fix taxa misplaced by
RoguePlot(sort = TRUE).Fix unexpected polytomies in
Consensus()(#168).
- R
Published by ms609 10 months ago
treetools - v1.12.0
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.
- R
Published by ms609 over 1 year ago
treetools - v1.11.0
New methods and functions
YuleTree()generates a random tree by the Yule process.DescendantTips()complementsDescendantEdges(), 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()$legendLabelsreturns suggested labels for legend.- Support node labels in
AddTip(),CollapseNode(),DropTip(),MakeTreeBinary(),Renumber(),Reorder(),SortTree(),Subtree()(#149). AddTip(edgeLength = NULL)defaults tolengthBelow. 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 soSplitFrequency()supportsSplitsobjects as documented.
- R
Published by ms609 almost 2 years ago
treetools - v1.10.0
New methods and functions
TipTimedTree()displays trees where leaves are associated with absolute ages.ReadMrBayesTrees()samples trees from posterior of MrBayes output.is.TreeNumber()method.
Improvements
- Support zero-edge trees in
as.Splits()andNSplits(). - Support empty constraints in
AddUnconstrained(). - Add space between tokens in
WriteTntCharacters()to support continuous characters (#139).
Deprecations and breaking changes
- Change order of parameters in
DescendantEdges() - Deprecate
AllDescendantEdges(); useDescendantEdges()instead. - Deprecate
EnforceOutgroup(); useRootTree()instead. - Remove
NonDuplicateRoot()andin.Splits().
- R
Published by ms609 over 2 years ago
treetools - v1.9.2
- Improve support for comments in
ReadNotes(). - Support Nexus-escaped
''s inReadCharacters(). - Add
legendparameter toRoguePlot(). RoguePlot()now returns invisibly.- Deprecate
SpectrumLegend()– spun off to separate "PlotTools" package.
- R
Published by ms609 almost 3 years ago
treetools - v1.9.0
New methods and functions
ZeroTaxonTree()creates aphyloobject with no leaves.DropTip()gains new methodsDropTip.list()andDropTip.NULL().as.matrix.phylo()converts a tree to a matrix representation, allowing a tree to be passed as a constraint toImposeConstraint().as.matrix.Splits()andas.matrix.phyDat()methods added as synonyms toas.logical.Splits()andPhyDatToMatrix().
Improvements
Handle
TipLabels(0)andBalancedTree(0).Support zero-leaf trees in
as.Splits()andduplicated.Splits().Support non-identical tip labels in
as.Splits().Try Latin-1 encoding if
ReadCharacters()family fail under UTF-8.
- R
Published by ms609 about 3 years ago
treetools - v1.8.0
New methods and functions
TntOrder()renumbers a tree's nodes to match TNT's convention.head()andtail()methods for Splits objects.Set names of splits object with
names(splits) <- ....as.Splits()support character vectors in the form "...***".
Improvements
ReadTntTree()reads tree tags and follows TNT node numbering conventions.SpectrumLegend()gainstitleparameter and more styling options.Support > 32767 trees in
Consensus()(#127).DropTip()speed improved when branch lengths are present.
- R
Published by ms609 over 3 years ago
treetools - v1.7.0
TreeTools 1.7.0
New methods and functions
rev.Splits()reverses order in which splits are listed.KeepTip.Splits()is a faster alternative toSubSplit().%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()andKeptPaths()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.
Improvements
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()andPostorder()(#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
phyDatobjects inArtificialExtinction().RenumberTips()allowstipOrderto contain elements not present intree.Use lighter Rcpp headers.
Small improvements to computational efficiency.
Deprecations
- Remove deprecated function
PostorderEdges()(#35).
- R
Published by ms609 almost 4 years ago
treetools - v1.6.0
New functions
RoguePlot()plots the positions of rogue taxa.
Improvements
DropTip()gainscheckparameter to allow slightly faster operation where input is guaranteed to be valid.RandomTree()gainsnodesparameter allow the inclusion of polytomies.Infer
tipsparameter if missing inStringToPhyDat().Remove dependency on "phangorn" (allowing use on R < 4.1)
Improve parsing of information from nexus files.
Export
DropTipPhylo()as wrapper toDropTip.phylo().
- R
Published by ms609 about 4 years ago
treetools - v1.5.0
New functions
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 ofDropTip(). ImposeConstraint()makes a tree consistent with topological constraints.as.phylo.Splits()represents aSplitsobject as a tree.Consensus()is a faster C++ implementation ofape::consensus().ClusterTable()C++ functionality imported from "TreeDist".
Improved functions
- Warn when empty cells passed to
MatrixToPhyDat(). - Warn when
LabelSplits(labels)lack names. SplitFrequency()drops tips fromforestthat aren't inreference.AddTipEverywhere()supports trees with < 3 leaves.- Make
RootTree()andPhyDatToMatrix()more robust. Read[Tnt]AsPhyDat()passes additional parameters toRead[Tnt]Characters().- Support
encodingoption inReadCharacters()function family. - Support
CHARSTATELABELSinReadCharacters(). - Support for more formatting quirks in
ReadNotes(). - Better support ambiguous tokens in
WriteTntCharacters().
Optimization
- Fast matching functions from "fastmatch".
- Improve efficiency of
Preorder()andPostorder(), and lift limit on tree size.
- R
Published by ms609 over 4 years ago
treetools - v1.4.5
- Correct calculation of minimum value in
TCIContext(). - Extract tip labels from objects in
StringToPhyDat(). - Support
AddTip(tree, where = "tip name"). SplitFrequency()supports four-leaf trees.- Add
RootTree.matrix()method for edge matrices. - Add
TipLabels.phyDat()method. - Add
NULLmethods for tree reordering functions. - Additions and improvements to text parsing functions.
- R
Published by ms609 over 4 years ago
treetools - v1.4.3
AddTip()supports edge lengths.CladisticInfo()supportsSplitsobjects.as.multiPhylo()converts trees, datasets and Splits objects intomultiPhyloobjects.LabelSplits(labels = NULL)labels each split with its associated node.PhyDatToMatrix()supports integer-only levels.SortTree()supports lists of trees.- Improvements to
ReadTntCharacters()character block extraction (#50).
- R
Published by ms609 almost 5 years ago
treetools - v1.4.0
New functions
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()gainsreplaceAlloption.WriteTntCharacters(types = ...)writes different character types to TNT file.- Tree characterization S3 methods: add
.defaultand.NULL.
Enhancements
MSTEdges()implemented in C++, improving runtime by orders of magnitude.- Improved parsing of TNT character files.
- R
Published by ms609 over 5 years ago
treetools - v1.3.0
New functions
SisterSize()andRootNodeDist()measure sister-clade size and root-node distance.MSTEdges(): Edges of minimum spanning tree.SplitImbalance(): how balanced is each split?- New C++ functions
root_on_node()androot_binary()to root trees quickly and robustly.
Enhancements
TNTReadTree()handles additional punctuation characters.Import RdMacros package 'Rdpack'.
C++ implementation of
TipsInSplits().Export C++ functions
preorder_edges_and_nodes()andpostorder_edges().Remove obsolete copy of C++ code from 'phangorn'.
- R
Published by ms609 over 5 years ago
treetools - v1.1.0
New functions
RandomTree(): Draw tree from uniform distribution, instead of viaape::rtree().MakeTreeBinary(): Uniform equivalent ofape::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.
Enhancements
- Use methods for
UnrootTree(),RootTree(),RootOnNode()to support lists of trees.
- R
Published by ms609 over 5 years ago
treetools - v1.0.0
New functions
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.
Deprecations
PostorderEdges(): usePostorder()instead.NonDuplicateRoot(): unused internal function.match.Splits(): usematch()instead.in.Splits(): use%in%.Splits()instead.
Enhancements
- Improve support for unrooted trees in
as.Splits(). - Use methods so
Reorderfunctions can handlemultiPhyloobjects and edges. - Handle funny node orders.
- Support continuous characters in
ReadCharacters(). - Improve performance of
as.logical.Splits()and related functions. - Fail nicely when trees are too large for memory.
- Fix memory leak in
as.Splits(). - Various under-the-hood improvements to functions.
- Documentation improvements.
- R
Published by ms609 over 5 years ago
treetools - v0.1.4
- Catch hang-inducing bugs in
RootOnNode(). - Update
doubleFactorialscache to fixas.integer()rounding error. - Support unrooted trees in
AddTipEverywhere(). - Documentation improvements.
- R
Published by ms609 almost 6 years ago
treetools - 0.1.2
as.Newick: fast conversion to Newick format.as.TreeNumber: Tree shape enumeration.- Add functions to translate trees to mixed base integers.
RenumberTipscan extract tip order fromphyloandSplitsobjects.- Documentation changes to satisfy CRAN submission requirements.
- R
Published by ms609 about 6 years ago
treetools - Development release
- New package spun out of TreeSearch
- Splits handled using new class, and represented as bitwise integers rather than logicals
- R
Published by ms609 over 6 years ago