GalaxyAddTool
(→pre-requisits) |
(→pre-requisits) |
||
(6 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
How-to for adding a new tool into UAB's Galaxy instance. This details adding a tool that has it's own executable(s), rather than a pure python script. | How-to for adding a new tool into UAB's Galaxy instance. This details adding a tool that has it's own executable(s), rather than a pure python script. | ||
− | |||
− | |||
== pre-requisits == | == pre-requisits == | ||
+ | # Check [http://toolshed.g2.bx.psu.edu/ Galaxy Toolshed] to make sure the wrapper doesn't already exist! | ||
# Install the tools on the cluster | # Install the tools on the cluster | ||
#* /share/apps/''your_tool'' (email mhanby@uab.edu to get the directory created) | #* /share/apps/''your_tool'' (email mhanby@uab.edu to get the directory created) | ||
Line 23: | Line 22: | ||
navigate to ''Tools Shed -> Data Source'' | navigate to ''Tools Shed -> Data Source'' | ||
− | == | + | == Creating a command-wrapper by hand== |
+ | |||
+ | Galaxy's public instructions for adding tools: http://wiki.g2.bx.psu.edu/Admin/Tools | ||
+ | |||
+ | Note: If you only need a simple wrapper for an exiting program, you'll only need to create an XML wrapper to describe it (my_tool.xml). However, if you need to create temporary directories or do any other pre- or post- processing, you'll also want to create some adapter code, and have my_tool.xml call that, rather than calling your tool directly. For example, sam_pileup.xml calls sam_pileup.py, which sets up a temp directory, indexes genomes on the fly, etc., then calls "samtools pileup ..." | ||
+ | |||
+ | # (optional) Create a my_tool.py/pl/etc adapter to do pre-/post- processing | ||
+ | # Create a my_tool.xml wrapper to | ||
+ | #* define tool ID and display name | ||
+ | #* declare inputs | ||
+ | #* declare outputs | ||
+ | #* list test files | ||
+ | #* user documentation | ||
+ | # Edit tool_conf.xml to add a line for the new XML file | ||
+ | # Restart galaxy | ||
+ | #* ./run.sh --stop-daemon; ./run.sh --daemon |
Latest revision as of 14:56, 4 November 2011
How-to for adding a new tool into UAB's Galaxy instance. This details adding a tool that has it's own executable(s), rather than a pure python script.
[edit] pre-requisits
- Check Galaxy Toolshed to make sure the wrapper doesn't already exist!
- Install the tools on the cluster
- /share/apps/your_tool (email mhanby@uab.edu to get the directory created)
- /lustre/project/your_project (email mhanby@uab.edu to get the directory created)
- /share/apps/galaxy/galaxy-tools (only if this will ONLY be used in Galaxy)
- Create a personal galaxy for developement & testing
- See Shantanu's Create a personal galaxy page.
- Add the executable path to the galaxy environment
- $galaxyroot/modulefiles/galaxy*: edit the module definition file to add your tool location to the path
- Load the updated module and make sure the command works from the commandline!
- module load galaxy
- test, test, test...
[edit] Special Case: REST or SPARQL endpoints
There are already tools for integrating these through a wizard. See the Galaxy Toolshed and navigate to Tools Shed -> Data Source
[edit] Creating a command-wrapper by hand
Galaxy's public instructions for adding tools: http://wiki.g2.bx.psu.edu/Admin/Tools
Note: If you only need a simple wrapper for an exiting program, you'll only need to create an XML wrapper to describe it (my_tool.xml). However, if you need to create temporary directories or do any other pre- or post- processing, you'll also want to create some adapter code, and have my_tool.xml call that, rather than calling your tool directly. For example, sam_pileup.xml calls sam_pileup.py, which sets up a temp directory, indexes genomes on the fly, etc., then calls "samtools pileup ..."
- (optional) Create a my_tool.py/pl/etc adapter to do pre-/post- processing
- Create a my_tool.xml wrapper to
- define tool ID and display name
- declare inputs
- declare outputs
- list test files
- user documentation
- Edit tool_conf.xml to add a line for the new XML file
- Restart galaxy
- ./run.sh --stop-daemon; ./run.sh --daemon