← Back to news

Hosting R/Shiny applications on Galaxy (and other frameworks)

Thanks to the outcome of a small Galaxy/Bioconductor hackathon earlier this year, it has become much easier to deploy Shiny applications as interactive tools (ITs) on usegalaxy.eu

During the EuroBioC2022 conference in Heidelberg, Germany, a group of participants gathered to discuss R/Shiny applications, with particular focus on those included in Bioconductor packages. During the discussion, it was suggested that Galaxy may be a good venue for hosting such apps, as a complement to, e.g., shinyapps.io, where the free tier may not provide enough computational and storage capacity for practical usage of all apps. Although, some R/Shiny apps already existed as Galaxy interactive tools, e.g. iSEE, it became evident during a later discussion between Galaxy and Bioconductor representatives, that more work towards setting up (generally usable) templates would be necessary to simplify the inclusion of more apps. These templates should make it easy to make any Shiny app (not only coming from the Bioconductor environment) available in Galaxy and other frameworks.

On February 29th/March 1st 2024, representatives from the Bioconductor and the Galaxy communities (Charlotte Soneson, Federico Marini, Björn Grüning, and Hans-Rudolf Hotz) met in Freiburg for a short hackathon to learn from the 'other side', to brainstorm (see picture), to start working on the templates and to implement the first tool.

brainstorming

Initial work concentrated around the ideal package. The corresponding Shiny app already offered the stopApp functionality (see: close-window) which deemed to be very useful to cleanly close the app and eventually stop the container. A proof of concept was generated and the dockerized shiny application was made available at the European Galaxy server as an interactive tool.
In order to provide a general usable recipe, two repositories were set up with easy-to-expand (i.e. exchange with your favorite Shiny application) templates:

templateDockerShinyPkg As a prerequisite, the shiny application needs to be available as a package. This repository contains a small package providing a template for a shiny application, suitable for running in a container environment.

templateDockerShiny Using this Dockerfile, the template shiny application can be dockerized.

Once the Shiny-App Docker container is created and publicly available to everyone, it can be integrated into Galaxy. The process is very similar to the integration of a normal Galaxy tool and described in the GTN. Alternatively you can drop us a message in our Galaxy Tool Chat or create a new issue to inform us about your new App. We will try to integrate it for you and deploy it on the European Galaxy server.

Ultimately, the goal will be to add such interactive tools to (existing) Galaxy workflows. More work for another Hackathon in the future.

We thank de.KCD, the FMI and the University Medical Center in Mainz for their support.