4.0 years ago by
United States
You need to create a toolshed package that will contain a 'recipe' how to resolve the dependency. Your Galaxy tool (the XML file and tests) will then declare dependency on that package and when Galaxy starts installing your tool from the toolshed it will resolve the dependency through the package.
In the package you have two choices:
- provide a url with source code and a set of commands how to compile the code
- provide url where to obtain binaries
Have a look at the blast package:
https://toolshed.g2.bx.psu.edu/view/devteam/package_blast_plus_2_2_26
which provides ways how to resolve the blast dependency for the following Galaxy tool:
https://toolshed.g2.bx.psu.edu/view/devteam/ncbi_blast_plus
You can see the blast package source here:
https://github.com/galaxyproject/tools-devteam/blob/master/packages/package_blast_plus_2_2_26/tool_dependencies.xml
It provides 4 binaries for various architectures and if the needed architecture is not found it will compile it from sources with these:
<action type="download_by_url" target_filename="ncbi-blast-2.2.26+.tgz">ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.2.26/ncbi-blast-2.2.26+-src.tar.gz</action>
<action type="shell_command">cd c++ && ./configure --prefix=$INSTALL_DIR && make && make install</action>
Our ToolShed wiki is in slight disarray currently but you can learn more about packages here: https://wiki.galaxyproject.org/Installing%20tool%20dependency%20packages
•
link
modified 4.0 years ago
•
written
4.0 years ago by
Martin Čech ♦♦ 4.9k