GalaxyAddTool: Difference between revisions

From Cheaha
Jump to navigation Jump to search
(start)
 
 
(8 intermediate revisions by the same user not shown)
Line 3: Line 3:
== 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)
#* /lustre/project/''your_project'' (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)
#* /share/apps/galaxy/galaxy-tools (only if this will ONLY be used in Galaxy)
# Create a personal galaxy for developement & testing
#* See Shantanu's [https://projects.uabgrid.uab.edu/galaxy/wiki/GalaxyDevelopment Create a personal galaxy] page.
# Add the executable path to the galaxy environment
# 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...
== Special Case: REST or SPARQL endpoints==
There are already tools for integrating these through a wizard.
See the [http://toolshed.g2.bx.psu.edu/repository?webapp=community 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 ..."
# (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 20: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.

pre-requisits

  1. Check Galaxy Toolshed to make sure the wrapper doesn't already exist!
  2. 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)
  3. Create a personal galaxy for developement & testing
  4. Add the executable path to the galaxy environment
    • $galaxyroot/modulefiles/galaxy*: edit the module definition file to add your tool location to the path
  5. Load the updated module and make sure the command works from the commandline!
    • module load galaxy
    • 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
    • define tool ID and display name
    • declare inputs
    • declare outputs
    • list test files
    • user documentation
  3. Edit tool_conf.xml to add a line for the new XML file
  4. Restart galaxy
    • ./run.sh --stop-daemon; ./run.sh --daemon