Galaxy Ecosystem and Projects

Learning Questions

  • What projects make up the Galaxy ecosystem?

  • How do different Galaxy projects interact?

  • What tools are available for developers vs administrators?

Learning Objectives

  • Identify the major projects in the Galaxy ecosystem

  • Understand the difference between user-facing and developer tools

  • Learn about Galaxy communication channels

Chat: galaxyproject Lobby (via Element)

GitHub: github.com/galaxyproject

Bluesky: bsky.app/profile/galaxyproject.bsky.social

Mastodon: @galaxyproject

LinkedIn: Galaxy Project

The /galaxyproject projects

The architecture of the ecosystem.

Matrix Community with Element

galaxyproject Matrix Element community

Access via Element client or any Matrix client at https://matrix.to/#/#galaxyproject_Lobby:gitter.im

More links we’ll mention as we go through the slides:

Working group chats linked at https://galaxyproject.org/community/wg/.

User-Facing Applications

galaxyproject/galaxy

The main Galaxy application.

Web interface, database model, job running, etc…

Also includes other web applications including the ToolShed.

Resources: README | Issues

galaxyproject/training-material

logo

Galaxy training material for scientists, developers, and admins. Powers *https://training.galaxyproject.org/*.

Resources: README | Issues | License: MIT

galaxyproject/hub

The Galaxy Hub is the community and documentation hub for the Galaxy Project. It is maintained by the community through this GitHub repository. It is a static website built using the metalsmith static site generator.

Powers *https://galaxyproject.org/*.

Resources: README | Issues

usegalaxy-eu/galaxy-social

Content distribution system for publishing to multiple social media platforms. Post once, share across Mastodon, Bluesky, Matrix, Slack, and LinkedIn with automatic formatting.

Resources: README | Issues | License: CC0-1.0

galaxyproject/galaxy_codex

Community resource repository for Galaxy users and contributors. Provides access to the Galaxy Community Catalog featuring tools, training materials, and workflows. Galaxy Labs for creating customized community subdomain pages.

Resources: README | Issues | License: MIT

galaxyproject/bioblend

Official Python client for the Galaxy, ToolShed, and CloudMan APIs.

Best documented path to scripting the Galaxy API.

Resources: README | Issues | License: MIT

A standalone client library for the Galaxy API, built using the type definitions from the main Galaxy client.

https://www.npmjs.com/package/@galaxyproject/galaxy-api-client

Galaxy API bindings for other languages, less actively maintained.

Resources:

bgruening/docker-galaxy-stable

High quality Docker containers for stable Galaxy environments.

Releases corresponding to each new version of Galaxy.

Many flavors available.

Resources: README | Issues | License: MIT

Docker

For Plugin Developers

galaxyproject/tools-iuc

Galaxy tools maintained by the IUC (“Intergalactic Utilities Commission”).

A variety of tools, generally of high quality including many of the core tools for Galaxy main.

Demonstrates current tool development best practices - development on github and then deployed to test/main ToolSheds

galaxyproject/tools-devteam

Many older tools appearing on usegalaxy.org.

Resources:

Tools Aside - More Repositories

Other repositories with high quality tools:

galaxyproject/iwc

Intergalactic Workflow Commission. Hosting workflows and defining best practices for publishing workflows.

https://matrix.to/#/#galaxyproject_iwc:gitter.im

Resources: README | Issues

galaxyproject/planemo

Command-line utilities to assist in the development of Galaxy tools and workflows. Linting, testing, deploying to ToolSheds…

The best practice approach for Galaxy tool development!

galaxyproject/planemo-machine

Builds Galaxy environments for Galaxy tool development including Docker container, virtual machines, Google compute images

Resources:

galaxyproject/galaxy-language-server

Galaxy Language Server

Language server implementation for Galaxy tools. Visual Studio Code extension for tool development.

Test execution, code completion, best practices, documentation tooltips, etc..

Resources: README | Issues | License: Apache 2.0

galaxyproject/starforge

StarForge logo

Build Galaxy framework dependencies as Python wheels when needed.

Resources: README | Issues | License: MIT

galaxyproject/cargo-port

Cargo Port Logo

Provides stable URLs and caching for application links, etc.. An important layer for reproducibility but largely transparent.

Resources: README | Issues | License: MIT

For Deployers and Admins

galaxyproject/{ansible-*, *-playbook}
usegalaxy-eu/{ansible-*, *-playbook}

Ansible components to automate almost every aspect of Galaxy installation and maintenance.

Ansible is an advanced configuration management system

These playbooks are used to maintain Galaxy main, cloud and Docker images, virtual machines, …

galaxyproject/gravity

A process manager (supervisor) and management tools for Galaxy servers.

galaxyctl which is used to manage the starting, stopping, and logging of Galaxy’s various processes.

galaxy which can be used to run a Galaxy server in the foreground.

Resources: README | Issues | License: MIT

galaxyproject/galaxy-helm

Kubernetes helm chart for deploying Galaxy. Leveraged by cloudlaunch and CloudMan but usable standalone.

Resources: README | Issues | License: MIT

galaxyproject/pulsar

Pulsar Logo

Distributed job execution engine for Galaxy.

Stages data, scripts, configuration.

Can run jobs on Windows machines.

Can act as its own queuing system or access an existing cluster DRM.

Resources: README | Issues | License: Apache 2.0

galaxyproject/ephemeris

Library and CLI for managing Galaxy plugins - tools, index data, and workflows.

Layer on top of BioBlend building useful utilities for working with the Galaxy API from an administrator perspective.

Resources: README | Issues

galaxyproject/gxadmin

Handy command-line utility for Galaxy administrators.

Resources: README | Issues | License: GPL-3.0

ephemeris vs gxadmin

Ephemeris generally talks to the Galaxy API and is a pure Python project, gxadmin talks directly to the Galaxy database and relevant files.

Total Perspective Vortex

galaxyproject/total-perspective-vortex **

TPV Logo

TotalPerspectiveVortex (TPV) provides an installable set of dynamic rules for the Galaxy application that can route entities (Tools, Users, Roles) to appropriate job destinations based on a configurable yaml file.

Resources: README | Issues | License: MIT

**usegalaxy-eu/tiaas2 **

TIAAS Logo

Django-based infrastructure for creating pools of users, etc.. for training events and connecting them to Galaxy.

Resources: README | Issues | License: AGPL-3.0

Some (out of many) friends of the project

Bioconda

Biocontainers

Check out dev training materials “Tool Dependencies and Conda” and “Tool Dependencies and Containers” for more context.

Putting it all together

Large graphic showing different domains and where different portions of the Galaxy community can be found from Biology, Dev, Packaging, Deployment, Documentation, Training, and Support.

galaxyproject/galaxy

The rest of the slides will focus on the core repository.

Key Takeaways

  • Multiple user-facing applications (Galaxy, Training Material)

  • Developer libraries for plugin developers

  • Admin tools for deployment

  • Active community on Matrix (via Element client)