Creation of the labs in the different Galaxy instances for your community
| Author(s) |
|
| Reviewers |
|
OverviewQuestions:
Objectives:
How can I create a lab for a Galaxy community?
Create labs for Galaxy communities
Time estimation: 1 hourLevel: Introductory IntroductorySupporting Materials:
Published: Oct 4, 2025Last modification: Nov 4, 2025License: Tutorial Content is licensed under Creative Commons Attribution 4.0 International License. The GTN Framework is licensed under MITpurl PURL: https://gxy.io/GTN:T00561version Revision: 3
The Community lab, a centralised webpage that enables communities to rapidly aggregate, curate, integrate, display, and launch relevant tools, workflows, and training on different Galaxy servers. This user-friendly interface, built on the Galaxy framework, provides community members with data analysis capacity without requiring programming expertise. Users can run individual tools or create complex workflows, with full provenance tracking to ensure reproducibility, designed specifically for the community research (Nasr et al., 2024). For example, the microgalaxy lab (Europe).
The aim of this tutorial is to create the files necessary to display the labs in each Galaxy instance.
You can also use the Galaxy Labs engine.
AgendaIn this tutorial, we will cover:
Create the lab specific files (automatic)
The labs are composed of various files, some that are specific to your community and some that are common between all the labs.
To automatically create the necessary files from a set of templates, a script was generated (“sources/bin/populate_labs.sh)
This script will create the following structure and files:
communities/
communities/
The files are created and updated automatically using GitHub actions, you just need to add a bit of code to point to your community folder.
Hands On: Generate the files using Github Actions
- Go to the Galaxy Codex repo
- Go to the file
.github/workflows/fetch_filter_resources.yaml- On the right, click on the pen to “Edit this file”
- Scroll down
Duplicate the section called “Populate
Lab" - name: Populate <community-name> Lab run: | bash sources/bin/populate_labs.sh env: COMMUNITY: <community-name>- Replace
<community-name>by the name of your community- Commit changes the changes to a new branch that you name “new lab for [Community-name]”
After that, your commit will be reviewed (and approved) by admins.
On the following Sunday (or upon request), this action will be launched and will create the new files in the appropriate community folder (communities/<your community>/lab/).
Modify the generated files to personalize your community lab
Once the files are created, you should update them as some contain template text that are not community specific.
Files to update :
communities/<your community>/lab/CONTRIBUTORS–> Add the handles of everyone who contributed in the labcommunities/<your community>/lab/README.md–> Change all<your-community>by your community namecommunities/<your community>/lab/base.yml–> Change all<your-community>by your community namecommunities/<your community>/lab/intro.html–> Include a description of your community.
Files that do not require a manual update :
- “communities/
/lab/conclusion.html" --> No change required. - “communities/
/lab/sections/*" --> No change required.
The files in the section folders contain the code for each table visible in the lab. You can check different labs for inspiration, such as the microgalaxy lab.
Create community specific sections to personalize your community lab
If you want additional sections, for example, the “Microbial isolates” and “Microbiome” sections in the microgalaxy lab.
Hands On: Add community specific sections
- Find an appropriate template. You can use other files in your section folder, or browse other labs, such as microgalaxy lab code, and copy the raw code as a template.
- Create the file in your section folder. Name it with a digit (numerical order) and a descriptive name (i.e. “7_microbial_isolate”).
- Copy the raw code in this newly created file.
- Update the code to display what you want.
- Save the file.
- Open
communities/<your community>/lab/base.yml- Add the previously created file in the sections (see microgalaxy base file for example)
- Save
communities/<your community>/lab/base.yml- Commit the changes, create the pull request (if not done previously)
The Pull Request will be reviewed. Make sure to respond to any feedback.
Include the labs in the different instances
For the lab to be accessible from the different instances, you need to add files in each instance independently.
For the French instance (https://usegalaxy.fr), all the steps are described in Issue 297. You can use the merge request done for the biodiversity lab as a reference.
For the European instance (https://usegalaxy.eu), this tutorial will be updated later. You can use the pull request done for the biodiversity lab as a reference.
For the American instance (https://usegalaxy.org), this tutorial will be updated later. You can use the pull request done for the biodiversity lab as a reference.
For the Australian instance (https://usegalaxy.org.au), this tutorial will be updated later. You can use the pull request done for the biodiversity lab as a reference.
Conclusion
You now have all the files necessary to display your lab in several instances and they should soon be available to your users.