This repository contains the de.STAIR Galaxy plugin, which is incorporated in
the Galaxy workflow generator.
The plugin is based on the Galaxy webhooks,
which extend the Galaxy interface with buttons and pop-up dialogues.
The plugin provides:
- A new button placed on the Galaxy header
- New pop-up dialogues to
- ask users which analysis they want to carry out
- present alternative Galaxy tools to complete each task in the desired analysis
The button placed in the Galaxy header is used to start the interactive guide, which is implemented by means of a series of pop-ups. Each pop-up presents a list of alternative Galaxy tools, which can be adopted to complete the current task in the selected analysis. These are the atoms: interactive tours that illustrate one or more Galaxy tools. Figure a below shows how a plugin pop-up presents the set of alternative atoms to carry out the Quality control and data preprocessing.
By selecting an atom, a Galaxy webhook triggers the corresponding interactive
tour, which the user navigates to execute each of its underlying Galaxy tools.
Before selecting one, users can compare each alternative atom by reading their
description page. These help pages explain the underlying Galaxy tool (or
series thereof), and provide literature-based and empirical rankings.
Figure b above shows the pop-up and description page of the selected atom.
The plugin defines new interactions to build Galaxy workflows:
- Galaxy interface presents a pop-up to ask the user which analysis to carry out
- User selects the type of analysis
- Galaxy interface presents alternative atoms to carry out the 1st task of the selected analysis
- Galaxy interface triggers the selected atom
- User navigates the atom's interactive tour until the end, therefore completing the first task of the selected analysis
- Repeat from 3, this time for 2nd task of the selected analysis
The loop ends when the last task of the Galaxy workflow is completed.
The plugin can be tested, modified, and further extended. To do so, you will
need to install the atoms as well.
The following sections will help you setting up the Galaxy framework to
contribute to the plugin.
Run the Galaxy Docker container by creating a bind mount
$ docker run -d -p 8080:80 --name destair -v /absolute/path/to/local/directory/:/export/ quay.io/destair/galaxy-workflow-generator:latest
for more parameters and further help, consult these instructions.
Once the container is ready, you will be able to modify our de.STAIR webhook backend python script:
/absolute/path/to/local/directory/export/galaxy-central/config/plugins/webhooks/switchtour
You might also modify the client-side javascripts found in the src
directory and compile via npm
/absolute/path/to/local/directory/export/galaxy-central/config/plugins/webhooks/switchtour/src
npm install
npm run build
Now restart the running Galaxy instance and access it via a webbrowser from the following address localhost:8080
.
$ docker exec destair supervisorctl restart galaxy:
Create a directory for the Galaxy repository
$ export GALAXY_ROOT=/path/to/galaxy
Clone the Galaxy repository into the directory
$ git clone https://github.com/galaxyproject/galaxy.git $GALAXY_ROOT
Enter in the Galaxy repository, and checkout version 19.01
$ cd $GALAXY_ROOT
$ git checkout v19.01
Create a directory for the de.STAIR Galaxy atoms repository
$ export DESTAIR_GALAXY_ATOMS=/path/to/destair-galaxy-atoms
Clone the de.STAIR Galaxy atoms repository
$ git clone https://github.com/destairdenbi/galaxy-atoms.git $DESTAIR_GALAXY_ATOMS
Set up the de.STAIR atoms into the cloned Galaxy repository
$ $DESTAIR_GALAXY_ATOMS/setup.sh
Create a directory for the de.STAIR Galaxy plugin repository
$ export DESTAIR_GALAXY_PLUGIN=/path/to/destair-galaxy-plugin
Clone the de.STAIR Galaxy plugin repository and modify our de.STAIR switchtour client site javascript and backend python script according to your needs
$ git clone https://github.com/destairdenbi/galaxy-webhooks.git $DESTAIR_GALAXY_PLUGIN
Set up the de.STAIR plugin into the cloned Galaxy repository
$ $DESTAIR_GALAXY_PLUGIN/setup.sh
Run the Galaxy launch script to verify the Galaxy framework setup and the inclusion of the new tools
$ $GALAX_ROOT/run.sh