I have an issue with installing a program within a container that the existing suite of programs in the container require to run a specific command. The container I’m running contains a suite of bioinformatics commands (Qiime) and I need to install the program usearch. To complicate this issue, I’m running docker on Windows and my container commands are written in python, which I am not well versed in. I’ll try to provide as much detail and code as possible.
First, I launch my container and mount my folder with:
docker run --rm -t -i --mount type=bind,source=C:\Sequencing\Oomycetes,target=//c/Sequencing/Oomycetes cwarden45/metagenomics bash
This is as far as I can get without running into issues due to my lack of understanding of how to proceed correctly. I can run commands within my container just fine, with the exception of the command that is missing the usearch installation.
Usually, Qiime commands only need the associated program files included in the directory you’re working in (e.g. using a virtual box, you’d just drop it into the folder you’re working in). I’ve tried this approach by including both the windows executable file and the linux file in my directory with the resulting error:
StdOut: StdErr: sh: 1: usearch61: not found
Next, I’ve tried using wget to install the correct version of usearch inside the container:
root@b7b6d82c7f71:/# wget -O "usearch61" https://drive5.com/cgi-bin/upload3.py?license=XXXXXXXXXXXXXXXXXXXXXXXX --2018-10-28 15:41:06-- https://drive5.com/cgi-bin/upload3.py?license=XXXXXXXXXXXXXX Resolving drive5.com (drive5.com)... 22.214.171.124 Connecting to drive5.com (drive5.com)|126.96.36.199|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [application/octet-stream] Saving to: 'usearch61' usearch61 [ <=> ] 1.30M 1.64MB/s in 0.8s 2018-10-28 15:41:07 (1.64 MB/s) - 'usearch61' saved  root@b7b6d82c7f71:/# chmod +x usearch61 root@b7b6d82c7f71:/# ./usearch61 (C) Copyright 2010-12 Robert C. Edgar, all rights reserved. http://drive5.com/usearch License: ##### For documentation, please visit: http://drive5.com/usearch
This seemed promising, so I ran my command which inputs my file and calls the usearch program:
identify_chimeric_seqs.py -i //c/Sequencing/Oomycetes/seqs.fna -m usearch61 --suppress_usearch61_ref
This again resulted in the previous error of usearch61 not being found. I’ll include the full output error below, which includes some specifics for the Qiime identify_chimeric_seqs.py command failing to call usearch61 correctly.
Command: cd "/usearch61_chimeras/"; usearch61 --maxaccepts 1 --consout "/usearch61_chimeras/seqs.fna_consensus_with_abundance.fasta" --usersort --id 0.97 --sizeout --minseqlength 64 --wordlength 8 --uc "/usearch61_chimeras/seqs.fna_consensus_with_abundance.uc" --cluster_smallmem "//c/Sequencing/Oomycetes/seqs.fna" --maxrejects 8 --strand plus --log "/usearch61_chimeras/seqs.fna_smallmem_clustered.log" > "/tmp/tmpIlFYz69IBja8NHXX19PX.txt" 2> "/tmp/tmpDOXRN3JQS2nCP8bcoQui.txt" StdOut: StdErr: sh: 1: usearch61: not found
It’s apparent to me that usearch did not install in a way that is agreeable with my Qiime commands, but I’m at a loss on how to continue troubleshooting. I don’t know if it’s something outside the container, inside the container, or an issue with Qiime’s command itself. Any help would be greatly appreciated!