Islands() assigns a set of objects to islands, such that all elements within an island can form a connected graph in which each edge is no longer than threshold distance units \insertRef Silva2021TreeDist.
Islands(D, threshold, dense =TRUE, smallest =0)
Arguments
D: Square matrix or dist object containing Euclidean distances between data points.
threshold: Elements greater than threshold distance units will not be assigned to the same island.
dense: Logical; if FALSE, each island will be named according to the index of its lowest-indexed member; if TRUE, each island will be numbered sequentially from 1, ordered by the index of the lowest-indexed member.
smallest: Integer; Islands comprising no more than smallest elements will be assigned to island NA.
Returns
Islands() returns a vector listing the island to which each element is assigned.
Examples
library("TreeTools", quietly =TRUE)# Generate a set of treestrees <- as.phylo(as.TreeNumber(BalancedTree(16))+ c(-(40:20),70:105),16)# Calculate distances between treesdistances <- ClusteringInfoDist(trees)summary(distances)# Assign trees to islandsisle <- Islands(distances, quantile(distances,0.1))table(isle)# Indicate island membership on 2D mapping of tree distancesmapping <- cmdscale(distances,2)plot(mapping, col = isle +1, asp =1,# Preserve aspect ratio - do not distort distances ann =FALSE, axes =FALSE,# Don't label axes: dimensions are meaningless) pch =16# Plotting character: Filled circle)# Compare strict consensus with island consensus treesoPar <- par(mfrow = c(2,2), mai = rep(0.1,4))plot(Consensus(trees), main ="Strict")plot(Consensus(trees[isle ==1]), edge.col =2, main ="Island 1")plot(Consensus(trees[isle ==2]), edge.col =3, main ="Island 2")plot(Consensus(trees[isle ==3]), edge.col =4, main ="Island 3")# Restore graphical parameterspar(oPar)
References
\insertAllCited
See Also
Other tree space functions: MSTSegments(), MapTrees(), MappingQuality(), SpectralEigens(), cluster-statistics, median.multiPhylo()