Here is my problem in detail.
I have what I thought would be a simple wrapper and tool to pack into the new toolshed.
I have a tool_wrapper which points to a perl tool (VelvetOptimiser.pl) which in turn depends on some binaries being installed (velveth and velvetg). When I try and load these with tool dependencies and repository dependencies, galaxy cannot find the VelvetOptimiser.pl script nor the velvet binaries after they have been installed. (They're there, I've checked.)
It comprises of a repository (velvetoptimiser_gvl) with:
velvet_optimiser_vlsci.xml which points to a more complex velvet_optimiser_vlsci_wrapper.pl to create the actual command line. (This works when the dependencies are installed on the machine and available in the galaxy users path).
A repository_dependencies.xml file which points to an orphan repository (velvetoptimiser_orphan_225)
velvetoptimiser_orphan_225 has a tool_dependencies.xml to install the VelvetOptimiser.pl and associated modules and a repository_dependencies.xml file to point to the velvet orphan repository (velvet_1208).
velvet_1208 has a tool_dependencies.xml file which clones, installs and makes the velvet binaries and puts them in the right place.
All of the installations work when you install the tool from the toolshed. However, when I go to run the tool, it kept coming back saying it couldn’t find the VelvetOptimser.pl file. Then after the documentation was updated, I thought I may have to include the path as an environment like in the R_SCRIPT_PATH example in the wiki. So I set that up as well to no avail. I’ve left it in the files attached..
Both the toolshed that these repos are in and the galaxy being installed into are the latest versions as of 05/06/2013.
Please help!
I’ve attached all of the relevant files below.
Cheers,
Simon Gladman.
Victorian Bioinformatics Consortium
Monash University, Australia.
Respository: velvetoptimiser_gvl -- the main repo.
File: velvet_optimiser_vlsci.xml (salient parts)
<tool id="velvetoptimiser_vlsci" name="Velvet Optimiser vlsci" version="1.0.0">
<description>Automatically optimise a de-novo assembly using Velvet.</description>
<command interpreter="perl">
velvet_optimiser_wrapper_vlsci.pl
\$VOPT_SCRIPT_PATH
'$start_kmer'
'$end_kmer'
'$kmer_step'
#for i in $inputs:
'$i.__index__'
'${i.filetype}'
…
…
</outputs>
<requirments>
<requirement type="set_environment">VOPT_SCRIPT_PATH</requirement>
<requirement type="package" version="2.2.5">velvetoptimiser_orphan_225</requirement>
</requirments>
…
File: repository_dependencies.xml
<?xml version="1.0"?>
<repositories description="Velvet Optimiser requires access to the VelvetOptimiser package.">
<repository toolshed="http://galaxy-dev.genome.edu.au:9009/" name="velvetoptimiser_orphan_225" owner="slugger" changeset_revision="fc5a642b8741" />
</repositories>
Repository: velvetoptimiser_orphan_225
File: tool_dependencies.xml
<?xml version="1.0"?>
<tool_dependency>
<set_environment version="1.0">
<environment_variable name="VOPT_SCRIPT_PATH" action="set_to">$REPOSITORY_INSTALL_DIR</environment_variable>
</set_environment>
<package name="VelvetOptimiser-2.2.5" version="2.2.5">
<install version="1.0">
<actions>
<action type="download_by_url">http://www.vicbioinformatics.com/VelvetOptimiser-2.2.5.tar.gz</action>
<action type="move_directory_files">
<source_directory>.</source_directory>
<destination_directory>$INSTALL_DIR/bin</destination_directory>
</action>
<action type="set_environment">
<environment_variable name="PATH" action="prepend_to">$INSTALL_DIR/bin</environment_variable>
</action>
</actions>
</install>
</package>
</tool_dependency>
File: repository_dependencies.xml
<?xml version="1.0"?>
<repositories description="Velvet Optimiser requires access to the velvet binaries.">
<repository toolshed="http://galaxy-dev.genome.edu.au:9009/" name="velvet_1208" owner="slugger" changeset_revision="2c95298637c9" />
</repositories>
Repository: velvet_1208
File: tool_dependencies.xml
<?xml version="1.0"?>
<tool_dependency>
<package name="velvet" version="1.2.08">
<install version="1.0">
<actions>
<action type="shell_command">git clone git://github.com/dzerbino/velvet.git</action>
<action type="shell_command">make -i CATEGORIES=4 MAXKMERLENGTH=191 OPENMP=1</action>
<action type="move_file">
<source>velvetg</source>
<destination>$INSTALL_DIR/bin</destination>
</action>
<action type="move_file">
<source>velveth</source>
<destination>$INSTALL_DIR/bin</destination>
</action>
<action type="set_environment">
<environment_variable name="PATH" action="prepend_to">$INSTALL_DIR/bin</environment_variable>
</action>
</actions>
</install>
<readme>
Installs velvet latest version. (called 1.2.08 for Galaxy purposes.)
</readme>
</package>
</tool_dependency>