SPR | R Documentation |
Perform one SPR rearrangement on a tree
SPR(tree, edgeToBreak = NULL, mergeEdge = NULL) SPRMoves(tree, edgeToBreak = integer(0)) ## S3 method for class 'phylo' SPRMoves(tree, edgeToBreak = integer(0)) ## S3 method for class 'matrix' SPRMoves(tree, edgeToBreak = integer(0)) SPRSwap( parent, child, nEdge = length(parent), nNode = nEdge/2L, edgeToBreak = NULL, mergeEdge = NULL ) RootedSPR(tree, edgeToBreak = NULL, mergeEdge = NULL) RootedSPRSwap( parent, child, nEdge = length(parent), nNode = nEdge/2L, edgeToBreak = NULL, mergeEdge = NULL )
tree |
A tree of class |
edgeToBreak |
the index of an edge to bisect, generated randomly if not specified. |
mergeEdge |
the index of an edge on which to merge the broken edge. |
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 |
nEdge |
(optional) integer specifying the number of edges of a tree of
class |
nNode |
(optional) Number of nodes. |
Equivalent to kSPR()
in the phangorn package, but faster.
Note that rearrangements that only change the position of the root WILL be returned by
SPR
. If the position of the root is irrelevant (as in Fitch parsimony, for example)
then this function will occasionally return a functionally equivalent topology.
RootIrrelevantSPR
will search tree space more efficiently in these cases.
Branch lengths are not (yet) supported.
All nodes in a tree must be bifurcating; ape::collapse.singles and ape::multi2di may help.
This function returns a tree in phyDat
format that has undergone one SPR iteration.
TBRMoves()
returns a list of all trees one SPR move away from
tree
, with edges and nodes in preorder, rooted on the first-labelled tip.
a list containing two elements, corresponding in turn to the rearranged parent and child parameters
a list containing two elements, corresponding in turn to the rearranged parent and child parameters
SPRSwap()
: faster version that takes and returns parent and child parameters
RootedSPR()
: Perform SPR rearrangement, retaining position of root
RootedSPRSwap()
: faster version that takes and returns parent and child parameters
Martin R. Smith
The SPR algorithm is summarized in \insertRefFelsenstein2004TreeSearch
RootedSPR()
: useful when the position of the root node should be retained.
Other tree rearrangement functions:
NNI()
,
TBR()
{ tree <- ape::rtree(20, br=FALSE) SPR(tree) }
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.