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[] right_branch = dendro[] plot(left_branch) plot(right_branch)
The problem arises, however, when I try and pass these new sub-trees back to plotDendroAndColors:
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?
R version 3.1.1 (2014-07-10) Platform: x86_64-unknown-linux-gnu (64-bit) locale:  LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8  LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8  LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C  LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages:  stats graphics grDevices utils datasets methods base other attached packages:  WGCNA_1.41-1 flashClust_1.01-2 dynamicTreeCut_1.62 setwidth_1.0-3  colorout_1.0-3 loaded via a namespace (and not attached):  acepack_1.3-3.3 cluster_1.15.2 codetools_0.2-8 doParallel_1.0.8  foreach_1.4.2 foreign_0.8-61 Formula_1.1-2 grid_3.1.1  Hmisc_3.14-5 impute_1.38.1 iterators_1.0.7 lattice_0.20-29  latticeExtra_0.6-26 matrixStats_0.10.0 nnet_7.3-8 parallel_3.1.1  plyr_1.8.1 RColorBrewer_1.0-5 Rcpp_0.11.2 reshape_0.8.5  R.methodsS3_1.6.1 rpart_4.1-8 splines_3.1.1 survival_2.37-7