Question: Uploading C++ tool to Galaxy toolshed
0
gravatar for cdean11
2.8 years ago by
cdean1120
cdean1120 wrote:

I want to add my tool to the Galaxy tool shed so that others can download and play with it. As of now, the tool is installed to my local instance of Galaxy and runs smoothly. However, I am having trouble understanding how the overall upload process works.

For example, the tool is written in C++ and has multiple source/header files. As of now, the source code is sitting in my galaxy/tool/mytool/ directory with my xml file and compiled executable. However, in many tool repositories I see there is simply a single python script that executes everything along with an xml file.

In my xml file I simply execute my script using something like

$__tool_directory__/myExecutable inpu1 input2 output1

How can I let Galaxy Make the source code and put the resulting executable in the right place?

galaxy • 726 views
ADD COMMENTlink modified 2.8 years ago by y.hoogstrate460 • written 2.8 years ago by cdean1120
2
gravatar for y.hoogstrate
2.8 years ago by
y.hoogstrate460
Netherlands
y.hoogstrate460 wrote:

Hey cdean11,

It is common practice to separate tools and 'dependencies' (in this case myExecutable) for galaxy workflows/tools. The most important reason for this is that this allows you to manage your c++ project elsewhere (e.g. bitbucket, github, sourceforge, etc.) so that other people can contribute to your tool while the galaxy wrapper is a separate entity.

One of the tools in galaxy written in c++ is STAR (RNA-seq data aligner). You can look it up over here:

https://github.com/galaxyproject/tools-iuc/tree/master/tools/rgrnastar

As you can see in its tool_dependencies, it refers to some packages like samtools but also STAR itself: 

https://github.com/galaxyproject/tools-iuc/tree/master/packages/package_rnastar_2_4_0d

In fact you write a recipe to let galaxy compile your myExecutable just once, and this compiled binary will be linked to the tool wrapper when running it. Try to use this as template for your project and if you get stuck don't worry and ask a 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 << Martin has answered a similar question over there. Maybe this is also helpful to you.

ADD COMMENTlink modified 2.8 years ago • written 2.8 years ago by y.hoogstrate460
1

Got it working. Thanks a lot!

ADD REPLYlink written 2.8 years ago by cdean1120
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: 174 users visited in the last hour