[BioC] Adding a text label to the classvec colour bar in heatplot
Mikhail, Amy
a.mikhail at abdn.ac.uk
Fri Jul 25 14:06:28 CEST 2008
Hi Aedin,
What I'd like to do is add group text labels over the colourbar on the top (the rows in my heatplot are genes, the columns are samples). If you look at figures 2 or 3 in the paper below which is co-authored by Robert Gentleman you can see an example of what I mean - the "Relapse" "CCR" labels on the 3rd figure are the type of thing I'm after. This paper was written a while ago (2003) so not sure if the figures were made with heatplot or something else, but I'd be interested to know how it was done?
http://bloodjournal.hematologylibrary.org/cgi/content/abstract/103/7/2771
The dendrogram group labels are not quite what I'm after but it would be interesting to see anyway. I think it would be useful if heatplot had a straight-forward option to add group labels in this way.
Best wishes,
Amy
-----Original Message-----
From: Aedin Culhane [mailto:aedin at jimmy.harvard.edu]
Sent: 25 July 2008 00:02
To: bioconductor at stat.math.ethz.ch; Mikhail, Amy
Subject: Re: Adding a text label to the classvec colour bar in heatplot
Dear Amy
Do you want to add a group text label on each sample, or just over the colorbar on the side ? The label on each sample is easy to do. Do you want code for this?
However currently I haven't implemented a group text label on colorbars in heatplot. I don't think its available in heatmap or heatmap.2.
Another function, we have called pretty.dend draws multiple colorbars beneath a clustering dendrogram and these colorbars have group labels.
In the development version I used mtext to add the group labels to the side of the color bar and this is prettier than the function in the current release.
Unfortunately I haven't implemented group labels adjacent to the colorbar in heatplot as I would have to write code that doesn't call heatmap/heatmap.2.
Let me know if you find an alternative work around, or if you need me to modify heatplot.
I can send you the development version of pretty.dend so you can see what the output looks like. The output from a modified version of heatplot would look very similar (but has the option of including a heatmap).
Regards
Aedin
(and.. BioC developers... I know I should modify pretty.dend so it doesn't have a . in the function name... sorry, my mistake, its on my to-do list ;-)
Dear BioCs,
I'm trying to create a heat plot with a matrix containing real time PCR data for just 5 genes. There are 105 samples, belonging to 7 groups (groups are in numerical order). The matrix looks like this (Age is my grouping variable):
Gene1 Gene2 Gene3 Gene4 Gene5 Age
A1R_D03 -13.71434 -14.19288 -15.79439 -14.93712 -14.87174 3
A4R_D03 -13.29068 -13.39888 -16.49077 -14.87276 -15.21852 3
A7R_D03 -13.19423 -13.09508 -15.80787 -14.59671 -14.47190 3
A10R_D03 -13.33472 -13.34051 -15.60396 -14.69521 -14.28135 3
A13R_D03 -11.89260 -11.73026 -16.05069 -14.59895 -16.40680 3
A61K_D03 -14.64341 -14.55358 -16.37900 -15.44644 -15.80778 3
...etc
As there are so many samples, it doesn't make sense to have the individual sample names on the graph, so I would like to have the samples in their group order with just the seven group labels. With heatplot I can get the colourbar for my seven groups using the classvec argument, but can't find any way to label the colourbars with text...
Also, I'm a little confused about the re-ordering that heatplot does - how can I be sure that the samples belonging to a particular group are underneath the appropriate colourbar (and given my situation I would also want the groups to appear in numerical order)?
I have tried using heatmap.2 as well, but it seems only heatplot has the colour bar by group option - heatmap.2 only allows you to add a colourbar representing each column separately?
Here is my code:
#(Ngenet is a transposition of my matrix and the Age variable is in a separate dataframe so that it doesn't appear directly on the plot).
> >heatplot(Ngenet, dend="none", cols.default=FALSE, margin=c(7, 7),
> >labCol=FALSE, lowcol="red", highcol="green", scale="none",
> >classvec=Mop$Age)
>
If anyone could suggest how I might add the group labels, I'd be very grateful - appologies if this is something very simple, I have actually seen papers with plots showing exactly what I want to do but just can't figure out how to do it.
With best wishes,
Amy
--
Aedín Culhane,
Research Associate
Computational Biology and Functional Genomics Laboratory Harvard School of Public Health, Dana-Farber Cancer Institute
44 Binney Street, SM822C
Department of Biostatistics and Computational Biology, Dana-Farber Cancer Institute Boston, MA 02115 USA
Phone: +1 (617) 632 2468
Fax: +1 (617) 582 7760
Email: aedin at jimmy.harvard.edu
Web URL: http://www.hsph.harvard.edu/researchers/aculhane.html
The University of Aberdeen is a charity registered in Scotland, No SC013683.
More information about the Bioconductor
mailing list