RearrangeEdges {TreeSearch} | R Documentation |
Rearrange edges of a phylogenetic tree
Description
RearrangeEdges()
performs the specified edge rearrangement on a matrix
that corresponds to the edges of a phylogenetic tree, returning the score of
the new tree.
Will generally be called from within a tree search function.
Usage
RearrangeEdges(
parent,
child,
dataset,
TreeScorer = MorphyLength,
EdgeSwapper,
scoreToBeat = TreeScorer(parent, child, dataset, ...),
iter = "?",
hits = 0L,
verbosity = 0L,
...
)
Arguments
parent |
Integer vector corresponding to the first column of the edge
matrix of a tree of class |
child |
Integer vector corresponding to the second column of the edge
matrix of a tree of class |
dataset |
Third argument to pass to |
TreeScorer |
function to score a given tree.
The function will be passed three parameters, corresponding to the
|
EdgeSwapper |
a function that rearranges a parent and child vector,
and returns a list with modified vectors; for example |
scoreToBeat |
Double giving score of input tree. |
iter |
iteration number of calling function, for reporting to user only. |
hits |
Integer giving number of times the input tree has already been hit. |
verbosity |
Numeric specifying level of detail to display in console: larger numbers provide more verbose feedback to the user. |
... |
further arguments to pass to |
Details
RearrangeTree()
performs one tree rearrangement of a
specified type, and returns the score of the tree (with the given dataset).
It also reports the number of times that this score was hit in the
current function call.
Value
This function returns a list with two to four elements, corresponding to a binary tree: - 1. Integer vector listing the parent node of each edge; - 2. Integer vector listing the child node of each edge; - 3. Score of the tree; - 4. Number of times that score has been hit.
Author(s)
Martin R. Smith
Examples
data("Lobo", package="TreeTools")
tree <- TreeTools::NJTree(Lobo.phy)
edge <- tree$edge
parent <- edge[, 1]
child <- edge[, 2]
dataset <- PhyDat2Morphy(Lobo.phy)
RearrangeEdges(parent, child, dataset, EdgeSwapper = RootedNNISwap)
# Remember to free memory:
dataset <- UnloadMorphy(dataset)