Hello,
Does anyone know of a way to breakup the result of a call to hclust in order to generate new hclust instances representing sub-trees within the original result?
I would like to be able to take a large dendrogram resulting from a call to hclust, and split it up into smaller partitions to focus on specific parts of the sub-tree. The first step in that direction would be to split the tree in half and plot each sub-tree separately.
Based on some other helpful posts (e.g. [here](http://stackoverflow.com/questions/3033261/is-there-a-way-to-get-a-subtree-from-hclust-r) and [here](http://stackoverflow.com/questions/18789059/r-plot-smaller-clusters-from-hclust)), I can now split the main dendrogram into two sub-trees and plot those as dendrograms, e.g.:
# full tree
hc = hclust(dist(iris[,-5]))
plot(hc)
# cast to dendro and get two primary sub-trees
dendro = as.dendrogram(hc)
left_branch = dendro[[1]]
right_branch = dendro[[2]]
plot(left_branch)
plot(right_branch)
The problem arises, however, when I try and pass these new sub-trees back to plotDendroAndColors:
For example:
library(WGCNA) colors = rep('blue', nrow(iris)) # plotting the full tree works fine plotDendroAndColors(hc, colors) # this does not work, however hc_left = as.hclust(left_branch) plotDendroAndColors(hc_left, colors[1:length(hc_left$order)])
The result of the above call is the error:
Error in graphics:::plotHclust(n, merge, height, order(x$order), hang, : invalid dendrogram input Calls: plotDendroAndColors -> plot -> plot -> plot.hclust -> <Anonymous>
Anyone know of a way around this?
System info:
R version 3.1.1 (2014-07-10) Platform: x86_64-unknown-linux-gnu (64-bit) locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 [4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C [10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] WGCNA_1.41-1 flashClust_1.01-2 dynamicTreeCut_1.62 setwidth_1.0-3 [5] colorout_1.0-3 loaded via a namespace (and not attached): [1] acepack_1.3-3.3 cluster_1.15.2 codetools_0.2-8 doParallel_1.0.8 [5] foreach_1.4.2 foreign_0.8-61 Formula_1.1-2 grid_3.1.1 [9] Hmisc_3.14-5 impute_1.38.1 iterators_1.0.7 lattice_0.20-29 [13] latticeExtra_0.6-26 matrixStats_0.10.0 nnet_7.3-8 parallel_3.1.1 [17] plyr_1.8.1 RColorBrewer_1.0-5 Rcpp_0.11.2 reshape_0.8.5 [21] R.methodsS3_1.6.1 rpart_4.1-8 splines_3.1.1 survival_2.37-7