Share interactive heatmaps to collaborators

Zuguang Gu ( z.gu@dkfz.de )

2024-05-01

For JavaScript-based interactive heatmaps, all necessary files (html, js and css files) can be saved to disk and interactive heatmaps can be opened in another computer without R being installed. But InteractiveComplexHeatmap is different. The interactivity of InteractiveComplexHeatmap is implemented with shiny, ComplexHeatmap and other related R packages, which means, R must be installed on computers where interactive heatmaps are going to be opened. Nevertheless, there are the following two ways that can used to share interactive heatmaps generated by InteractiveComplexHeatmap.

The save argument

In htShiny(), there is a save argument which can be set to a path of a folder where interactive heatmap files are stored.

# E.g. the folder is "test_ht"
htShiny(ht, save = "test_ht")

Then in the folder test_ht, there are the following files generated:

guz@B069-mb04:~/test_ht$ ls -l
total 40
-rw-r--r--  1 guz  staff   1.1K Oct 18 15:19 htShiny.R
-rw-r--r--  1 guz  staff   5.9K Oct 18 15:19 htShiny.RData
-rw-r--r--  1 guz  staff    18B Oct 18 15:19 htShiny.bat
-rw-r--r--@ 1 guz  staff    18B Oct 18 15:19 htShiny.sh

htShiny.R contains R code that generates the interactive heatmap. htShiny.RData contains all R objects needed for heatmap and it will be loaded in htShiny.R. The other two files htShiny.sh and htShiny.bat are basically identical and they can be run in the terminal under Linux/MacOS or Windows.

The four files can be sent to collaborators and they can run the following commands to open the interactive heatmap:

cd ~/test_ht
sh htShiny.sh
# or
Rscript htShiny.R

Under Windows, they can simply double click htShiny.bat.

Executing htShiny.sh or htShiny.bat prints a message where collaborators can find the link and paste it to browser to open the interactive heatmap.

guz@B069-mb04:~/test_ht$ sh htShiny.sh
If the shiny app is not automatically opened in the browser, you can manually
copy the following link and paste it to the browser.
Listening on http://127.0.0.1:4132

Note, on the collaborator’s side, R must be installed (however, they don’t need to directly interact with R). If the InteractiveComplexHeatmap package is not yet installed there, htShiny.R automatically installs it for them.

Use Shiny Server

It would be much easier if there is already a Shiny Server available. Users simply put all code that generates interactive heatmaps into a script named app.R. Under RStudio, they execute the script and click “Publish” in the Shiny app window.

Or under command-line:

rsconnect::setAccountInfo(...)
rsconnect::deployApp(...)

Check https://shiny.rstudio.com/deploy/ to find out how to publish Shiny apps to Shiny Server.

Please note, in the R session which publishes the Shiny app, you must execute the command setRepositories(ind = 1:4) so that on the Shiny Server side, it can successfully install InteractiveComplexHeatmap package.

`