[BioC] Adding a text label to the classvec colour bar in heatplot

Kasper Daniel Hansen khansen at stat.berkeley.edu
Sat Aug 2 06:57:43 CEST 2008


Builing R with cairo suport is something you do when you compile R  
from scratch, so it will be very hard for you to fix the "problem". I  
don't know much about Cairo (which is a set of graphics tools), but I  
assume that it has been hard to get to work under WIndows.

I am not really following the R for windows scene, but I was surprised  
to see that R-2.7.1 for Windows did not have SVG support. In that  
case, using the package that Thomas recommends, makes a lot of sense  
(= being the only relevant solution).

Kasper

On Aug 1, 2008, at 5:05 AM, Mikhail, Amy wrote:

> Hi Kasper,
>
> Thanks for the explanation... I looked for Cairo in the capabilities  
> as you suggested, and it says "FALSE".  That is with R 2.7.1 on a  
> windows xp operating system - is building with Cairo support  
> something you can choose during the install or does this really only  
> apply if you build R from source?
>
>> capabilities()
>    jpeg      png    tcltk      X11     aqua http/ftp  sockets    
> libxml     fifo   cledit    iconv      NLS
>    TRUE     TRUE     TRUE    FALSE    FALSE     TRUE     TRUE      
> TRUE    FALSE     TRUE     TRUE     TRUE
> profmem    cairo
>   FALSE    FALSE
>
>> svg()
> Error: could not find function "svg"
>
>> sessionInfo()
> R version 2.7.1 (2008-06-23)
> i386-pc-mingw32
>
> locale:
> LC_COLLATE=English_United Kingdom.1252;LC_CTYPE=English_United  
> Kingdom.1252;LC_MONETARY=English_United Kingdom. 
> 1252;LC_NUMERIC=C;LC_TIME=English_United Kingdom.1252
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
>
> loaded via a namespace (and not attached):
> [1] tools_2.7.1
>
>
> With best wishes,
> Amy
> ________________________________________.
> From: Kasper Daniel Hansen [khansen at stat.berkeley.edu]
> Sent: 01 August 2008 06:25
> To: Mikhail, Amy
> Cc: Thomas Girke; '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
>
> It means you have a SVG device built into base R. So you can do
>
> svg()
>
> to open a SVG device. You do not need the package Thomas was talking
> about. This requires that R has been build with Cairo support, try
> R> capabilities()
> and look for "cairo".
>
> Kasper
>
>
> On Jul 27, 2008, at 2:24 PM, Mikhail, Amy wrote:
>
>> 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)?
>>
>> Best wishes,
>> Amy
>> ________________________________________
>> 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).
>>
>> Kasper
>>
>> 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
>>> support.
>>> 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
>>> devSVG("test.svg")
>>> plot(1:10, 1:10)
>>> dev.off()
>>>
>>> Thomas
>>>
>>>
>>> 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?
>>>>
>>>> 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.
>>>>
>>>> _______________________________________________
>>>> Bioconductor mailing list
>>>> Bioconductor at stat.math.ethz.ch
>>>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>>>> 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
>>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>>> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
>>
>>
>>
>> The University of Aberdeen is a charity registered in Scotland, No
>> SC013683.
>
>
>
> The University of Aberdeen is a charity registered in Scotland, No  
> SC013683.



More information about the Bioconductor mailing list