Yes, we have tried heatmap.2 It is the best R solution we have seen so far, but not good enough. First, you can only add one colored indicator line, Second, there is a size limitation of about 3000 pixels (which might apply to everything R) . Given that you want the gene/experiment names to be readable (>=11pt), and that some space is eaten by the tree structure, this severely limits the number of genes/experiments that can be shown.
We usually create heatmaps of hierachically clustered microarray data in MeV (multi-experiment viewer, part of the TM4 package). MeV might have its shortcomings, but it produces the nicest heatmap figures I have seen so far, allowing arbitrary sizes, different color schemes and additional class-indicator bars.
We are now facing the problem to generate these figures semi-automatically. Unfortunately, there doesn't seem to be an easy way to script MeV, e.g. via the command line or using script files. It might be possible to access the functionally via Java, but this is beyond our capabilities.
Apart from heatmap display, we are doing everything else using R/bioconductor. The obvious way to go would be to automatize heatmap display in R, which is of course perfectly scriptable. However, I haven't seen an R module that comes even close the heatmap capabilities of Mev. This might be due to my poor grasp on R, but I am not able to 1) create big heatmaps beyond a few thousand pixels, 2) speficy a font size and have a heatmap of a suitable size created from that information - it is always necessary to specify the size of the output frame. Ideally, I would like to get a png file with a fixed font/element size, whose canvas size depends on the number of experiments and genes - without any auto-scaling, and 3) to create more than one colored indicator line that gives information on the class assignment of the genes/experiments.
It would be great if anybody could give a recommendation on either how to script MeV without having to learn Java or which R module to use for generating suitable heatmaps complete with tree and class-indicator lines.
1 answer
Have you tried using the heatmap.2 in gplots? They heatmap.2 function there is very nice and I can add a colored side bar with the tree. Below is how I get the color side bar to be specific to your sample:
cols<-MA$targets$Cy3
cols[cols=="__"]<-"6"
cols[cols=="__"]<-"77"
cols[cols=="__"]<-"28"
cols[cols=="__"]<-"3"
cols[cols=="__"]<-"80"
cols[cols=="__"]<-"15"
cols[cols=="__"]<-"210"
heatmap.2(__, labRow=__, labCol=targets$FileName, col=greenred, Colv=TRUE, ColSideColors=cols)
You will need to fill in the blanks with your data and you can change the color numbers as you wish. I hope that is addressing part of your question.
Log in to answer this question.
Hi, don't know if you're still looking for a solution, but you might want to glance at: http://slcview.sourceforge.net/ This was a project I worked on a while back and was trying to solve exactly the problem you're posting about. I'm not working on it much any more but could help orient you if you need to make modifications to code. The primary thing that it won't do is indicator lines, unfortunately, but that could be done partially with another coded line in the heatmap matrix. Not an ideal situation though, I agree. But the other things - large heatmaps, font sizes and faces, control over scaling - it already does.