Creation of the labs in the different Galaxy instances for your community

Overview
Creative Commons License: CC-BY Questions:
  • How can I create a lab for a Galaxy community?

Objectives:
  • Create labs for Galaxy communities

Time estimation: 1 hour
Level: Introductory Introductory
Supporting Materials:
Published: Oct 4, 2025
Last modification: Oct 4, 2025
License: Tutorial Content is licensed under Creative Commons Attribution 4.0 International License. The GTN Framework is licensed under MIT
purl PURL: https://gxy.io/GTN:T00561
version Revision: 1

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 is this tutorial is to create the files necessary to display the labs in each Galaxy instance.

You can also use the Galaxy Labs engine.

Agenda

In this tutorial, we will cover:

  1. Create the lab specific files (automatic)
  2. Modify the generated files to personalize your community lab
  3. Create community specific sections to personalize your community lab
  4. Include the labs in the different instances
  5. Conclusion

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//lab/ CONTRIBUTORS README.md base.yml conclusion.html intro.html usegalaxy.eu.yml usegalaxy.fr.yml usegalaxy.org.yml

communities//lab/sections_templates/ 1_data_import_and_preparation.yml 2_tools.yml 3_workflows.yml 4_tutorials.yml 5_support_and_help.yml 6_community.yml

Hands-on: Choose Your Own Tutorial

This is a "Choose Your Own Tutorial" (CYOT) section (also known as "Choose Your Own Analysis" (CYOA)), where you can select between multiple paths. Click one of the buttons below to select how you want to follow the tutorial

The files can be created in two wyas, using GitHub actions (on the GitHub interface) or using the command line to launch a script.

Hands On: Generate the files using Github Actions
  1. Go to the Galaxy Codex repo
  2. Go to the file .github/workflows/populate_labs.yaml
  3. On the right, click on the pen to “dit this file”
  4. Duplicate section called “Populate biodiversity Lab”

    For example:

    - name: Populate biodiversity Lab
      run: | 
        bash sources/bin/populate_labs.sh
      env: 
        COMMUNITY: biodiversity
    
  5. Change the name and community name for your community
  6. Commit changes the changes to a new branch that you name “new lab for "
  7. On the top panel of the Galaxy codex repository, click on “Actions”
  8. On the left panel, click on “Populate labs”
  9. In the table, click on “Run workflow” and select the branch you just created “new lab for "
  10. Click on “Run workflow”

This will create a Pull Request with the new files in the appropriate community folder. To find the Pull Request, on the top panel of the Galaxy codex repository, click on “Pull requests”.

Hands On: Generate the files using the command line
  1. Fork and clone the Galaxy Codex repo
  2. Set the COMMUNITY variable : export $COMMUNITY=<your community>
  3. Lauch sources/bin/populate_labs.sh

This will create a bunch of the new files in the appropriate community folder (communities//lab/).

Modify the generated files to personalize your community lab

Depending on how you generated the files (GitHub actions or command-line), you should be able to find your community specific lab files. If you generated the files using the GitHub Actions, this will be in the automatically generated pull request. If you generated the files using the command line, this will be in the local folder that were generated.

Files to update :

  • “communities//lab/CONTRIBUTORS" --> Add the handles of everyone who contributed in the lab
  • “communities//lab/README.md" --> Change all >your-community> by your community name
  • “communities//lab/base.yml" --> Change all >your-community> by your community name
  • “communities//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
  1. 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.
  2. Create the file in your section folder. Name it with a digit (numerical order) and a descriptive name (i.e. “7_microbial_isolate”).
  3. Copy the raw code in this newly created file.
  4. Update the code to display what you want.
  5. Save the file.
  6. Open communities/<your community>/lab/base.yml
  7. Add the previously created file in the sections (see microgalaxy base file for example)
  8. Save communities/<your community>/lab/base.yml
  9. 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.