Installation logiciel en local avec Conda
Conda
Conda offre un système d'environnement virtuel ainsi qu'un système de gestion des outils dans les domaines scientifiques et biologiques.
Si les outils souhaités ne sont pas disponibles sous forme de modules sur HPC2, il est possible de les installer dans son home
.
Bonnes Pratiques
Se connecter sur le cluster et ouvrir une session interactive avec srun
avant de lancer les installations.
Option 1 : Utilisation du module Conda
module load conda/4.12.0
Note
- Si la résolution des dépendances est longue, il est possible d'utiliser la commande
mamba
à la place deconda
. - Pour la version conda/23.3.1, mamba est disponible en utilisant l'option
--libmamba
et en retirant l'optionchannel_priority: strict
du fichier de configuration conda (souvent situé dans le home ~/.condarc).
Option 2 : Installation de Conda
Versions de Anaconda/Miniconda
Nous préconisons l'installation minimale de Conda (Miniconda). Une installation complète de Conda est néanmoins possible. Miniconda s'installe soit en version 2 ou en version 3 selon le version de Python souhaité, respectivement Python2 et Python3. A savoir qu'il est tout de même possible de créer un environnement Python2 avec Miniconda3.
$ srun --pty bash
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ chmod +x Miniconda3-latest-Linux-x86_64.sh
$ sh ./Miniconda3-latest-Linux-x86_64.sh -b -f -p $HOME/apps/conda
Une fois l'installation effectuée, vérifier que Conda est disponible.
$ export PATH="$HOME/apps/conda/condabin:$PATH"
$ which conda
~/apps/conda/condabin/conda
$ conda --help
usage: conda [-h] [-V] command ...
conda is a tool for managing and deploying applications, environments and packages.
Options:
...
(base)$ conda update conda
Note
Remplacer $HOME/apps/conda
par le répertoire souhaité. Attention, le répertoire $HOME/scratch
n'est pas approprié car régulièrement purgé.
Accepter la licence, l'installation en local et l'initialisation de Conda.
Penser à vous déconnecter du cluster puis à vous reconnecter pour que les modifications prennent effet.
Disponibilité de Conda
Pour rendre Conda disponible à la connexion, modifier le fichier de configuration .bashrc/.bash_profile
de la manière suivante :
export PATH="$HOME/apps/conda/condabin:$PATH"
Paramétrages de Conda
Se référer à la documentation officielle ou bien par exemple à celle-ci.
Ajouter les canaux qui contiennent les outils à installer. Les canaux peuvent être ajoutés en ligne de commande ou bien via le fichier environment.yaml (cf ci-dessous). Un canal est la localisation où les paquets Conda sont stockés. Les canaux principaux sont :
- Main : constuits et maintenus par Anaconda (par défault)
- Conda-forge : contribution communautaire
- Bioconda : contribution pour la communauté Biologie
- R : R et paquets R
(base)$ conda config --add channels defaults
(base)$ conda config --add channels r
(base)$ conda config --add channels bioconda
(base)$ conda config --add channels conda-forge
(base)$ conda config --get channels
--add channels 'defaults' # lowest priority
--add channels 'r'
--add channels 'bioconda'
--add channels 'conda-forge' # highest priority
Créer un environnement virtuel Conda
L'environnement de base de Conda doit d'abord être activé, ensuite l'environnement est créé.
Création d'un environnement
$ conda activate base
(base)$ conda create -n <my_env>
$ source activate <my_env>
(<my_env>)$
Note
Si l'initialisation de Conda ne s'est pas faite à l'installation de Conda, il est possible de le faire à l'étape conda activate
avec la commande conda init bash
.
Installation de paquets
Pour identifier les outils disponibles, se rendre sur le site Anaconda ou bien utiliser la commande conda search
.
Si l'outil est présent sur un canal non configuré précédemment, le préciser à cette étape.
(base)$ conda search <my_required_tool> --channel <public/local/private/-channel> --override-channels
(<my_env>)$ conda install --channel <public/local/private/-channel> <my_required_tool>
Note
S'il n'y a pas de résultat, il est possible de contribuer à bioconda pour créer les paquets manquants.
Sinon, il est également possible d'utiliser la commande pip
.
Création d'environnements Conda et installation d'outils
Création d'un environnement simple
(base)$ conda create --name <myEnvironmentName>
(base)$ conda activate <myEnvironmentName>
(<myEnvironmentName>)$
Création d'un environnement avec une liste d'outils à installer
(base)$ conda env create --name <myEnvironmentName> --file environment.yaml
(base)$ conda activate <myEnvironmentName>
(<myEnvironmentName>)$
Exemples
Exemple de création d'un environnement en spécifiant la version de Python
$ conda activate base
(base)$ conda create -n python2 python=2
$ conda activate python2
(python2)$
Un nouvel environnement nommé python2
est créé dans le répertoire apps/conda/envs
.
Exemple de création d'un environnement R avec R-tidyverse
(base)$ conda create --name tidyverse r r-tidyverse
(base)$ conda activate tidyverse
(tidyverse)$
Création d'un environnement avec un fichier de configuration
Exemple avec l'installation d'un workflow Snakemake
Création du fichier de configuration environment.yaml
avec les outils nécessaires à l'exécution d'un workflow.
dependencies:
- snakemake-minimal >=5.24.1
- cutadapt = 1.15
- fontconfig ==2.12.1
- fastqc ==0.11.5
Utilisation de ce fichier lors de la création de l'environnement virtuel Conda.
(base)$ conda env create --name snakemakeQC --file environment.yaml
(base)$ conda activate snakemakeQC
(snakemakeQC)$ fastqc --version
FastQC v0.11.5
Exemple avec l'installation du pipeline QIIME2
Se rendre sur le site https://docs.qiime2.org pour télécharger la dernière version.
(base)$ wget https://data.qiime2.org/distro/core/qiime2-2021.4-py38-linux-conda.yml
(base)$ conda env create --name qiime2-2021.4 --file qiime2-2021.4-py38-linux-conda.yml
(base)$ conda activate qiime2-2021.4
(qiime2-2021.4)$ qiime info
System versions
Python version: 3.8.8
QIIME 2 release: 2021.4
QIIME 2 version: 2021.4.0
q2cli version: 2021.4.0
...
Note
Pour supprimer un environnement, utiliser conda remove <my_useless_env>
.
Pour mettre à jour un outil ou un environnement, utiliser respectivement conda update <my_package>
ou conda env update -f environment.yaml