Here, we provide a clear set of instructions for updating a GTN tutorial that uses the Galaxy interface for performing analysis. The GTN, and Galaxy, have a number of features to make it as reproducible and shareable as possible, so navigating what needs to be done for an overall update may feel daunting - but not anymore!
We encourage you to pick a tutorial to try this on, so you can use this tutorial side-by-side.
Phase 1: Find a tutorial with an outdated workflow
Hands-on: Choose Your Own Tutorial
This is a "Choose Your Own Tutorial" section, where you can select between multiple paths. Click one of the buttons below to select how you want to follow the tutorial
Do you already have a tutorial and workflow you want to update?
Hands-on: Check for an outdated workflow
Find a hands_on Hands-on tutorial in your training topic of interest (for example, Single-cell)
Select the workflow workflow from the header
Import the workflow to your favourite Galaxy server
Click on Workflow on the top menu bar of Galaxy. You will see a list of all your workflows.
Click on galaxy-uploadImport at the top-right of the screen
Provide your workflow
Option 1: Paste the URL of the workflow into the box labelled “Archived Workflow URL”
Option 2: Upload the workflow file in the box labelled “Archived Workflow File”
Click the Import workflow button
Below is a short video demonstrating how to import a workflow from GitHub using this procedure:
Video: Importing a workflow from URL
Go to the Workflow menu and select galaxy-wf-editEdit workflow
Click through the tools in the workflow and check the tool-versions to see if the tools are outdated.
If the workflow has tools that are up to date (or very close!), great! That tutorial does not need updating! Try another one!
Hands-on: Import the workflow
Navigate to your target hands_on Hands-on tutorial
Select the workflow workflow from the header
Import the workflow to your favourite Galaxy server
Click on Workflow on the top menu bar of Galaxy. You will see a list of all your workflows.
Click on galaxy-uploadImport at the top-right of the screen
Provide your workflow
Option 1: Paste the URL of the workflow into the box labelled “Archived Workflow URL”
Option 2: Upload the workflow file in the box labelled “Archived Workflow File”
Click the Import workflow button
Below is a short video demonstrating how to import a workflow from GitHub using this procedure:
Video: Importing a workflow from URL
Go to the Workflow menu and select galaxy-wf-editEdit workflow
Phase 2: Check that nobody else is working on this
Now, you will update the workflow to using the latest tool-versions tool versions.
Hands-on: Update the workflow
Select galaxy-wf-optionsWorkflow Options from the Workflow Editor
Select upgrade_workflowUpgrade workflow to automatically update the tools.
Address any issues that may arise.
Save the workflow.
Phase 4: Test & fix the workflow
It’s crucial to test the workflow, as often times the outputs will be different due to the new tool versions. It can also transpire that the newer tool versions lead to errors, either because they don’t work or because you need to change parameter settings that were previously unavailable or not required. Testing is key!
Hands-on: Test the workflow
Import the input datasets from the tutorial you are upgrading (follow the instructions on the tutorial itself for this).
Run your updated workflow on the input datasets.
Address any issues that may arise, and NOTE DOWN all changes.
Ensure the workflow meets workflow best practices using the galaxy-wf-best-practicesBest Practices button and add your name as a contributor, if not there already.
When you are editing a workflow, there are a number of additional steps you can take to ensure that it is a Best Practice workflow and will be more reusable.
Open a workflow for editing
In the workflow menu bar, you’ll find the galaxy-wf-optionsWorkflow Options dropdown menu.
Click on it and select galaxy-wf-best-practicesBest Practices from the dropdown menu.
This will take you to a new side panel, which allows you to investigate and correct any issues with your workflow.
publishing the workflow on GitHub, a public GitLab server, or another public version-controlled repository
registering the workflow with a workflow registry such as WorkflowHub or Dockstore
Add yourself as an author of the workflow.
Save the updated workflow.
Run your updated workflow on the input datasets in a fresh history.
Save this history as an answer key history & make your history publicly available in Published Histories.
Sharing your history allows others to import and access the datasets, parameters, and steps of your history.
Access the history sharing menu via the History Options dropdown (galaxy-history-options), and clicking “history-share Share or Publish”
Share via link
Open the History Optionsgalaxy-history-options menu at the top of your history panel and select “history-share Share or Publish”
galaxy-toggleMake History accessible
A Share Link will appear that you give to others
Anybody who has this link can view and copy your history
Publish your history
galaxy-toggleMake History publicly available in Published Histories
Anybody on this Galaxy server will see your history listed under the Published Histories tab opened via the galaxy-histories-activityHistories activity
Share only with another user.
Enter an email address for the user you want to share with in the Please specify user email input below Share History with Individual Users
Your history will be shared only with this user.
Finding histories others have shared with me
Click on the galaxy-histories-activityHistories activity in the activity bar on the left
Click the Shared with me tab
Here you will see all the histories others have shared with you directly
Note: If you want to make changes to your history without affecting the shared version, make a copy by going to History Optionsgalaxy-history-options icon in your history and clicking Copy this History
Phase 5: Update the tutorial
Warning: If you run out of time
You have already completed a large chunk of work (updated workflow+ answer key history) to get here, and we don’t want to lose it!
Updating the tutorial to match the updated workflow can be a separate contribution. So if you get to this point and run out of time, please:
Create an issue on the GTN Github Repository and include shareable links to your updated workflow & answer key history
Message on the GTN Matrix channel with a link to your issue and explaining which tutorial you updated.
If, however, you are able to finish the task yourself, please read on!
The tutorial.md is what you’ll be editing, however you will also at the end upload a workflow.ga file and likely some image files.
Hands-on: Update the tools in the tutorial
Update tool versions: Each hands_onHands-on step in the tutorial will likely have tool (s) with versions in the text. Update these versions / links to be equivalent to your updated workflow.
Update tool instructions: (Simultaneously) update the text to address any differences arising during the update, i.e. new parameters to set or other changes.
Update images: Wherever images are used to show tool outputs, these will need updating. Use your final answer key history for this.
Update text: Wherever results are referenced in the tutorial text, update these numbers (and possibly interpretation) to reflect the new answer key history.
Update header: In the metadata at the beginning of the tutorial, there are likely answer key history links. Update this by adding the link to your answer key history.
Update workflow file: In the tutorial folder in the training-material repository, there is a subfolder titled workflows. Download your updated workflow as a file and deposit that file there.
Check if there are any links to workflows/histories in the tutorial text, and if so, update them.
Add your name as a contributor to the tutorial as an editor in the metadata.
You may find this tutorial to be a helpful reference in the Markdown content of a GTN tutorial: Creating content in Markdown
Phase 6: Make a pull request and (optional) update workflow testing
At this point, you’re welcome to make your Pull Request for the updated tutorial. However, it is likely to fail linting if the workflow testing is not also updated. This can be tricky, so we’d rather you make the Pull Request with all the work you did than let this stop you.
Did you use this material as an instructor? Feel free to give us feedback on how it went.
Did you use this material as a learner or student? Click the form below to leave feedback.
Hiltemann, Saskia, Rasche, Helena et al., 2023 Galaxy Training: A Powerful Framework for Teaching! PLOS Computational Biology 10.1371/journal.pcbi.1010752
Batut et al., 2018 Community-Driven Data Analysis Training for Biology Cell Systems 10.1016/j.cels.2018.05.012
@misc{contributing-updating_tutorial,
author = "Wendi Bacon",
title = "Updating tool versions in a tutorial (Galaxy Training Materials)",
year = "",
month = "",
day = "",
url = "\url{https://training.galaxyproject.org/training-material/topics/contributing/tutorials/updating_tutorial/tutorial.html}",
note = "[Online; accessed TODAY]"
}
@article{Hiltemann_2023,
doi = {10.1371/journal.pcbi.1010752},
url = {https://doi.org/10.1371%2Fjournal.pcbi.1010752},
year = 2023,
month = {jan},
publisher = {Public Library of Science ({PLoS})},
volume = {19},
number = {1},
pages = {e1010752},
author = {Saskia Hiltemann and Helena Rasche and Simon Gladman and Hans-Rudolf Hotz and Delphine Larivi{\`{e}}re and Daniel Blankenberg and Pratik D. Jagtap and Thomas Wollmann and Anthony Bretaudeau and Nadia Gou{\'{e}} and Timothy J. Griffin and Coline Royaux and Yvan Le Bras and Subina Mehta and Anna Syme and Frederik Coppens and Bert Droesbeke and Nicola Soranzo and Wendi Bacon and Fotis Psomopoulos and Crist{\'{o}}bal Gallardo-Alba and John Davis and Melanie Christine Föll and Matthias Fahrner and Maria A. Doyle and Beatriz Serrano-Solano and Anne Claire Fouilloux and Peter van Heusden and Wolfgang Maier and Dave Clements and Florian Heyl and Björn Grüning and B{\'{e}}r{\'{e}}nice Batut and},
editor = {Francis Ouellette},
title = {Galaxy Training: A powerful framework for teaching!},
journal = {PLoS Comput Biol}
}
Congratulations on successfully completing this tutorial!
Developing GTN training material
This tutorial is part of a series to develop GTN training material, feel free to also look at: