galaxytools
Galaxy Tool wrappers
This repository contains a variety of different tools that can be installed and used inside the Galaxy. Many tools are already included in the Galaxy Tool Shed, others needs some more love.
Wrapping tools for use in Galaxy is easy! If you want to start please see the Galaxy wiki or get in contact. If you want to contribute to this repository please see our contributing guidelines and our list of issues.
Highlights
- ChemicalToolBox includes a lot of cheminformatic tools into Galaxy
- RNA tools are integrated as part of the de.NBI RNA Bioinformatics Center
- Genome Annotation tools
Other repositories with high quality tools
- IUC repo
- DevTeam repo
- Peter Cock’s blast repo
- Peter Cock’s pico_galaxy repo
- Biopython repo
- Galaxy Proteomics repo
Running the tests
First, install Planemo. Run the commands at the project root directory.
python3 -m venv planemo
. planemo/bin/activate
pip install planemo
To run the tests for a specific tool (e.g., pca) in a specific folder (e.g. sklearn)
planemo test --biocontainers tools/sklearn/pca.xml
To run the tests for all tools in a specific folder (e.g. sklearn)
planemo test --biocontainers tools/sklearn
To run the tests for all tools in all folders
planemo test --biocontainers tools
3 steps to get your tool into Galaxy – A real-world example
In this blog post, we will explain how you can get your software tool into a Galaxy server and with this,
exposed to thousands of researchers. For this purpose, we will follow David’s steps to add the very generic
UNIX diff
tool to Galaxy.
The first step to getting your software tool deployed into a Galaxy instance is to develop a Conda package for it.
Conda is the de facto standard in many different communities to deploy software easily and reproducibly.
The European Galaxy team is heavily involved in the conda-forge and
Bioconda projects and Galaxy does have built-in support for
both channels. If your software tool is from the Biomedical domain, we recommend the Bioconda channel. Otherwise,
create a Conda package for conda-forge. Here, David has created the following
Pull Request (PR) against the conda-forge repo:
Step 1 – the Conda package: conda-forge/staged-recipes#11170
After merging, a diffutils repository is
created and the Conda package is available usually within 30 min.
The second step is to create the Galaxy wrapper. A Galaxy wrapper is a formal description of all inputs,
outputs and parameters of your tool, so that Galaxy can generate a GUI out of it and later a command to send
to the cluster. You will find a tutorial on how to create such a wrapper in the
planemo documentation. The community has created a
few best-practices for Galaxy wrapper development
and we recommend to follow them as this will ensure your tools are high-quality and can be deployed at
the big public Galaxy servers. David has created the following PR was created against a public repository that
collects a variety of different tools.
Step 2 – the Galaxy wrapper: #966
We recommend the submission of your tool to one of the bigger community projects like the ones listed below.
This has the advantage that you will most likely get a review and can improve your tool, but also get some
infrastructure for automated testing and ToolShed deployment for free.
Other repositories with Galaxy tools:
- IUC repo
- Björn Grüning’s repo
-
Peter Cock’s repos:
- blast repo
- pico repo
- mira repo
- Metabolomics
- Proteomics
- Colibread Galaxy Tools
- Greg von Kuster’s repo
- EI repo
- AAFC-MBB Canada repo
- Mark Einon’s repo
- National Microbiology Laboratory’s repo
Once David’s Galaxy wrapper PR passed all tests and was merged, it was automatically pushed to the
Galaxy ToolShed, an app store for Galaxy.
From there, every Galaxy instance can install tools (apps).
Furthermore, a bot is automatically creating (Bio)Containers (Docker, rkt and Singularity) by
tracking all Galaxy tools to ensure that a container exists for each tool. You can see the bot in action in the following PR:
Automatic containers: BioContainers/multi-package-containers#1236
Last but not least, David wanted to get the Galaxy diff
tool into the European Galaxy server.
For that, a new PR was created against the tool repository from usegalaxy-eu.
Step 3 – request for installation: usegalaxy-eu/usegalaxy-eu-tools#318
Once this is merged, another bot installs all the new tools but also tool updates automatically every Saturday.
As a result, the installed diff
tool can be used on the European Galaxy server following this link:
https://usegalaxy.eu/root?tool_id=diff
That’s it – 3 steps to get your tool exposed to thousands of researchers!