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.
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 fait à 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 :
- Il contient à présent un système de type LIMS pour les données de Next Generation Sequencing. Il est donc à présent possible de se servir de Galaxy comme interface de soumission et de suivi des échantillons au sein d'un centre de séquençage, et d'automatiser le pré-traitement des données.
- Un outil de visualisation des données génomiques, Trackster, a également été ajouté ; il permet de parcourir des fichiers de type SAM/BAM, BED, GFF/GTF, WIG, bigWig, bigBed, et VCF directement depuis Galaxy.
- Un dépôt en ligne, le Tool Shed, permet à tous les développeurs ayant construit de nouveaux outils de les partager avec toute la communauté. Chaque outil est stocké dans un dépôt Mercurial afin de faciliter les mises à jour.
- Une API basée sur des requêtes HTTP est en plein développement, et elle permet déjà d'effectuer les principales opérations de bases : Chargement de fichiers, gestion des bibliothèques de données, exécution de workflows, etc. Ainsi, il est possible de piloter Galaxy de manière programmatique.
- Galaxy Cloudman permet d'utiliser des ressources distantes pour le calcul, telles que celles proposées par Amazon Elastic Compute Cloud.
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 quelque 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 :
- Ergatis (NDLR : nallias projette d'écrire un article à son sujet.)
- BioMAJ
- Mobyle
- Taverna
- Kepler
- KNIME
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?"
Laisser un commentaire