Giter VIP home page Giter VIP logo

galaxytools's Introduction

Build Status DOI

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

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: bgruening#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:

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!

galaxytools's People

Contributors

bgruening avatar qiagu avatar simonbray avatar mmiladi avatar dyusuf avatar torhou avatar sunyi000 avatar erxleben avatar gallardoalba avatar anuprulez avatar gregvonkuster avatar nsoranzo avatar bebatut avatar hassanamr avatar tdudgeon avatar bernt-matthias avatar jfallmann avatar beatrizserrano avatar zwanli avatar eggzilla avatar smithcr avatar pkohvaei avatar martin-raden avatar michauhl avatar lorrainealisha75 avatar damcorreia avatar hexylena avatar yhoogstrate avatar mblue9 avatar scottx611x avatar

Stargazers

Leonid Kostrykin avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.