## ----set-up-------------------------------------------------------------------
tree1 <- ape::read.tree(text = "(A, ((B, (C, (D, E))), ((F, G), (H, I))));")
tree2 <- ape::read.tree(text = "(A, ((B, (C, (D, (H, I)))), ((F, G), E)));")

## ----load-package, message=FALSE----------------------------------------------
library("Quartet")

## ----quartet-status-----------------------------------------------------------
statuses <- QuartetStatus(tree1, tree2)

## ----measure-distance---------------------------------------------------------
QuartetDivergence(statuses, similarity = FALSE)

## ----all-metrics--------------------------------------------------------------
SimilarityMetrics(statuses, similarity = TRUE)

## ----visualize-quartets-------------------------------------------------------
VisualizeQuartets(tree1, tree2)

## ----partitions---------------------------------------------------------------
SimilarityMetrics(SplitStatus(tree1, tree2))

## ----multi-trees--------------------------------------------------------------
library("TreeTools", quietly = TRUE, warn.conflicts = FALSE)
oneTree <- CollapseNode(as.phylo(0, 11), 14)
twoTrees <- structure(list(bal = BalancedTree(11), pec = PectinateTree(11)),
                      class = "multiPhylo")

status <- SharedQuartetStatus(twoTrees, cf = oneTree)
QuartetDivergence(status)

## ----one-to-many--------------------------------------------------------------
forest <- as.phylo(0:5, 11)
names(forest) <- letters[1:6]
status <- SharedQuartetStatus(forest)
QuartetDivergence(status)

## ----many-to-many-------------------------------------------------------------
status <- ManyToManyQuartetAgreement(forest)
QuartetDivergence(status, similarity = FALSE)

## ----pairwise-----------------------------------------------------------------
status <- TwoListQuartetAgreement(forest[1:4], forest[5:6])
QuartetDivergence(status, similarity = FALSE)

## ----different-tips, fig.height = 1.5, fig.width = 4, fig.align = "center"----
treeAG <- PectinateTree(letters[1:7])
treeBI <- PectinateTree(letters[2:9])
treeEJ <- PectinateTree(letters[5:10])
par(mfrow = c(1, 3), mar = rep(0.3, 4), cex = 1)
plot(treeAG); plot(treeBI); plot(treeEJ)

QuartetState(letters[1:4], treeAG) # 3: C is closest to D
QuartetState(letters[1:4], treeBI) # 0: unresolved in this tree

# Calculate status for all leaves observed in trees: here, A..I
QuartetStatus(treeAG, treeBI, nTip = TRUE)

# Calculate status for specified number of leaves
# Here, we have ten taxa A..J, but J does not occur in either of these trees
QuartetStatus(treeAG, treeBI, nTip = 10)

# Compare a list of trees with different numbers of leaves to a reference
QuartetStatus(c(treeAG, treeBI, treeEJ), cf = treeAG, nTip = TRUE)

# Compare all pairs of trees in a list.
# "u" shows how many possible quartets are unresolved in both trees
ManyToManyQuartetAgreement(c(treeAG, treeBI, treeEJ), nTip = TRUE)[, , "u"]

## ----in-one-only--------------------------------------------------------------
interestingTree <- as.phylo(42, 7)
referenceTrees <- list(BalancedTree(7), PectinateTree(7))
status <- CompareQuartetsMulti(interestingTree, referenceTrees)

