Hoohm / dropSeqPipe

A SingleCell RNASeq pre-processing snakemake workflow
Creative Commons Attribution Share Alike 4.0 International
147 stars 47 forks source link

dropSeqPipe Installation Error #32

Closed megara23 closed 6 years ago

megara23 commented 6 years ago

I was trying to install dropSeqPipe using the instructions provided at https://github.com/Hoohm/dropSeqPipe/wiki/Installation , and everything went smoothly until I got to the last step. When I tried to run the command conda env create --file environment.yaml, I got the following result:

bash-4.1$ conda env create --file environment.yaml Solving environment: failed

ResolvePackageNotFound: - snakemake=4.8.0 - aioeasywebdav - snakemake=4.8.0 - google-cloud-storage - snakemake=4.8.0 - python-irodsclient - snakemake=4.8.0 - ratelimiter

When I tried to install the dependencies (for example snakemake 4.8.0), I received another error saying that it wasn't available, as seen below:

bash-4.1$ conda install snakemake=4.8.0 Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

- snakemake=4.8.0

Current channels:

- https://repo.anaconda.com/pkgs/main/linux-64 - https://repo.anaconda.com/pkgs/main/noarch - https://repo.anaconda.com/pkgs/free/linux-64 - https://repo.anaconda.com/pkgs/free/noarch - https://repo.anaconda.com/pkgs/r/linux-64 - https://repo.anaconda.com/pkgs/r/noarch - https://repo.anaconda.com/pkgs/pro/linux-64 - https://repo.anaconda.com/pkgs/pro/noarch

To search for alternate channels that may provide the conda package you're looking for, navigate to

`https://anaconda.org`

and use the search bar at the top of the page.

Am I missing a critical step? Thanks for your help in advance!

Hoohm commented 6 years ago

Hey! I also stumble upon this issue.

I will change the way the installation of snakemake is done soon in the wiki. In the meantime, I would advise you to install snakemake with this command:

conda install -c bioconda -c conda-forge snakemake

You won't need ti activate the environment either. Let me know if it works

megara23 commented 6 years ago

I tried both that command and conda install -c bioconda -c conda-forge snakemake=4.8.0, and the results were the same (it is still saying that snakemake 4.8.0 is not there).

Hoohm commented 6 years ago

That is really strange because I just tried and it worked. did you specifically copy the command I gave you? I've seen that if you don't have -c bioconda and -c conda-forge it doesn't work.

megara23 commented 6 years ago

Yes I copied it since I did not want to mis-type anything.

I should clarify that the installation of snakemake itself was fine when I tried both commands, but when I went back to run the conda env create --file environment.yaml command it got the same results (despite me installing snakemake).

Hoohm commented 6 years ago

Oh yeah, you don't need to use the conda create env anymore. Once snakemake is installed, the --use-conda will take care of the envs for all the rules

Hoohm commented 6 years ago

The pipeline and the wiki have been changed accordingly. Is it now fixed for you?

megara23 commented 6 years ago

Yes, thank you very much!

pwl commented 6 years ago

Sorry for piggybacking onto a closed thread but I was wandering if there is a way to pre-install all the conda environments before actually running the pipeline with snakemake --use-conda. I made a docker image with dropSeqPipe and I need to install all the software necessary to run the pipeline before having access to the actual data.

Hoohm commented 6 years ago

Hey,

installing all the dependencies before is doable except I don't know how it will deal with the wrapped rules (ex. STAR).

What you would need to do is create a environment.yaml file with all the dependencies. Those in the envs folder and then the ones on the repos for the wrappers.

Although I would not recommend that since it's definitely not designed for that. You should also take a look at this section it might help you with this.

If you don't mind my asking, why do you prefer using a docker image instead of the conda env?

pwl commented 6 years ago

Thanks for the suggestion. I simply merged the yaml files by hand into an environment.yaml and I built a conda environment from that, which I then activate before running the pipeline, now running snakemake does not install any additional packages. It's a hacky solution but it'll have to do for now.

As for your question, we dockerize most of our pipelines anyway so I wanted to be consistent and do the same with dorpSeqPipe. Using docker also means that you don't have to rely on any other third-party software, even if it's need to be installed on the user-level. Thanks for pointing out the --use-conda --use-singularity option, it may be a viable compromise, I'll look into it.