The site concordance factor Minh2020TreeSearch is a measure of the strength of support that the dataset presents for a given split in a tree.
Usage
QuartetConcordance(tree, dataset = NULL, weight = TRUE)
ClusteringConcordance(tree, dataset)
PhylogeneticConcordance(tree, dataset)
MutualClusteringConcordance(tree, dataset)
SharedPhylogeneticConcordance(tree, dataset)
Arguments
- tree
A tree of class
phylo
.- dataset
A phylogenetic data matrix of phangorn class
phyDat
, whose names correspond to the labels of any accompanying tree. Perhaps load into R usingReadCharacters
.- weight
Logical specifying whether to weight sites according to the number of quartets they are decisive for.
Details
QuartetConcordance()
is the proportion of quartets (sets of four leaves)
that are decisive for a split which are also concordant with it.
For example, a quartet with the characters 0 0 0 1
is not decisive, as
all relationships between those leaves are equally parsimonious.
But a quartet with characters 0 0 1 1
is decisive, and is concordant
with any tree that groups the first two leaves together to the exclusion
of the second.
By default, the reported value weights each site by the number of quartets
it is decisive for. This value can be interpreted as the proportion of
all decisive quartets that are concordant with a split.
If weight = FALSE
, the reported value is the mean of the concordance
value for each site.
Consider a split associated with two sites:
one that is concordant with 25% of 96 decisive quartets, and
a second that is concordant with 75% of 4 decisive quartets.
If weight = TRUE
, the split concordance will be 24 + 3 / 96 + 4 = 27%.
If weight = FALSE
, the split concordance will be mean(75%, 25%) = 50%.
QuartetConcordance()
is computed exactly, using all quartets, where as
other implementations (e.g. IQ-TREE) follow
@Minh2020;textualTreeSearch in using a random subsample
of quartets for a faster, if potentially less accurate, computation.
NOTE: These functions are under development. They are incompletely tested, and may change without notice. Complete documentation and discussion will follow in due course.
See also
Other split support functions:
JackLabels()
,
Jackknife()
,
MaximizeParsimony()
Examples
data("congreveLamsdellMatrices", package = "TreeSearch")
dataset <- congreveLamsdellMatrices[[1]][, 1:20]
tree <- referenceTree
qc <- QuartetConcordance(tree, dataset)
cc <- ClusteringConcordance(tree, dataset)
pc <- PhylogeneticConcordance(tree, dataset)
spc <- SharedPhylogeneticConcordance(tree, dataset)
mcc <- MutualClusteringConcordance(tree, dataset)
oPar <- par(mar = rep(0, 4), cex = 0.8) # Set plotting parameters
plot(tree)
TreeTools::LabelSplits(tree, signif(qc, 3), cex = 0.8)
plot(tree)
TreeTools::LabelSplits(tree, signif(cc, 3), cex = 0.8)
par(oPar) # Restore plotting parameters
# Display correlation between concordance factors
pairs(cbind(qc, cc, pc, spc, mcc), asp = 1)