[BioC] heatmap

Wilkinson, Mark Mark.Wilkinson@stjude.org
Fri, 21 Feb 2003 16:40:50 -0600


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_000_01C2D9FA.48C66C50
Content-Type: text/plain;
	charset="iso-8859-1"

I'm definitely interested.

I've been working on such a function.  It works for me, but it's not at the
stage of releasing it into the wild.
It also so happens that Adaikalavan Ramasamy posted to R-help ([R]
Rearranging subtrees and Eisen Cluster) asking a similar question.  He is
trying to reproduce the graphics of Eisen's cluster software.

I'm attaching output of my function.


 <<heatmap.png>> 
Mark Wilkinson
Informatics Analyst
St. Jude Children's Research Hospital
Department of Pharmaceutical Sciences

The opinions expressed here are my own and do not necessarily represent
those of St. Jude Children's Research Hospital.


 -----Original Message-----
From: 	Liaw, Andy [mailto:andy_liaw@merck.com] 
Sent:	Friday, February 21, 2003 3:35 PM
To:	'bioconductor@stat.math.ethz.ch'
Subject:	[BioC] heatmap

The wisdom of looking at such a thing aside, has anyone implemented
`heatmap' in R?  (That's the one where the data matrix is shown in a color
image, with dendrograms on the top and left sides of it indicating the
clustering of rows and columns.)  

I tried looking for it on the BioConductor website but didn't see any, so I
went ahead and whipped up a heatmap function to do it.  If anyone is
interested, let me know.

Cheers,
Andy

Andy I. Liaw, PhD
Biometrics Research          Phone: (732) 594-0820
Merck & Co., Inc.              Fax: (732) 594-1565
P.O. Box 2000, RY84-16            Rahway, NJ 07065
mailto:andy_liaw@merck.com




----------------------------------------------------------------------------
--

_______________________________________________
Bioconductor mailing list
Bioconductor@stat.math.ethz.ch
http://www.stat.math.ethz.ch/mailman/listinfo/bioconductor

------_=_NextPart_000_01C2D9FA.48C66C50
Content-Type: application/octet-stream;
	name="heatmap.png"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="heatmap.png"

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

------_=_NextPart_000_01C2D9FA.48C66C50--