Problems installing old qiime2 version for mmvec plug-in usage

Hi,

I am wanting to install the MMvec plugin in qiime2 to perform microbial-metabolite interactions. The MMvec github says that the plug in is only compatible with qiime2 environments 2020.6 or before. Hence I have been trying to download qiime2-2020.6 to my iMac i7, however I am having issues downloading it.

This is error I am getting:

(base) megl4@MEGLs-4-iMac ~ % wget https://data.qiime2.org/distro/core/qiime2-2020.6-py36-osx-conda.yml
conda env create -n qiime2-2020.6 --file qiime2-2020.6-py36-osx-conda.yml

--2024-11-18 11:19:10-- https://data.qiime2.org/distro/core/qiime2-2020.6-py36-osx-conda.yml

Resolviendo data.qiime2.org (data.qiime2.org)... 54.200.1.12
Conectando con data.qiime2.org (data.qiime2.org)[54.200.1.12]:443... conectado.
Petici'on HTTP enviada, esperando respuesta... 302 FOUND
Localizaci'on: https://raw.githubusercontent.com/qiime2/environment-files/master/2020.6/release/qiime2-2020.6-py36-osx-conda.yml [siguiendo]
--2024-11-18 11:19:10-- https://raw.githubusercontent.com/qiime2/environment-files/master/2020.6/release/qiime2-2020.6-py36-osx-conda.yml
Resolviendo raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.111.133, 185.199.108.133, 185.199.109.133, ...
Conectando con raw.githubusercontent.com (raw.githubusercontent.com)[185.199.111.133]:443... conectado.
Petici'on HTTP enviada, esperando respuesta... 200 OK
Longitud: 6631 (6.5K) [text/plain]
Grabando a: <<qiime2-2020.6-py36-osx-conda.yml>>
qiime2-2020.6-py36- 100%[===================>] 6.48K --.-KB/s en 0s

2024-11-18 11:19:11 (31.9 MB/s) - <<qiime2-2020.6-py36-osx-conda.yml>> guardado [6631/6631]
/opt/miniconda3/lib/python3.12/argparse.py:2000: FutureWarning: remote_definition is deprecated and will be removed in 25.9. Use conda env create --file=URL instead.
action(self, namespace, argument_values, option_string)

Channels:

  • qiime2/label/r2020.6
  • conda-forge
  • bioconda
  • defaults

Platform: osx-64
Collecting package metadata (repodata.json): done
Solving environment: failed
Channels:

  • qiime2/label/r2020.6
  • conda-forge
  • bioconda
  • defaults

Platform: osx-64
Collecting package metadata (repodata.json): done
Solving environment: failed
LibMambaUnsatisfiableError: Encountered problems while solving:

  • package q2-sample-classifier-2020.6.0-py36_0 requires seaborn >=0.8, but none of the providers can be installed

Could not solve for environment specs
The following packages are incompatible
├─ q2-sample-classifier 2020.6.0** is installable and it requires
│ └─ seaborn >=0.8 , which can be installed;
└─ seaborn-base 0.10.1** is not installable because it requires
└─ seaborn 0.10.1 *_1, which conflicts with any installable versions previously reported.

zsh: command not found: #

Hey @natalie.melendez,

I'm not really sure what's up with the solver on this one. It seems to be complaining that it can't install the version of seaborn it wants to because it wants the version of seaborn it was told to install. This doesn't make much sense, so there must be some transitive dependency mucking things up.

In any case, I would give one of the following approaches a shot:

  1. Delete seaborn and seaborn-base from the environment file. This will force conda to solve it again from q2-sample-classifier and maybe it won't trip over itself this time.
  2. Delete q2-sample-classifier from the environment-file. You'll be missing that plugin, but this one happens to be at the very edge of plugin dependencies, so it's reasonable enough to drop it if you don't need those actions (thereby avoiding this particular complaint from conda)
  3. Add conda-forge/labels/broken to your channel list (after conda-forge). This is in case that transitive dependency has been lost to time and lives in the broken label now (this used to happen a lot more often, but I haven't seen it lately).

Most likely, none of these will entirely work, but you should get a less tautological complaint from conda which may serve as better clues as to what should be fixed.

Hope that helps.

Hey @ebolyen

Thank you for your help. I tried following the first approach you suggested. I deleted seaborn and seaborn-base from the environment file (qiime2-2020.6-py36-osx-conda.yml) and proceeded to create the new conda environment for qiime2-2020.6. While it did install on the terminal, when I activate qiime2 the following message pops up:

(base) megl5@MEGLs-4-iMac ~ % conda activate qiime2-2020.6
complete:13: command not found: compdef
(qiime2-2020.6) megl5@x86_64-apple-darwin13 ~ %

Is this okay?

Hey @natalie.melendez,

Yeah that's just our tab completion. It thinks you are in a bash shell, but you are probably in zsh (or perhaps another shell entirely). This isn't an actual issue for QIIME 2, you can still run everything but you won't have tab completion.

To learn more you can run:

echo $0

Which will print out the current program (i.e. the running shell).

Then you'll need to find instructions to enable compdef in your shell. In zsh you would put this snippet in your ~/.zshrc

autoload -Uz compinit
compinit

Hi @ebolyen,

I ran the command 'echo $0' and the current shell I'm using is -zsh.
I added the snippet you mention in the zsh folder and was able to enable compdef.

Now when I activate qiime2-2020.6 it doesn't give me the tab completion message:
(base) megl5@MEGLs-4-iMac ~ % conda activate qiime2-2020.6
(qiime2-2020.6) megl5@x86_64-apple-darwin13 ~ %

Thank you for your help! I have one last question, I noticed that when I activate qiime2-2020.6 there is a change in the name. It goes from MEGLs-4-iMac to x86_64-apple-darwin13. Does this affect in any way the program/analysis? This is the first time I have seen this change occur (compared to other qiime2 versions I have previously downloaded). Thank you!

1 Like

That's great @natalie.melendez!

Re: the prompt. This will not change anything about your analysis. It's controlled by the PS1 variable which is being modified by conda when you activate. It shouldn't be specific to any particular environment, so much as specific to your conda version, and would happen with any conda environment.

Modifying your "PS1" variable to show different text is a pretty common thing to do, it's a bit like setting your desktop background, but for your shell.