A tool or tool suite archive is a tar-format file (bzipped or gzipped tar are valid) containing all the files necessary to load the tool(s) into a Galaxy instance.
A tools suite must include a file named suite_config.xml
which provides information about the id, name, version and description of the tool suite, as well as the id, name, version and description of each tool in the suite. Here is an example suite_config.xml
file.
<suite id="lastz_toolsuite" name="Suite of Lastz tools" version="1.0.0"> <description>This suite contains all of my Lastz tools for Galaxy</description> <tool id="lastz_wrapper_2" name="Lastz" version="1.1.0"> <description> map short reads against reference sequence</description> </tool> <tool id="lastz_paired_reads_wrapper" name="Lastz paired reads" version="1.0.0"> <description> map short paired reads against reference sequence</description> </tool> </suite>
New versions of the suite can be uploaded, replacing an older version of the suite, but the version attribute of the
The id, name and version attributes of each suite_config.xml
file must exactly match the same attributes in each associated tool config in the archive or you will not be allowed to upload the archive.
In addition to the suite_config.xml
file, the archive must include all tool config files, executables, functional test data (if your tool config includes functional tests) and other files needed for each of the tools in your suite to function within Galaxy. See the information about single tool archives below for additional hints to enable ease-of-use when others download your suite of tools.
For example, to package the above Lastz suite of tools:
user@host:~% tar jcvf ~/Desktop/galaxy_lastz_toolsuite.tar.bz2 lastzsuite lastzsuite/ lastzsuite/README lastzsuite/suite_config.xml lastzsuite/lastz_paired_reads_wrapper.py lastzsuite/lastz_paired_reads_wrapper.xml lastzsuite/lastz_wrapper.py lastzsuite/lastz_wrapper.xml lastzsuite/lastz-distrib-1.02.00/ lastzsuite/lastz-distrib-1.02.00/src/ lastzsuite/lastz-distrib-1.02.00/src/Makefile lastzsuite/lastz-distrib-1.02.00/src/version.mak lastzsuite/lastz-distrib-1.02.00/src/lastz.c lastzsuite/lastz-distrib-1.02.00/src/lastz.h ...~/Desktop/galaxy_lastz_tool.tar.bz2 is now ready to be uploaded.
A single tool archive must include a tool config file and will probably also include a tool script. If any steps are necessary to install your tool beyond the basic instructions below, include a README file to provide details. If the tool (or parts of it) are written in C, the source code can be included (or put links to the source in the README). Do not include pre-compiled binaries without source since Galaxy is run on a wide variety of platforms. Also, if you are only wrapping or providing a Galaxy config for a tool that is not your own, be sure the license allows for redistribution before including any part of that tool in the archive.
There are no requirements about the directory structure inside the archive, but for ease of use it's generally a good idea to put everything inside a sub-directory, instead of directly at the top level.
For example, to package the Lastz tool's config file, Galaxy wrapper, and the C source:
user@host:~% tar jcvf ~/Desktop/galaxy_lastz_tool.tar.bz2 lastz lastz/ lastz/README lastz/lastz_wrapper.py lastz/lastz_wrapper.xml lastz/lastz-distrib-1.02.00/ lastz/lastz-distrib-1.02.00/src/ lastz/lastz-distrib-1.02.00/src/Makefile lastz/lastz-distrib-1.02.00/src/version.mak lastz/lastz-distrib-1.02.00/src/lastz.c lastz/lastz-distrib-1.02.00/src/lastz.h ...~/Desktop/galaxy_lastz_tool.tar.bz2 is now ready to be uploaded.
Simply uploading a tool to the Galaxy too shed will not allow other users to find and download your tool. It will need to be approved by an administrator before it appears in the tool list.
After your archive has successfully uploaded, you will be redirected to the Edit Tool page. Provide a detailed description of what the tool does - this will be used by administrators to understand the tool before approving it for display on the site. Once approved, this information will be displayed to users who view your tool. In addition, the site administrators will have configured a number of categories with which you can associate your tool to make it easy to find by users looking to solve specific problems. Associate as many categories as are relevant to your tool. You may change the description and associated categories as often as you'd like until you click the "Submit for approval" button. Once submitted, the tool will be approved or rejected by an administrator. If the tool is rejected, you will see information about why it was rejected, and you can make appropriate changes to the archive and re-submit it for approval. When it is approved, your archive will be visible to everyone. At that point, the description and associated categories can only be changed by an administrator.
When the tool has been approved or rejected, you may upload a new version by browsing to the tool's "View Tool" page, clicking the "Tool actions" menu in the upper right corner of the page, and selecting "Upload a new version" from the menu.
A tool's download link will send you the tool archive. Once downloaded, unpack the tool on your local Galaxy instance's server:
user@host:~% tar xvf galaxy_lastz_tool.tar ... user@host:~% tar zxvf galaxy_lastz_tool.tar.gz ... user@host:~% tar jxvf galaxy_lastz_tool.tar.bz2 ...If the archive includes a README file, consult it for installation instructions. If not, follow these basic steps:
galaxy_dist/tools/
to house downloaded tool(s).$PATH
. If the tool depends on C binaries but does not come with them (only source), you'll need to compile the source first.galaxy_dist/tool_conf.xml
.In the near future, we plan to implement a more direct method to install tools via the Galaxy administrator user interface instead of placing files on the filesystem and manually managing the tool_conf.xml
file.