Draw phylogenetic tree
spiral_phylo(
obj,
gp = gpar(),
log = FALSE,
reverse = FALSE,
group = NULL,
group_col = NULL,
track_index = current_track_index()
)
phylo_to_dendrogram(obj, log = FALSE)
A stats::dendrogram
object.
Graphical parameters of the tree edges, mainly as a global setting.
Whether the height of the tree to be log-transformed log10(x + 1)
?
Whether the tree to be reversed?
A categorical variable for splitting the tree.
A named vector which contains group colors.
Index of the track.
phylo_to_dendrogram()
converts a phylo
object to a dendrogram
object.
The motivation is that phylogenetic tree may contain polytomies, which means at a certain node, there are more than two children branches. Available tools that do the conversion only support binary trees.
The returned dendrogram
object is not in its standard format which means it can not be properly
drawn by the stats::plot.dendrogram()
function. However, you can still apply stats::cutree()
to the returned
dendrogram
object with no problem and the dendrogram can be properly drawn with the ComplexHeatmap package (see examples).
require(ape)
#> Loading required package: ape
#>
#> Attaching package: ‘ape’
#> The following object is masked from ‘package:circlize’:
#>
#> degree
#> The following objects are masked from ‘package:dendextend’:
#>
#> ladderize, rotate
data(bird.families)
n = length(bird.families$tip.label)
spiral_initialize(xlim = c(0, n), start = 360, end = 360*3)
spiral_track(height = 0.8)
spiral_phylo(bird.families)
require(ape)
data(bird.families)
d = phylo_to_dendrogram(bird.families)
ComplexHeatmap::grid.dendrogram(d, test = TRUE)