Skip to content

galaxyproject/usegalaxy-tools

Repository files navigation

usegalaxy.* tools

This repository maintains the toolset for the https://usegalaxy.org Galaxy instance. Using this anyone can request installation of a new tool. Additionally this repository can be used to outfit your own Galaxy with the same toolset.

Setup

  • yaml files contain the names of Tool Shed tools/repositories to install and are manually curated
  • yaml.lock files are automatically generated and contain the list of revisions (read "tool versions") to include
  • All tools are automatically updated with the latest version periodically
  • Use the provided requirements.txt to install dependencies needed for the make targets
  • The terms "tools" and "repositories" are used interchangeably in this readme. There is a difference, but it is not needed to be understood for using these scripts.

Requesting a new tool

Anyone can request tool installation on usegalaxy.org or test.galaxyproject.org. In the commands below fill the {server_name} as appropriate (usegalaxy.org, test.galaxyproject.org)

  1. Fork and clone usegalaxy-tools
  2. Create/activate a virtualenv and install Python requirements with pip install -r requirements.txt
  3. If this is a new a section without an existing yml file create a new one:
    1. Determine the desired section label
    2. Normalize the section label to an ID/filename with this process
    3. Create {server_name}/<section_id>.yml setting tool_panel_section_label from the section label obtained in previous step (see existing yml files for the exact syntax)
    4. Continue with the steps below
  4. Add the entry for the new tool to the section yml (only the yml, not the yml.lock) example
  5. You either want the latest or a specific version
    • For latest version (most common case):
      1. Run $ make TOOLSET={server_name} fix (this will fill the yml.lock )
    • For a specific version (rare case):
      1. Run $ make TOOLSET={server_name} fix-no-deps
      2. Edit the .yaml.lock to correct the version number.
  6. Then $ git add <file> only the updates that you care about.
  7. Run make TOOLSET={server_name} lint
    • Fix any issue that may arise and git add again
  8. Commit {server_name}/<repo>.yaml{.lock}
  9. Create a PR against the master branch of usegalaxy-tools
    • Use PR labels as appropriate
    • To aid PR mergers, you can include information on tools in the repo's use of $GALAXY_SLOTS, or even PR any needed update(s) to Main's job_conf.xml as explained in the "Determine tool requirements" section once the test installation (via Travis) succeeds (see details below)
  10. Once the PR is merged and the tool appears on usegalaxy.org or test.galaxyproject.org, test to ensure the tool works.

Loading tools in your Galaxy

Add the following dependency resolver:

<conda prefix="/cvmfs/sandbox.galaxyproject.org/dependencies/conda" auto_install="False" auto_init="False" />

preferably above your existing conda dependency resolver (you will need to set conda_auto_install: false in your galaxy.yml).

And add the new shed tool conf:

tool_config_file: ...,/cvmfs/sandbox.galaxyproject.org/config/shed_tool_conf.xml

In your destination you should set:

<param id="singularity_enabled">true</param>
<param id="singularity_volumes">$defaults</param>