Découverte :
Conda le meilleur ami du bioinformaticien

Conda, le meilleur ami du bioinformaticien

"Fais-moi confiannnccceeeeee" Anaconda | Apollo

Conda est un package manager écrit en python, comme pypi. Mais contrairement à celui-ci, il permet d'installer des programmes écrits dans d'autres langages. Notamment vos outils bioinformatiques préférés par l’intermédiaire du dépôt bioconda. C'est-à-dire que tous vos outils, que ce soit samtools, bwa, bowtie, trimmomatic, fastqc et j'en passe, sont disponibles et mis à jour par l’intermédiaire de conda.
Par ailleurs, conda permet l'utilisation d’environnement virtuel à l'instar de virtualenv (que les utilisateurs de python connaissent bien), vous évitant tous problèmes de dépendances. C'est donc un outil 2 en 1, que nous vous proposons d'explorer dans cet article.

Installation de miniconda

Ne cherchez pas à installer conda sur votre système en tant que root pour le distribuer à tous vos utilisateurs. Conda s'installe et s'utilise en simple utilisateur. C'est un avantage qui évite de dépendre du sysadmin. La méthode la plus simple pour débuter est d'installer Miniconda en téléchargeant le script d'installation disponible pour Linux, Windows et Mac. Sur Ubuntu 64 bits :

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

Ajouter les dépôts bioconda

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

Utilisation

Installer une application

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

Pour désinstaller une application :

Enfin, si vous voulez chercher un package disponible :

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 :

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

Pour désactiver votre environnement :

Pour lister les environnements disponibles :

Enfin pour supprimer un 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 :

Pour créer un nouvel environnement à partir de 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 linux. Pour créer un paquet vous devez installer le paquet conda-build et créer un dossier avec la structure suivante:

  • 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 :

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`

  • À propos de
  • Interne en biologie moléculaire.
    Bioinformaticien , promotion BIG Rennes 2014-2015
    Mon blog dridk.me
    Suivez moi sur Twitter @dridk

Catégorie: Découverte | Tags: , ,

Un commentaire sur “Conda le meilleur ami du bioinformaticien

  1. Petit détail pour les chipoteurs : pypi (bientôt warehouse https://pypi.org/) n'est pas un package manager, mais un package index. pip et easy_install sont des package managers.

Laisser un commentaire