Anaconda

From Leo's Notes
Last edited on 22 April 2024, at 15:55.

Installation

$ wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
$ bash Anaconda3*sh

Do you wish the installer to initialize Anaconda3
in your /gpfs/home/lleung/.bashrc ? [yes|no]
[no] >>> yes

Once installed, you will need to initialize and set up conda for your shell.

$ conda init zsh

## Restart or exec your shell
$ exec zsh

## If loaded properly, your shell should have a prefix of the environment name. Defaults to 'base'
(base) $

Usage

Command Description
conda create -n env_name pip python=version env_name is the name of the new environment. Packages follow.
conda env [-n] list Lists environments. -n lists deactivated environments.
conda list Environment currently activated
conda info –envs View list of packages installed on certain environment:
conda list -n env_name package_name See if a certain package is installed.
conda activate env_name Activates an environment
conda deactivate Exit from an environment
conda env remove -n env_name Removes an environment
conda install package=version Install a specific version of a package
conda clean --all [--dry-run] Cleanup unused files in the pkgs directory. Pass in --dry-run to see what would have been done.

Tasks

Configuration

Some conda configs including channels are set in the ~/.condarc file.

Setup an R environment

To create and install a particular package in a new environment, such as R:

$ conda create -n mro_env r-essentials
$ conda activate mro_env

To deactivate, run:

(base) $ conda deactivate

Setup R Bioconda

To get Bioconda working, you will need to add the following channels first:

$ conda config --add channels defaults
$ conda config --add channels bioconda
$ conda config --add channels conda-forge

Once that is done, you can then install packages such as:

$ conda install r-metaboanalyst

Missing channels will result in a conflict and an empty UnsatisfiableError failure:

(rlang) ~ % conda create -n rmetabo -c bioconda r-metaboanalyst
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: /
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed

UnsatisfiableError:

After installing a package, it does not load and results in the following error:

‘GenomeInfoDbData’ was installed before R 4.0.0: please re-install it

This occurred only on the account with an old version of Miniconda and was fixed by installing the latest version of Anaconda and re-running all the commands above to reinstall the package.

Troubleshooting

Conda is stuck solving environment

Conda being slow or stuck at solving an environment is a common problem. When running conda with the -vvv option, it eventually prints "Invoking SAT with clause count ###" with some ever-changing (never really decreasing) number while consuming an entire CPU core.

Anaconda has a blog post about some possible mitigations at https://www.anaconda.com/blog/understanding-and-improving-condas-performance.

Some suggestions for those running into this issue are to:

  1. Remove the conda-forge channel if possible. Replace it with conda-metachannel.
  2. Specify a specific package rather than using a broad package spec. Eg. conda install conda=4.11.0
  3. Set "conda config --set channel_priority strict"
  4. Create a fresh environment and start all over.

There are some other solutions that other users on GitHub reported to have helped including:

  1. Set conda-forge last in the channels list in ~/.condarc
  2. Set channel_priority to flexible. (which goes against Anaconda's suggestion above)

See Also