Hub page for Galaxy development
This page collects resources that are helpful to development of various aspects of the Galaxy software. It is aimed to provide help to all of the numerous Galaxy's contributors. We salute you!
If your interest lies in the development of tools for Galaxy please see the Adding custom tools tutorial.
Source code and documentation
Galaxy codebase has moved from Bitbucket to Github.
Details on this transition can be found on the Source Code page.
Source Code - Where is the source code and how to contribute.
Source Documentation - Where you can find it; how you can update it.
Contributing - Describes how to contribute to the core galaxy project.
API source code documentation - Documentation auto-generated for the API source code. The API source code itself can be found here and is by its nature the most up-to-date and complete source of information.
Galaxy API - Galaxy offers programming interface that can be used to automate usage of Galaxy. (Warning: information is incomplete and somewhat dated.)
API description - Galaxy offers API that can be used to automate admin usage of Galaxy. (Warning: information is incomplete and somewhat dated.)
- Example open source projects leveraging the Galaxy API.
BioBlend: automating pipeline analyses within Galaxy and CloudMan. Sloggett, et. al.
BioBlend.objects: metacomputing with Galaxy. Leo, et. al.
Best Practices - Best practices used in Galaxy software development.
CSS Practices - How we generate and manage stylesheets.
Graphics Documentation - What graphical elements we use and their meaning.
Visualization tutorial - How to write a custom visualization for Galaxy.
Tool Development Resources
A somewhat complete description of tags used for in tool XML files.
Tool Development Training Materials - from Hsiao lab, BC Public Health Microbiology & Reference Laboratory, BC Centre for Disease Control.
A tutorial on writing of functional tests
What to do if Galaxy incorrectly reports that your tool failed to execute
Best Practices for Tool Development
A discussion on outputing multiple individual datasets
Managing tools from a Galaxy administrator perspective.
- Tool conversion and generation efforts:
A tool interface generator is maintained at http://cli-mate.lumc.nl.
gxargparse - a drop in replacement of Python's argparse to generate Galaxy tools by Eric Rasche.
A discussion on converting common workflow language tool descriptions into Galaxy tools - with prototype by Peter Amstutz.
If you need to run an arbitrary working script (Python, Perl, R or Bash currently supported), and optionally turn it into a proper Galaxy tool, the Tool Factory can be installed in a local Galaxy from the Main Tool Shed to instantly wrap arbitrary scripts. It will turn these into Tool Shed archives ready to upload to a new repository from where they can be automagically installed into any Galaxy. **Only runs for administrative users** - exposes insecure unrestricted scripting, so only install in private development clones please. Generated tools are as secure as any other Galaxy tools.
Popular tool repositories on github to contribute to and serve as best practice examples:
GalaxyP Tools - A collection of tools for proteomics maintained by the GalaxyP team.
Architecture - How is the app built.
Data Model - Underlying data model.
Application Logging - What and where does Galaxy log.