funannotate icon indicating copy to clipboard operation
funannotate copied to clipboard

Please post 'conda list' for any recent successful installation of funannotate

Open michaelkarlcoleman opened this issue 4 years ago • 9 comments

We're hitting the "takes forever" issue, and we could probably cut down the immense space of possibilities if we had any idea what a successful combination looked like.

We cannot easily use 'mamba', and even if we could, it's not clear how much this would help with exponential explosion.

Thank you for having pity.

michaelkarlcoleman avatar Apr 22 '22 23:04 michaelkarlcoleman

Sorry to hear about the installation issues -- its far from perfect. The docker image that is built with GitHub actions after every commit is build with conda: https://github.com/nextgenusfs/funannotate/blob/master/Dockerfile. Usually the takes forever to solve issue is related to packages being installed in the base environment, essentially the only way I can get conda to work reliably for me is to only install mamba in the base environment and then always create new environments for each toolkit/pipeline/etc. I know it's incredibly frustrating. For some people installing dependencies manually might be easier (depending on your pain tolerance.)

So maybe this command would work: https://github.com/nextgenusfs/funannotate/blob/47b0849f95057d8f9ce43341d4ea8be7347132e6/Dockerfile#L10-L21

And then you could install funannotate via pip in that environment.

nextgenusfs avatar Apr 23 '22 00:04 nextgenusfs

Thanks for your response. I'd been trying install the 'funannote' conda package, so tried adding the packages from this that have constraints to see if that would help. It quickly errors out with a constraint failure, but that's still an interesting result.

conda create -n funannotate-1.8.9 --override-channels -c bioconda -c defaults -c conda-forge  funannotate 'python>=3.8' 'python<3.9' "augustus==3.3" "trinity==2.8.5" "evidencemodeler==1.1.1" "pasa==2
.4.1" "codingquarry==2.0" "proteinortho==6.0.16"  "blast=2.2.31"  "diamond>=2.0.5"  "trnascan-se>=2.0"  "mafft>=7"  "kallisto==0.46.1"  "salmon>=0.9" "samtools>=1.9"

(Note that your example has "augustus=3.3", which might not be legal syntax. Or perhaps 'conda' allows both "=" and "==".)

Anyway, I could do what you're suggesting, which it to 'pip install' at the end. It also looks like there's a Singularity recipe, and we might try that first.

Thanks again!

michaelkarlcoleman avatar Apr 25 '22 00:04 michaelkarlcoleman

Your channels are out of order that is why it won't build. See the command I posted just replace mamba with conda.

nextgenusfs avatar Apr 25 '22 01:04 nextgenusfs

Thanks. For the purposes of trying to install the conda 'funannotate' package, switching to the channel order didn't seem to make any difference.

I'm guessing the successful approaches will be one or both of (a) install funannotate itself with pip3, and/or (b) use one of the image recipes.

michaelkarlcoleman avatar Apr 25 '22 17:04 michaelkarlcoleman

Okay, yes than the error seems to be some sort of conflict with your existing conda installation, ie packages that you have installed in the base environment. The whole docker container builds in less than 10 minutes, ie so mamba just takes a few minutes to solve what I have in the docker recipe. You can use the docker container and port to singularity -- I could never get that automated so the image on singularity hub is not current. Docker has its limitations but can be useful......

nextgenusfs avatar Apr 25 '22 19:04 nextgenusfs

I can't rule that out (base pollution), but we've tried hard not to do that. Note that your Dockerfile is using the 'pip3 install' approach, which is different than what I've been attempting. In particular, I've been effectively trying to install this conda package:

https://anaconda.org/bioconda/funannotate

hoping that that would be dirt simple. Perhaps that's not really being updated, though. Anyway, thanks again.

michaelkarlcoleman avatar Apr 25 '22 19:04 michaelkarlcoleman

Yeah I know its different because I need to install the latest base from master (hence pip). But the bioconda image is built from the pip release using effectively the same recipe specs (at least I think it is).

The order of the channels is critical though for bioconda recipes to function normally, so I could imagine if you have a different order and/or other channels in your config that could cause problems. The order should be conda-fore --> bioconda --> defaults. https://bioconda.github.io/user/install.html#set-up-channels.

nextgenusfs avatar Apr 25 '22 19:04 nextgenusfs

I found this worked for me too:

$ conda create -p ./fa-test -c bioconda -c conda-forge 'python>=3.8' 'python<3.9'
$ conda activate fa-test
$ mamba install funannotate
$ funannotate check
Checking dependencies for 1.8.9
-------------------------------------------------------
To print all dependencies and versions: funannotate check --show-versions

You are running Python v 3.8.12. Now checking python packages...
All 11 python packages installed


You are running Perl v b'5.026002'. Now checking perl modules...
   ERROR: Bio::Perl not installed, install with cpanm Bio::Perl


Checking Environmental Variables...
	ERROR: FUNANNOTATE_DB not set. export FUNANNOTATE_DB=/path/to/dir
	ERROR: PASAHOME not set. export PASAHOME=/path/to/dir
	ERROR: TRINITYHOME not set. export TRINITYHOME=/path/to/dir
	ERROR: EVM_HOME not set. export EVM_HOME=/path/to/dir
	ERROR: AUGUSTUS_CONFIG_PATH not set. export AUGUSTUS_CONFIG_PATH=/path/to/dir
	ERROR: GENEMARK_PATH not set. export GENEMARK_PATH=/path/to/dir
-------------------------------------------------------
Checking external dependencies...
	ERROR: emapper.py not installed
	ERROR: gmes_petap.pl not installed
	ERROR: signalp not installed
$ mamba install perl-bioperl
$ funannotate check
-------------------------------------------------------
Checking dependencies for 1.8.9
-------------------------------------------------------
To print all dependencies and versions: funannotate check --show-versions

You are running Python v 3.8.12. Now checking python packages...
All 11 python packages installed


You are running Perl v b'5.026002'. Now checking perl modules...
All 27 Perl modules installed


Checking Environmental Variables...
	ERROR: FUNANNOTATE_DB not set. export FUNANNOTATE_DB=/path/to/dir
	ERROR: PASAHOME not set. export PASAHOME=/path/to/dir
	ERROR: TRINITYHOME not set. export TRINITYHOME=/path/to/dir
	ERROR: EVM_HOME not set. export EVM_HOME=/path/to/dir
	ERROR: AUGUSTUS_CONFIG_PATH not set. export AUGUSTUS_CONFIG_PATH=/path/to/dir
	ERROR: GENEMARK_PATH not set. export GENEMARK_PATH=/path/to/dir
-------------------------------------------------------
Checking external dependencies...
	ERROR: emapper.py not installed
	ERROR: gmes_petap.pl not installed
	ERROR: signalp not installed

hyphaltip avatar Apr 25 '22 19:04 hyphaltip

I installed it last week with mamba without issues. I had to manually include perl-bioperl and perl-local-lib though.

xvazquezc avatar Apr 26 '22 01:04 xvazquezc