What's your favorite heatmap visualization tool for large datasets?

visualization

#1

I’ve tried heatmap.2, d3heatmap, heatmaply, and pheatmap. Anyone out there use a different package to visualize matrices that are about 6000X400 in size?


#2

Going from first principles, heat mapping a matrix you have:

  1. an implicit vertical coordinate (row) that is equally spaced
  2. an implicit horizontal coordinate (column) that is equally spaced
  3. a value that is a range which is to be represented by colours

If you then think of a heatmap as a scatterplot with rectangular points equal to the size of the spacing, you could take that data and do whatever you like to it in the way of plots- things like thresholding the colour values, and merging coordinate points- through general data munging principles.

If you wanted to explore this, rolling your own visualisation, I would suggest:

  1. First transform the data into a long format row, column, value arrangement
  2. Explicitly save the visualisation as a png or something when creating it to avoid the onscreen slowdown of making a visualisation with a lot of points. This also has the advantage you can size the visualisation to fit the level of detail you want.

#3

As an afterthought, this approach means that if you want something like an “Emojimap” rather than colours, it would be entirely doable.


#4

Hi Kieran,

Have you decided which package is best for heatmapping very large matrices? (I'm talking about a square matrix with thousands of rows and thousands of columns)

I've been using heatmaply but it can't handle that size as far as I've found.

Thanks.


#5

The Next-Generation Clustered Heat Maps (NG-CHM) system was developed for creating and exploring large heat maps (thousands of rows and/or columns). It was originally developed for bioinformatics data, but can be applied to any large matrix data. You can explore a compendium of large heat maps for TCGA data at http://tcga.ngchm.net. You can build your own NG-CHMs using Galaxy or R/RStudio. Here is a YouTube tutorial showing how to create an NG-CHM in RStudio. More information about NG-CHMs is available at their website.