GalaxyAddTool

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

 * 1) Check Galaxy Toolshed to make sure the wrapper doesn't already exist!
 * 2) Install the tools on the cluster
 * 3) * /share/apps/your_tool (email mhanby@uab.edu to get the directory created)
 * 4) * /lustre/project/your_project (email mhanby@uab.edu to get the directory created)
 * 5) * /share/apps/galaxy/galaxy-tools (only if this will ONLY be used in Galaxy)
 * 6) Create a personal galaxy for developement & testing
 * 7) * See Shantanu's Create a personal galaxy page.
 * 8) Add the executable path to the galaxy environment
 * 9) * $galaxyroot/modulefiles/galaxy*: edit the module definition file to add your tool location to the path
 * 10) Load the updated module and make sure the command works from the commandline!
 * 11) * module load galaxy
 * 12) * test, test, test...

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

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 ..."


 * 1) (optional) Create a my_tool.py/pl/etc adapter to do pre-/post- processing
 * 2) Create a my_tool.xml wrapper to
 * 3) * define tool ID and display name
 * 4) * declare inputs
 * 5) * declare outputs
 * 6) * list test files
 * 7) * user documentation
 * 8) Edit tool_conf.xml to add a line for the new XML file
 * 9) Restart galaxy
 * 10) * ./run.sh --stop-daemon; ./run.sh --daemon