Astuce :
Galaxy: Bien plus qu'un gestionnaire de workflows

Logo de Galaxy

Logo de Galaxy

Qu'est-ce que Galaxy ?

Galaxy est une application web écrite en Python destinée à faciliter la manipulation et l'analyse des données, dans le cadre de la recherche biomédicale. Elle permet d'utiliser des logiciels habituellement exécutés en ligne de commande de manière graphique, grâce à un système de plugins (« outils ») en XML et de templates Mako. Ces outils sont particulièrement puissants car ils peuvent exécuter n'importe quel langage ou programme. Ainsi, même si les outils proposés par défaut sont massivement adaptés au traitement et à l'analyse des données génomiques (SAMtools, ClustalW, EMBOSS, Bowtie, etc.), il est tout à fait possible d'utiliser le logiciel dans un autre contexte.

La fonctionnalité principale de Galaxy est son gestionnaire de workflows. Il permet d'associer des outils entre eux, de manière graphique et intuitive, pour exécuter automatiquement des séries d'opérations répétitives sur un ou plusieurs fichiers à la fois. Il est également possible d'exécuter des outils manuellement, puis extraire un workflow à partir de l'historique des opérations ainsi effectuées.

noodles

Page d'accueil par défaut d'une instance locale montrant un workflow. (WWFSMD? Voir note de bas de page)

Galaxy est développé conjointement par le Nekrutenko Lab (Center for Comparative Genomics and Bioinformatics, Penn State University) et le Taylor Lab (Emory University). Il s'agit d'un logiciel entièrement libre et gratuit. Il est donc possible de le télécharger, de l'installer localement, le modifier et le redistribuer par la suite. Cette liberté est un atout qui a très fortement participé à son succès, car elle permet aux utilisateurs de participer à son évolution.

En effet, en plus du dynamisme de son développement, l'équipe Galaxy a su créer une communauté très active autour de son logiciel notamment grâce à ses listes de diffusion, ses ateliers et ses conférences annuelles qu'elle organise autour du monde. Ces dernières permettent de communiquer les avancées majeures du développement, mais également à des personnes extérieures d'exposer les travaux qu'ils ont faits à partir du logiciel, en en modifiant souvent profondément le code.

L'équipe entretient également deux instances publiques accessibles à tous, qui permettent de tester Galaxy librement sans avoir à l'installer. La première est une instance de production bénéficiant de la dernière version stable de Galaxy et permettant aux visiteurs d'effectuer des analyses, dans la mesure de la disponibilité des ressources disponibles sur les serveurs de calcul. La seconde est destinée à tester les derniers changements soumis par les développeurs, mais n'est pas stable.

Galaxy @home

L'utilisation des instances publiques a ses limites : aux périodes d'affluence, certaines opérations sont très ralenties, le partage des ressources fait que les plus gros jobs peuvent mettre plusieurs jours à démarrer, et le chargement des données se faisant par le protocole HTTP peut être très long. Faire transiter les données par Internet est également incompatible avec l'analyse de données médicales ou sensibles car il ne garantit pas leur confidentialité. Il est donc vite incontournable d'effectuer une installation locale de Galaxy dans le cas d'une utilisation quotidienne et/ou sécurisée.

En revanche, la configuration d'une instance locale demande à satisfaire un certain nombre de contraintes. La répartition des ressources devient rapidement une priorité. Galaxy possède son propre gestionnaire de ressources, mais ce dernier est très basique (une simple file « First In First Out ») et ne permet pas d'assurer complètement la robustesse des machines. Il est donc fortement conseillé d'utiliser un gestionnaire de ressources plus complet, tel que Torque/PBS, PBS Pro ou LSF. Galaxy devrait fonctionner avec tout gestionnaire implémentant l'API DRMAA.

Une fois les contraintes de performance satisfaites, il est alors possible de personnaliser son installation afin d'adapter le logiciel aux besoins du laboratoire. La création de nouveaux outils est très bien documentée et permet d'ajouter facilement de nouveaux programmes à la liste des outils disponibles. Il est également tout à fait possible d'ajouter de nouveaux types de fichiers, et de changer en profondeur le comportement de Galaxy si nécessaire.

Galaxy grandit vite !

Galaxy bénéficie d'un rythme de développement très soutenu, et de nombreuses fonctionnalités ont récemment vu le jour :

L'avis de la rédaction

Voilà un an que je travaille sur Galaxy dans un environnement de production local. J'apprécie beaucoup la flexibilité et la facilité d'installation du logiciel. Comme toute application web de la même envergure, il n'est pas toujours évident de comprendre son code, mais ce n'est rien d'insurmontable. Le code est correctement commenté et la documentation en ligne est très complète. J'ai notamment dû désactiver la décompression automatique des fichiers compressés, afin d'éviter la duplication des données. L'opération m'a pris quelques temps mais s'est avérée plus simple que je ne le craignais. Le fait qu'il contienne son propre serveur HTTP réduit un peu la transparence de son fonctionnement, mais facilite grandement son installation et sa maintenance. Même si je n'ai pas de sérieuse expérience avec ses concurrents, je le recommande volontiers.

Logiciels similaires

Il est difficile de trouver des concurrents qui offrent les mêmes fonctionnalités que Galaxy, mais parmi les gestionnaires de workflows on peut citer :

 Tous les éléments d'illustration utilisés sont soumis à la licence du logiciel Galaxy dont le contenu est disponible à l'adresse suivante: https://bitbucket.org/galaxy/galaxy-central/src/3f12abbd2394/LICENSE.txt
 
WWFSMD = "What Would Flying Spaghetti Monster Do?"

  • À propos de
  • Actuellement en thèse (2012-2015), je pratique la chasse aux virus en milieu hostile (et métagénomique).

    Mon kit de survie:

    • Python (C'est historique, mon ami.)
    • Mon netbook que je traîne partout
    • Fedora (Merci Jo)
    • Les "Statistiques pour statophobes", et j'assume
    • Ma tasse "vi reference" et mon thé
    • tumblr (#WHATSHOULDWECALLGRADSCHOOL ftw!)

    Je tortur... ahem. Jenseigne aussi un peu les bases de GNU/Linux à des étudiants en DUT informatique (notions généralistes, bash scripting, initiation à l'administration système, linuxcestbonmangezen...)

    Et j'écris des articles ici, quand je peux. Enfin je fais du peu que je mieux.

8 commentaires sur “Galaxy: Bien plus qu'un gestionnaire de workflows

  1. J'ai donc appris que Galaxy intégrait un LIMS et un genome browser ! je me coucherai moins bête, merci :)
    Un article référence pour les "galaxy-users" je pense ! Bravo

    • T'as vu ça? Il ferait presque le café :)

      • Il n'y a que emacs 24 qui peut faire sa !

        • Ouép, mais il fait pas genome browser :) on peut pas tout avoir!

          • Il ne tient qu'a toi de le coder emacs peut tout faire.

          • @Natir: Mais que n'y ai-je pas pensé plus tôt? (j'aime pas emacs ^^)

  2. WWFSMD, je connaissais pas. J'aime beaucoup!

    • Moi non plus je ne connaissais pas avant d'installer Galaxy :)

      [troll] Comme quoi, même les physiciens ont de l'humour! :D [/troll]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">