Hello Galaxy Community,
The Galaxy Community Space has been renamed to be the Galaxy Tool Shed ( contributed by
Dave Clements ), the location is still
http://usegalaxy.org/community.
The site now includes the ability to upload an archive consisting of a suite of tools in
addition to a single tool archive.
Here is the information about uploading both of these types of archives. Please start
sharing tools, and let us know if you encounter any problems. Also, let us know what new
features you would like to see in the tool shed. Our next update will include the ability
to rate tools.
Creating an archive containing a tool or a suite of tools
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.
Tool Suite Archive
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 tag must be altered the same way that the version attribute
of a single tool config must be altered if uploading a new version of a tool.
The id, name and version attributes of each tag in the 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.
Single Tool Archive
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.
Editing Information, Categories, and Submitting For Approval
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.
Downloading and Installing Tools
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:
Create a directory under galaxy_dist/tools/ to house downloaded tool(s).
In the new directory, place the XML and any script file(s) which were contained in the
archive.
If the tool includes binaries, you'll need to copy them to a directory on your $PATH.
If the tool depends on C binaries but does not come with them (only source), you'll
need to compile the source first.
Add the tool to galaxy_dist/tool_conf.xml.
Restart your Galaxy server process.
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.
Greg Von Kuster
Galaxy Development Team
greg(a)bx.psu.edu