[R] Cutting heatmap dendrogram

Paul Boutros Paul.Boutros at utoronto.ca
Wed Jul 21 03:39:21 CEST 2004


I've been clustering my data using hclust and cutting the resulting tree
with cutree.  Separately, I visualize the clusterings with heatmap.  Is it
possible to have the dendrogram on the heatmap reflect the cutree results?
That is, instead of having one large dendrogram, it would have 4 or 25 in
the example below.  Any guidance on if that's possible or not, and what
kinds of commands I should be looking into would be very much appreciated.
I'm using R 1.9.0 on Windows XP.


# load libraries

# working copy of data
set1 <- as.matrix(data);
set2 <- t(set1);

# genes
genes.distance <- as.dist(1-cor(set2));
genes.clusters <- hclust(genes.distance);
genes.dendrogr <- as.dendrogram(genes.clusters);

# samples
samples.distance <- as.dist(1-cor(set1));
samples.clusters <- hclust(samples.distance1);
samples.dendrogr <- as.dendrogram(samples.clusters1);

# cut the trees
samples.members  <- cutree(samples.clusters, k=4);
genes.members    <- cutree(genes.clusters,   k=25);

# heatmap colouring
my.colors <- function(n = 20, low.col = 0.35, high.col=1, saturation = 0.85)
  if (n < 2) stop("n must be greater than 2")
  n1 <- n%/%2
  n2 <- n - n1
  c(hsv(low.col, saturation, seq(1,0,length=n1)),
     hsv(high.col, saturation, seq(0,1,length=n2)))

# make the heatmap
hv <- heatmap(as.matrix(data), Rowv=genes.dendrogr, Colv=samples.dendrogr,

More information about the R-help mailing list