Question: I've written a tool in C and want to put it on the galaxy toolshed, but don't understand how to make it compile on other's machines
2
gravatar for jonrds
4.0 years ago by
jonrds20
United States
jonrds20 wrote:

As the title says, I think I have all the correct files for my tool (including the XML file to run it), but given that it is written in C I can't just compile it and upload it (or it will break on other machines).

What files do I need to get my program to compile on other Galaxy instances? Is this the recipe thing? I'm having trouble understanding the tutorials, as it seems like normally tools are just written in Perl.

tool publish C galaxy • 1.3k views
ADD COMMENTlink modified 4.0 years ago by Martin Čech ♦♦ 4.9k • written 4.0 years ago by jonrds20
1
gravatar for Martin Čech
4.0 years ago by
Martin Čech ♦♦ 4.9k
United States
Martin Čech ♦♦ 4.9k wrote:

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++ &amp;&amp; ./configure --prefix=$INSTALL_DIR &amp;&amp; make &amp;&amp; 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

ADD COMMENTlink modified 4.0 years ago • written 4.0 years ago by Martin Čech ♦♦ 4.9k
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 167 users visited in the last hour