sanger-pathogens / circlator

A tool to circularize genome assemblies
http://sanger-pathogens.github.io/circlator/
Other
221 stars 56 forks source link

Didn't find canu in path. Looked for:canu #162

Open jellila opened 4 years ago

jellila commented 4 years ago

Hi,

I am using circlator in conda. When I run progcheck I get:

Circlator version: 1.5.5

External dependencies: bwa 0.7.17 /Users/laura/miniconda3/envs/sanger/bin/bwa WARNING: Didn't find canu in path. Looked for:canu nucmer 3.1 /Users/laura/miniconda3/envs/sanger/bin/nucmer prodigal 2.6.3 /Users/laura/miniconda3/envs/sanger/bin/prodigal samtools 1.9 /Users/laura/miniconda3/envs/sanger/bin/samtools WARNING: SPAdes version 3.14.0 is being used. It will work, but better results are usually obtained from Circlator using SPAdes version 3.7.1. Although 3.7.1 is not the latest version, we recommend it for Circlator. spades 3.14.0 /Users/laura/miniconda3/envs/sanger/bin/spades.py

Python version: 3.6.10 | packaged by conda-forge | (default, Mar 5 2020, 09:56:10) [GCC Clang 9.0.1 ]

Python dependencies: openpyxl 2.4.0-b1 /Users/laura/miniconda3/envs/sanger/lib/python3.6/site-packages/openpyxl/init.py pyfastaq 3.17.0 /Users/laura/miniconda3/envs/sanger/lib/python3.6/site-packages/pyfastaq/init.py pymummer 0.11.0 /Users/laura/miniconda3/envs/sanger/lib/python3.6/site-packages/pymummer/init.py pysam 0.15.3 /Users/laura/miniconda3/envs/sanger/lib/python3.6/site-packages/pysam/init.py

but canu is already in my path:

(base) 192-168-1-106:~ laura$ echo $PATH /Users/laura/miniconda3/bin:/Users/laura/miniconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/laura/canu-2.0/Darwin-amd64/bin/canu

Can anyone help me, please? :)

JonDoe3389 commented 4 years ago

I'm having the same problems.

Thank you for posting it!

JonDoe3389 commented 4 years ago

Hi again,

I've been investigating all morning long, and I've made some progresses, but unfortunately, I've not been able to solve it.

The point is (at least in my case) that they use in python shutil.which() to know where canu (and the rest of the programs are). This is the same version of which in UNIX language. In my UNIX terminal, if I use which, everything is right, and everything is in the path, all the programs required (canu, samtools, prodigal, etc)

But, if I call python in my terminal, and try with shutil.which() in all the cases, It does recognize all the programs except canu and spades.py (the ones are giving me problems).

I've realized after some time that the rest of the programs are placed in /usr/bin or /usr/local/bin, and canu (e.g.) is place in my /home/etc.

So, after a while I have these results: As canu itself is a folder, and the executable within, I've placed the whole canu folder in /usr/bin/ and in /usr/local/bin (where the rest of the programs are) but shutil.which still does not recognize it. (Obviously I put canu in the PATH)

But, I've moved only the canu executable to /usr/bin and only then, shutil.which() recognized /usr/bin/canu. The problem is, that then, canu does not work (problem of dependencies I guess, as soon as I've just only moved the canu file without the rest of the files within the canu folder)

So, I've made some discoveries about the problem, but it didn't help me at all in the end. I got quite stucked because I don't want to get in trouble with the bin folder.

Finally, so sorry if I didn't explain myself, and also sorry if it's and easy problem, I'm a newbie bioinformatician.

I'll try the same with spades just to end.

Any suggestion would be very helpful.

Thank you in advance.

JonDoe3389 commented 4 years ago

Ok, finally It could work with spades.

I placed all the files from spades bin folder in my /usr/bin folder, and then I placed the other spades folder (share) in my /usr/ folder.

It recognizes if I call spades.py, and It did worked with shutil.which(), (output:/usr/bin/spades.py) and if i run progcheck finally it does recognize. The problem is, that if I try to run circlator (circlator all etc), it still fails because it needs canu. I thought that if one of both worked, the other one is unneeded.

So, I'll still work with it.

Thanks.