--- title: "Share interactive heatmaps to collaborators" author: "Zuguang Gu ( z.gu@dkfz.de )" date: "`r Sys.Date()`" output: rmarkdown::html_vignette: width: 8 fig_width: 5 vignette: > %\VignetteIndexEntry{8. Share interactive heatmaps to collaborators} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- 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. ```{r, eval = FALSE} # 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](https://www.rstudio.com/products/shiny/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: ```r 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. `