Galaxy Tool Development Standards and Best Practices#
Following the extensive efforts put in by developers from the Intergalactic Utilities Commission (IUC) into developing Galaxy tools over the years, we have collected the best practices below. We recommend them to the Galaxy tool developer community, both for contributing back to the IUC repository and for use in their own tool repositories.
Why you might read this#
If you need to maintain existing tools or develop new tools for Galaxy, this community-authored guide describes current best practices for building and maintaining automatically installable, reproducible Galaxy tools.
Definitions#
The key components involved in Galaxy tool development are:
Tool Shed: the Galaxy application repository. Tool Shed repositories support automated installation of tools and their associated components through the Galaxy administration interface.
Galaxy tool: an XML-defined interface and associated documentation that exposes a command-line application as a form-driven Galaxy tool. Tools should ideally be shared in a Tool Shed repository with revision-specific dependency requirements for reproducible analyses.
Data Manager: a tool that automates local maintenance of canonical reference data, such as reference genomes and application-specific indexes. Data Manager repository names should start with
data_manager_.
Checklists#
Step-by-step lists to work through when preparing a tool.
A step-by-step checklist for getting a tool ready for the Tool Shed.
A security checklist for wrappers, inputs, commands, files, credentials, and downloads.
A checklist for making tools work when jobs run remotely without a shared filesystem.
Documentation#
Reference guides for the pieces that make up a tool and its repository.
Structure, macros, command sections, tests, and help for tool wrappers.
Declaring dependencies with Conda, Bioconda, and containers.
Stable data-table identifiers, reproducible downloads, paths, testing, and migrations.
Licensing requirements, redistribution, declarations, and restricted dependencies.
How to organize files within a Tool Shed repository.
Metadata and configuration for Tool Shed repositories.
Ongoing maintenance and release practices.
Galaxy Ecosystem#
Galaxy Project – open-source platform for data-intensive research
IUC – Intergalactic Utilities Commission, curated community tools
Planemo – CLI for Galaxy tool and workflow development
Galaxy Tools for Visual Studio Code – Galaxy Language Server-powered completion, validation, linting, and more for tool wrappers
Galaxy Training Network – tutorials and training materials