View markdown source on GitHub

Generic plugins

Contributors

AvatarSaskia Hiltemann AvatarYouri Hoogstrate

Questions

Objectives

Requirements

last_modification Last modification: Jul 26, 2021

Why visualizations?

Animated gif cycling through Anscombe's quartet and various variations that all have the same mean, SD, and correlation but look vastly different to someone's eyes.

X mean: 54.26, X SD: 16.76
Y mean: 47.83, Y SD: 26.93
Corr: -0.06

Speaker Notes Anscombes quartet, all these datasets have same mean, standard deviation and correlation, yet when visualizing them it is revealed they have vastly different structures.


Why visualizations?

Bam files - textual

Screenshot of a terminal showing a wall of text with lines from a BAM file


Why visualizations?

Bam files - visualized

Screenshot of IGV with presumably the same bam file from before showing a large gap in the alignment, now clear due to a visualisation.


Types of visualizations in Galaxy


Which should I use?

Flowchart. Only available on an external website? If yes use a display application. Does it need to be served (e.g. python), if yes use an interactive tool. Is it computationally intensive, then it needs to be a regular tool. Is it written in javascript? Then it shold be a generic plugin. If it passes all these tests it can be a charts plugin.


Plugins

Screenshot of the history in galaxy with viz dropdown clicked. On one dataset the options are charts and scatterplots for a tabular dataset. On the other is 'visualise in trackster' for a BAM dataset


.enlarge120[

Plugins: Charts

] .pull-left[ Charts selection interface showing a number of chart types that can be selected ]

.pull-right[ Montage of several charts, bar, dot, stacked bar/line, box and whisker, and doughnut charts. ]


Plugins: Charts

A screenshot button is clicked providing optinos to save as PNG, SVG, or PDF

Plugins: Generic

                myviz
                ├── config
                │   └── myviz.xml
                ├── static
                │   ├── css
                │   ├── img
                │   └── js
                └── templates
                    └── myviz.mako

Plugins: XML file

$ touch $GALAXY_ROOT/config/plugins/$PLUGIN_NAME/config/$PLUGIN_NAME.xml

Screenshot of code with boxes highlighting Draw RNA.js and the datatypes that it can accept. A template drawrnajs.mako is also highlighted


Plugins: Mako file

Screenshot of more code showing a mako template being rendered


Plugins: Mako file

Screenshot of a URL bar reading https://bioinf-galaxian.erasmusmc.nl/galaxy/


Plugins: Mako syntax

A mako template with a python codeblock section highlighting hdadict, root, app_root, file_url


Plugins: Javascript and jQuery

<script type="text/javascript" src="${root}/static/scripts/libs/jquery/jquery.js" />

Plugins: Generic template

Another code screenshot showing a generic template that can be used for viz.


Plugins: Static files

Code screenshot showing a cool_vis_plugin.js being loaded Screenshot of its location in the static directory.


Plugins: Summary


Plugins: More tips and tricks


Key Points

Thank you!

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