Report the status of the specified quartet(s) in given trees or lists of splits Estabrook1985Quartet.
Usage
QuartetState(tips, bips, splits = bips, asRaw = FALSE)
QuartetStates(splits, asRaw = FALSE)
# S3 method for class 'Splits'
QuartetStates(splits, asRaw = FALSE)
# S3 method for class 'list'
QuartetStates(splits, asRaw = FALSE)
# S3 method for class 'multiPhylo'
QuartetStates(splits, asRaw = FALSE)Arguments
- tips
A four-element array listing a quartet of leaves, either by their number (if class
numeric) or their name (if classcharacter).- bips
Deprecated; included for compatibility with v1.0.2 and below.
- splits
An object, such as a tree of class
phylo, that can be induced to aSplitsobject usingas.Splits.- asRaw
Logical specifying whether return format should be
raw, which uses less memory and can be processed faster thanintegertype. Default is currently set toFALSEfor backwards compatibility; suggest overriding toTRUE.
Value
QuartetState() returns 0 if the relationships of the four leaves
are not constrained by the provided splits, or the index of the closest
relative to tips[4], otherwise.
QuartetStates() returns a raw vector listing the status of each
quartet of leaves (in the order listed by AllQuartets()) in turn,
or if multiple trees are provided, a matrix in which each row corresponds
to such a vector.
Details
One of the three possible four-leaf trees will be consistent with any set of splits generated from a fully resolved tree. If the leaves are numbered 1 to 4, this tree can be identified by naming the leaf most closely related to leaf 4. If a set of splits is generated from a tree that contains polytomies, it is possible that all three four-leaf trees are consistent with the set of splits.
See also
Compare quartet states between trees (slowly) using
CompareQuartets() and CompareQuartetsMulti().
Other element-by-element comparisons:
CompareQuartets(),
CompareQuartetsMulti(),
CompareSplits(),
PairSharedQuartetStatus(),
SharedQuartetStatus(),
SplitStatus()
Examples
trees <- list(TreeTools::BalancedTree(6),
TreeTools::PectinateTree(6))
trees[[3]] <- TreeTools::CollapseNode(trees[[2]], 9:10)
QuartetState(c(1, 3, 4, 6), trees[[2]])
#> [1] 3
QuartetState(1:4, trees[[1]]) == QuartetState(1:4, trees[[2]])
#> [1] TRUE
QuartetState(c(1, 3, 4, 6), trees[[3]])
#> [1] 0
QuartetStates(trees[[2]])
#> [1] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
QuartetStates(trees[[3]])
#> [1] 0 0 0 0 0 3 0 0 3 3 0 0 3 3 3
CompareQuartets(QuartetStates(trees[[2]]), QuartetStates(trees[[3]]))
#> N Q s d r1 r2 u
#> 30 15 6 0 9 0 0
CompareQuartetsMulti(trees[[1]], trees[2:3])
#> N Q s_all s_any d_all d_any r1_all r1_any r2_all r2_any u_all
#> 45 15 3 12 3 3 0 9 0 0 0
#> u_any x_only
#> 0 3