[R] Re: Clustering in R
Martin Maechler
maechler at stat.math.ethz.ch
Thu Jun 17 18:07:47 CEST 2004
Thanks a lot, Michael!
I cc to R-help, where this question really belongs {as the
'Subject' suggests itself...} -- please drop 'bioconductor' from
CC'ing further replies.
>>>>> "michael" == michael watson (IAH-C) <michael.watson at bbsrc.ac.uk>
>>>>> on Thu, 17 Jun 2004 09:16:59 +0100 writes:
michael> OK, admittedly it is not incredibly simple, but it
michael> is not *that* difficult.
michael> If you are familiar with R, it should take you an
michael> hour or two; if unfamiliar, perhaps a day or two.
michael> The commands you want (and need to read the help on) are:
michael> hclust
michael> plclust
michael> cutree
and I would add identify.hclust() {and rect.hclust()}
a very neat but not known / used enough function
a link to which I have just added to the help(hclust) page.
Look at its examples {not with example() since they are
"dontrun"} correcting the extraneous "." in the last (and
coolest!) example!
michael> dendrogram
michael> as.dendrogram
michael> heatmap
where you use "dendrogram"s produced from "hclust" objects via
as.dendrogram(<hc-obj>) or also "twins" objects produced from
package cluster's agnes() or diana() via
as.dendrogram(as.hclust( <twins-obj> ) )
help(dendrogram) also mentions
"[[" (and shows examples) and cut() for cutting dendrograms and shows
how you can depict dendrograms into its parts.
michael> With intelligent use of hclust -> cutree -> subsetting -> hclust
michael> (in that order) you will be able to drill down
michael> into your dendrogram and create sub-trees - until
michael> you get to the level where you can see your gene
michael> names.
or also
hclust -> as.dendrogram -> cut -> ..
-> [[ ->
Note that there also is reorder.dendrogram() for reordering
dendrogram nodes ``sensibly'' --- something that heatmap() does,
but you can play with quite a bit.
Further, note Catherine Hurley's "gclus" package which
orders/reorders 'hclust' objects directly, but with a more
interesting algorithm.
Note that I'd strongly recommend to use R 1.9.1 beta for these,
since I know which bugs in the dendrogram code I have fixed
since R 1.9.0...
michael> An important message to take home here is that if
michael> you have 14000 genes and therefore 14000 labels,
michael> it's going to be difficult to display your tree in
michael> ANY software, including the expensive commercial products.
not showing the labels and using identify.hclust() and the
command line to extract the indices of observations in
clusters (and subclusters) and visualize them in other, non-dendrogram plots,
might well be feasible.
michael> Let me know how you get on
michael> Thanks
michael> Mick
michael> -----Original Message-----
michael> From: wmak at brandeisedu [mailto:wmak at brandeis.edu]
michael> Sent: 16 June 2004 21:26
michael> To: bioconductor at stat.math.ethz.ch
michael> Subject: [BioC] Clustering in R
>> Dear list members,
>> I'm an undergrad and I work in a lab at Brandeis.
>> I am trying to cluster around 14,000 genes across 6
>> microarray experiments. Two of these experiments
>> are replicates. I have decided to use R since it
>> seems to be the most complete and flexible software
>> package for normalization and clustering of
>> microarray data.
>> The problem is that I am new to clustering and to
>> R. Just to mention of a few of the problems I'm
>> having: the dendrogram that is drawn by R from the
>> agnes object is far too dense to see any of the
>> gene names; kmeans won't work, returning an error
>> saying that my data has NAs in it (there weren't
>> any missing values in the original table though);
>> I'd like to be able to see a heatmap or a
>> cumulative plot of expression profiles for genes
>> that are clustered together or are on the same
>> branch of the dendrogram.
>> I know that these questions are probably very
>> simple, but I can't seem to find the answer to them
>> online or in the documentation. If anyone can
>> answer these questions or direct me toward
>> resources that deal with clustering in R or
>> BioConductor, a basic tutorial that takes a
>> practical approach to it, I would really appreciate
>> it. Any other reading material that isn't too
>> heavy on statistics that deals with clustering for
>> that matter, would be very helpful.
>> Thank you in advance,
>> Wayne Mak
More information about the R-help
mailing list