Question: Galaxy Tool Shed Now Includes The Ability To Upload An Archive Consisting Of A Suite Of Tools In Addition To A Single Tool Archive
0
Greg Von Kuster ♦ 810 wrote:
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@bx.psu.edu