View markdown source on GitHub

Galaxy Interactive Tools

Contributors

AvatarNate Coraor AvatarEstelle Ancelet AvatarAnthony Bretaudeau

Objectives

last_modification Last modification: Apr 6, 2021

History

2015

@hexylena, @bgruening, and @jmchilton create Galaxy Interactive Environments (GIEs)

GIEs use Galaxy’s visualization framework to run certain types of interactive visualizations (e.g. Jupyter Notebook)

GIEs run in a docker container on the Galaxy server or a single remote Docker server

Speaker Notes


History

2016

Support for Docker Swarm is added, allowing running a cluster for GIEs

Speaker Notes


History

2019

@blankenberg creates Galaxy Interactive Tools (GxITs)

Building on the GIE concept, but run as tools

Tools run just as any other Galaxy job (e.g. via Slurm, HTCondor)

You will sometimes see Interactive Tools referred to as Interactive Environments version 2

Speaker Notes


Tool config syntax

<tool id="interactive_tool_jupyter_notebook" tool_type="interactive" name="Interactive Jupyter Notebook" version="0.1">
    <requirements>
        <container type="docker">quay.io/bgruening/docker-jupyter-notebook:ie2</container>
    </requirements>
    <entry_points>
        <entry_point name="Jupyter Interactive Tool" requires_domain="True">
            <port>8888</port>
            <url>ipython/lab</url>
        </entry_point>
    </entry_points>
</tool>

Speaker Notes


Mapping clients to containers

Speaker Notes


Anatomy of a running Interactive Tool

Galaxy Interactive Tools Proxy Diagram

.reduce70[.footnote[The source for this figure can be found at: https://docs.google.com/presentation/d/1_4PtfM6A4mOxOlgGh6OGWvzFcxD1bdw4CydEWtm5n8k/]]

Speaker Notes


Galaxy configuration

Enable docker on a destination in job_conf.xml and assign your GxITs to that destination

.left[Set in galaxy.yml:]

interactivetools_enable: true
interactivetools_map: /srv/galaxy/var/gie-proxy-sessions.sqlite

Speaker Notes


Proxy configuration

Use the uWSGI proxy configuration that ships with Galaxy

Or the Node.js-based proxy

Speaker Notes


Security

The default docker-enabled container exposes all datasets to the tool

Normally this isn’t bad (normal tools can’t be controlled by the user)

Interactive tools are fully user controllable

Solution: Embedded Pulsar

Speaker Notes


Embedded Pulsar

Runs a Pulsar server within the Galaxy application to “stage” (i.e. copy) inputs.

Speaker Notes


Thank you!

This material is the result of a collaborative work. Thanks to the Galaxy Training Network and all the contributors! page logo This material is licensed under the Creative Commons Attribution 4.0 International License.