Conda le meilleur ami du bioinformaticien

Conda, le meilleur ami du bioinformaticien

"Fais-moi confiannncc­ceeeeee" Ana­con­da | Apol­lo

Conda est un package mana­ger écrit en python, comme pypi. Mais contrai­re­ment à celui-ci, il per­met d'installer des pro­grammes écrits dans d'autres lan­gages. Notam­ment vos outils bio­in­for­ma­tiques pré­fé­rés par l’intermédiaire du dépôt bio­con­da. C'est-à-dire que tous vos outils, que ce soit sam­tools, bwa, bow­tie, trim­mo­ma­tic, fast­qc et j'en passe, sont dis­po­nibles et mis à jour par l’intermédiaire de conda.
Par ailleurs, conda per­met l'utilisation d’environnement vir­tuel à l'instar de vir­tua­lenv (que les uti­li­sa­teurs de python connaissent bien), vous évi­tant tous pro­blèmes de dépen­dances. C'est donc un outil 2 en 1, que nous vous pro­po­sons d'explorer dans cet article.

Installation de miniconda

Ne cher­chez pas à ins­tal­ler conda sur votre sys­tème en tant que root pour le dis­tri­buer à tous vos uti­li­sa­teurs. Conda s'installe et s'utilise en simple uti­li­sa­teur. C'est un avan­tage qui évite de dépendre du sysad­min. La méthode la plus simple pour débu­ter est d'installer Mini­con­da en télé­char­geant le script d'installation dis­po­nible pour GNU/​Linux, Win­dows et Mac. Sur Ubun­tu 64 bits :

wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh

Suivez les instructions et assurez-vous de bien avoir votre PATH modifié afin de pouvoir exécuter conda depuis votre shell.

echo $PATH
conda --version

Ajouter les dépôts bioconda

Pour ajouter les channels (dépôts) de bioconda :

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

Utilisation

Installer une application

L'installation d'une application se fait de manière très simple.

conda install samtools
samtools --version

Pour désinstaller une application :

conda uninstall samtools

Enfin, si vous voulez chercher un package disponible :

conda search bedtools

Les environnements

Gestion de vos environnements

Les environnements sont une façon simple d'isoler votre projet avec toutes ses dépendances. Vous pouvez créer autant d’environnements que vous le désirez, contenant chacun leurs applications et leurs libraires. Pour créer un environnement :

conda create --name mon_environnement

vous pouvez alors activer l’environnement et installer des packages :

source activate mon_environnement
conda install samtools bedtools bwa bowtie2

Pour désactiver votre environnement :

deactivate

Pour lister les environnements disponibles :

conda env list

Enfin pour supprimer un environnement :

conda env remove  my_environnement

Partager vos environnements

L'avantage des environnements, c'est de pouvoir les partager avec un autre utilisateur, sans que celui-ci se casse la tête à installer vos dépendances. Activer votre environnement et utiliser la commande export :

source activate my_environement
conda env export > my_environment.yml

Pour créer un nouvel environnement à partir de my_environnement.yml :

conda env create -n new_environnement -f my_environnement.yml

Créer votre package

Le système de création de package dans conda est relativement simple par rapport aux autres. On ne le fait pas en claquant des doigts mais ça reste plus facile de voir un paquet ajouté au dépôt bioconda que dans les dépôts d'une distribution GNU/Linux. Pour créer un paquet vous devez installer le paquet conda-build et créer un dossier avec la structure suivante:

nom_du_paquet
├── build.sh
└── meta.yaml
  • meta.yaml contient toutes les informations sur votre paquet, son nom, où sont les sources (dépôt git, svn, archive tar), ses dépendances (de construction et d'installation)
  • build.sh toutes les instructions pour compiler et installer votre package

Le dossier peut aussi contenir un fichier bld.bat pour la compilation et l'installation sur le système d'exploitation Windows.

Pour tester la construction et l'installation de votre package, exécutez la commande suivante :

conda build nom_du_paquet
conda install --use-local nom_du_paquet

Il ne vous reste plus qu'à intégrer votre paquet à bioconda. Pour cela vous devez forker le dépôt bioconda-recipes puis déplacer votre package dans l'arborescence et enfin créer un pull request.
Pour des informations plus détaillées sur la création de package pour conda je vous invite a lire la documentation de conda.

Conclusion

Conda semble être une bonne alternative aux containers (Docker, LXD) ou encore à virtualenv afin de rendre vos pipelines portables. La présence du dépôt bioconda, spécialisé pour la bioinformatique en fait tout le charme. À ce jour il y a plus de 1500 applications et la page github compte 194 contributeurs. Pour ma part, j'ai retrouvé tous mes outils favoris. Alors essayez-le et n’hésitez pas à lâcher un commentaire sur vos retours.

Gros remercient et plein de bisous pour nos relecteur : Ludovic, Aurélien, Lins`



Pour continuer la lecture :


Commentaires

Une réponse à “Conda le meilleur ami du bioinformaticien”

  1. Avatar de lucas

    Petit détail pour les chi­po­teurs : pypi (bien­tôt ware­house https://​pypi​.org/) n'est pas un package mana­ger, mais un package index. pip et easy_​install sont des package mana­gers.

Laisser un commentaire