Dependency problems with non-standard Conda channel.

Hey all, I am relatively new to developing Galaxy tools and wrappers, and I am having a problem.

I am trying to write a tool wrapper for Hybpiper, a command-based pipeline for gene enrichment:

My Galaxy instance is a local one of Galaxy 19.09, running on Ubuntu 18.04 LTS inside a virtualbox VM. 

I have my shell- and python scripts working outside of Galaxy in a Conda environment running on Ubuntu, however, when I tried testing it in Galaxy for the first time using my tool.xml, all except the hybpiper dependencies were resolved.

The resolver kept running for half a day, going from channel to channel, and eventually not finding Hybpiper.

I specified the non-standard channel 'chrisjackson-pellicle' in galaxy.yml under 'conda_ensure_channels', which didn't work either.

I have been trying to modify dependency_resolvers_conf.xml, as well, without any luck 

Can anyone help me with suggestions or advice?

I would very much appreciate it.

My tool.xml, as well as the scripts, can be found in my GitHub repo under the tools/hybpiper directory in the development branch:

A copy of my current galaxy.yml can also be found in the main directory as a loose file:

Thank you in advance

For tool development its best to use planemo. The planemo tutorial is a good starting point: Building Galaxy Tools — Planemo 0.75.3 documentation

Also the GTN has excellent content on tool development Galaxy Training!

It should be possible to specify also non-default channels using the --conda_channels argument. But you may also consider tyo put the recipe to bioconda … might simplify things a bit (in particular it will allow others to use the tool).

If you intend to set up your own tool repo I would suggest to start from this template GitHub - galaxyproject/galaxy-tool-repository-template. This will give you also tool testing and linting for PR … and weekly test of everything.

Do you want to setup Galaxy just for tool development?

I heard great things about planemo, will definitely check it out in the future!

I already got a local Galaxy instance working, and manage to build another tool (which just used bioconda and conda-forge requirements).

My main objective is to get this wrapper working. My script generates the commands and writes them to a file, then the commands are executed from said file. But for it to test, the environment needs to have Hybpiper installed.

Most likely you do not need to touch dependency_resolvers_conf.xml. The change in galaxy.yml (conda_ensure_channels) looks good to me.

In the logs you should see the conda create ... command that is executed by Galaxy. Can you try to run this externally (ie independently from Galaxy)?

The resolver kept running for half a day, going from channel to channel, and eventually not finding Hybpiper.

Sounds like a conda problem to me. Happens more often than I like. Sometimes it helps to use mamba instead of conda (mamba will be the default from the next release).

Installing the package from the tool would be a nasty hack that I would not suggest:


Thank you, will give it a try.

Currently, I have a Conda installation outside of galaxy, but it seems to be independent of my Galaxy folder.

And yeah, that package installation from the tool was a move of desperation, haha.
The current version of the script has it removed already :slight_smile:

@Eremus007 could you share the final solution here … and if possible flag this as solved?