as.Splits()
converts a phylogenetic tree to a Splits
object representing
its constituent bipartition splits.
as.Splits(x, tipLabels = NULL, ...)
# S3 method for phylo
as.Splits(x, tipLabels = NULL, asSplits = TRUE, ...)
# S3 method for multiPhylo
as.Splits(x, tipLabels = unique(unlist(TipLabels(x))), asSplits = TRUE, ...)
# S3 method for Splits
as.Splits(x, tipLabels = NULL, ...)
# S3 method for list
as.Splits(x, tipLabels = NULL, asSplits = TRUE, ...)
# S3 method for matrix
as.Splits(x, tipLabels = NULL, ...)
# S3 method for logical
as.Splits(x, tipLabels = NULL, ...)
# S3 method for character
as.Splits(x, tipLabels = NULL, ...)
# S3 method for Splits
as.logical(x, tipLabels = attr(x, "tip.label"), ...)
Object to convert into splits: perhaps a tree of class
phylo
.
If a logical matrix is provided, each row will be considered as a
separate split.
Character vector specifying sequence in which to order
tip labels. Label order must (currently) match to combine or compare separate
Splits
objects.
Presently unused.
Logical specifying whether to return a Splits
object,
or an unannotated two-dimensional array (useful where performance is
paramount).
as.Splits()
returns an object of class Splits
, or
(if asSplits = FALSE
) a two-dimensional array of raw
objects, with
each bit specifying whether or not the leaf corresponding to the respective
bit position is a member of the split.
Splits are named according to the node at the non-root end of the edge that
defines them. In rooted trees, the child of the rightmost root edge names
the split.
Other Splits operations:
LabelSplits()
,
NSplits()
,
NTip()
,
PolarizeSplits()
,
SplitFrequency()
,
SplitsInBinaryTree()
,
TipLabels()
,
TipsInSplits()
,
match.Splits
,
xor()
splits <- as.Splits(BalancedTree(letters[1:6]))
summary(splits)
#> 3 bipartition splits dividing 6 tips, a .. f
#> 123456
#> 8 ***...
#> 9 **....
#> 11 ...**.
#>
#> Tip 1: a Tip 2: b Tip 3: c Tip 4: d Tip 5: e
#> Tip 6: f
TipsInSplits(splits)
#> 8 9 11
#> 3 2 2
summary(!splits)
#> 3 bipartition splits dividing 6 tips, a .. f
#> 123456
#> 8 ...***
#> 9 ..****
#> 11 ***..*
#>
#> Tip 1: a Tip 2: b Tip 3: c Tip 4: d Tip 5: e
#> Tip 6: f
TipsInSplits(!splits)
#> 8 9 11
#> 3 4 4
length(splits + !splits)
#> [1] 6
length(unique(splits + !splits))
#> [1] 3
summary(c(splits[[2:3]], !splits[[1:2]]))
#> 4 bipartition splits dividing 6 tips, a .. f
#> 123456
#> 9 **....
#> 11 ...**.
#> 8 ...***
#> 9 ..****
#>
#> Tip 1: a Tip 2: b Tip 3: c Tip 4: d Tip 5: e
#> Tip 6: f
moreSplits <- as.Splits(PectinateTree(letters[6:1]), tipLabel = splits)
print(moreSplits, details = TRUE)
#> 3 bipartition splits dividing 6 tips, a .. f
#> 123456
#> 9 ****..
#> 10 ***...
#> 11 **....
match(splits, moreSplits)
#> [1] 2 3 NA
moreSplits %in% splits
#> 9 10 11
#> FALSE TRUE TRUE
as.Splits("....**", letters[1:6])
#> 1 bipartition split dividing 6 tips, a .. f