[BioC] Adding a text label to the classvec colour bar in heatplot
a.mikhail at abdn.ac.uk
Sun Jul 27 23:24:16 CEST 2008
Hi Thomas and Kasper,
Many thanks for the tip - I managed to carry out the adjustments I needed in inkscape. I'd still reccomend adding a group label feature to heatplot for general convenience, but modifying in svg format does seem to be a very handy way of finalising things.
Forgive my ignorance but what does "out of the box" mean (below)?
From: Kasper Daniel Hansen [khansen at stat.berkeley.edu]
Sent: 25 July 2008 20:31
To: Thomas Girke
Cc: Mikhail, Amy; 'aedin at jimmy.harvard.edu'; bioconductor at stat.math.ethz.ch
Subject: Re: [BioC] Adding a text label to the classvec colour bar in heatplot
You will be glad to know that as of 2.7 R supports a SVG device out of
the box (if compiled with Cairo support).
On Jul 25, 2008, at 8:38 AM, Thomas Girke wrote:
> What I find often very helpful for the final refinements of a
> heatmaps or
> any other graphics generated in R is the possibility to save the plots
> in SVG format (Scalable Vector Graphics). This format allows you to
> edit all features in an R plot with graphics editors that have SVG
> A very nice and free one is InkScape: http://www.inkscape.org/. Adobe
> Illustrator should work too. After the import of the SVG file into
> InkScape you ungroup the graphics object to make all the changes final
> refinements you want. The SVG format is supported by many web
> browsers and
> it is becoming more and more the default graphics format for community
> web projects like Wikipedia.
> Here is a short example:
> library("RSvgDevice") # install package from CRAN
> plot(1:10, 1:10)
> On Fri, Jul 25, 2008 at 01:06:28PM +0100, Mikhail, Amy wrote:
>> 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?
>> 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
>> Best wishes,
>> -----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
>> 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
>> 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).
>> (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
>> 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",
>> 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,
>> 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
>> Bioconductor mailing list
>> Bioconductor at stat.math.ethz.ch
>> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
> Thomas Girke
> Assistant Professor of Bioinformatics
> Director, IIGB Bioinformatic Facility
> Center for Plant Cell Biology (CEPCEB)
> Institute for Integrative Genome Biology (IIGB)
> Department of Botany and Plant Sciences
> 1008 Noel T. Keen Hall
> University of California
> Riverside, CA 92521
> E-mail: thomas.girke at ucr.edu
> Website: http://faculty.ucr.edu/~tgirke
> Ph: 951-827-2469
> Fax: 951-827-4437
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
The University of Aberdeen is a charity registered in Scotland, No SC013683.
More information about the Bioconductor