Accessibility Tools

- Le blog participatif de bioinformatique francophone depuis 2012 -

Galaxy : Bien plus qu'un gestionnaire de workflows

Logo de Galaxy
Logo de Galaxy

Qu'est-ce que Galaxy ?

Galaxy est une appli­ca­tion web écrite en Python des­ti­née à faci­li­ter la mani­pu­la­tion et l'analyse des don­nées, dans le cadre de la recherche bio­mé­di­cale. Elle per­met d'utiliser des logi­ciels habi­tuel­le­ment exé­cu­tés en ligne de com­mande de manière gra­phique, grâce à un sys­tème de plu­gins (« outils ») en XML et de tem­plates Mako. Ces outils sont par­ti­cu­liè­re­ment puis­sants car ils peuvent exé­cu­ter n'importe quel lan­gage ou pro­gramme. Ain­si, même si les outils pro­po­sés par défaut sont mas­si­ve­ment adap­tés au trai­te­ment et à l'analyse des don­nées géno­miques (SAM­tools, Clus­talW, EMBOSS, Bow­tie, etc.), il est tout à fait pos­sible d'utiliser le logi­ciel dans un autre contexte.

La fonc­tion­na­li­té prin­ci­pale de Galaxy est son ges­tion­naire de work­flows. Il per­met d'associer des outils entre eux, de manière gra­phique et intui­tive, pour exé­cu­ter auto­ma­ti­que­ment des séries d'opérations répé­ti­tives sur un ou plu­sieurs fichiers à la fois. Il est éga­le­ment pos­sible d'exécuter des outils manuel­le­ment, puis extraire un work­flow à par­tir de l'historique des opé­ra­tions ain­si effec­tuées.

noodles
Page d'accueil par défaut d'une ins­tance locale mon­trant un work­flow. (WWFSMD ? Voir note de bas de page)

Galaxy est déve­lop­pé conjoin­te­ment par le Nekru­ten­ko Lab (Cen­ter for Com­pa­ra­tive Geno­mics and Bio­in­for­ma­tics, Penn State Uni­ver­si­ty) et le Tay­lor Lab (Emo­ry Uni­ver­si­ty). Il s'agit d'un logi­ciel entiè­re­ment libre et gra­tuit. Il est donc pos­sible de le télé­char­ger, de l'installer loca­le­ment, le modi­fier et le redis­tri­buer par la suite. Cette liber­té est un atout qui a très for­te­ment par­ti­ci­pé à son suc­cès, car elle per­met aux uti­li­sa­teurs de par­ti­ci­per à son évo­lu­tion.

En effet, en plus du dyna­misme de son déve­lop­pe­ment, l'équipe Galaxy a su créer une com­mu­nau­té très active autour de son logi­ciel notam­ment grâce à ses listes de dif­fu­sion, ses ate­liers et ses confé­rences annuelles qu'elle orga­nise autour du monde. Ces der­nières per­mettent de com­mu­ni­quer les avan­cées majeures du déve­lop­pe­ment, mais éga­le­ment à des per­sonnes exté­rieures d'exposer les tra­vaux qu'ils ont fait à par­tir du logi­ciel, en en modi­fiant sou­vent pro­fon­dé­ment le code.

L'équipe entre­tient éga­le­ment deux ins­tances publiques acces­sibles à tous, qui per­mettent de tes­ter Galaxy libre­ment sans avoir à l'installer. La pre­mière est une ins­tance de pro­duc­tion béné­fi­ciant de la der­nière ver­sion stable de Galaxy et per­met­tant aux visi­teurs d'effectuer des ana­lyses, dans la mesure de la dis­po­ni­bi­li­té des res­sources dis­po­nibles sur les ser­veurs de cal­cul. La seconde est des­ti­née à tes­ter les der­niers chan­ge­ments sou­mis par les déve­lop­peurs, mais n'est pas stable.

Galaxy @home

L'utilisation des ins­tances publiques a ses limites : aux périodes d'affluence, cer­taines opé­ra­tions sont très ralen­ties, le par­tage des res­sources fait que les plus gros jobs peuvent mettre plu­sieurs jours à démar­rer, et le char­ge­ment des don­nées se fai­sant par le pro­to­cole HTTP peut être très long. Faire tran­si­ter les don­nées par Inter­net est éga­le­ment incom­pa­tible avec l'analyse de don­nées médi­cales ou sen­sibles car il ne garan­tit pas leur confi­den­tia­li­té. Il est donc vite incon­tour­nable d'effec­tuer une ins­tal­la­tion locale de Galaxy dans le cas d'une uti­li­sa­tion quo­ti­dienne et/​ou sécu­ri­sée.

En revanche, la confi­gu­ra­tion d'une ins­tance locale demande à satis­faire un cer­tain nombre de contraintes. La répar­ti­tion des res­sources devient rapi­de­ment une prio­ri­té. Galaxy pos­sède son propre ges­tion­naire de res­sources, mais ce der­nier est très basique (une simple file « First In First Out ») et ne per­met pas d'assurer com­plè­te­ment la robus­tesse des machines. Il est donc for­te­ment conseillé d'utiliser un ges­tion­naire de res­sources plus com­plet, tel que Torque/​PBS, PBS Pro ou LSF. Galaxy devrait fonc­tion­ner avec tout ges­tion­naire implé­men­tant l'API DRMAA.

Une fois les contraintes de per­for­mance satis­faites, il est alors pos­sible de per­son­na­li­ser son ins­tal­la­tion afin d'adapter le logi­ciel aux besoins du labo­ra­toire. La créa­tion de nou­veaux outils est très bien docu­men­tée et per­met d'ajouter faci­le­ment de nou­veaux pro­grammes à la liste des outils dis­po­nibles. Il est éga­le­ment tout à fait pos­sible d'ajou­ter de nou­veaux types de fichiers, et de chan­ger en pro­fon­deur le com­por­te­ment de Galaxy si néces­saire.

Galaxy grandit vite !

Galaxy béné­fi­cie d'un rythme de déve­lop­pe­ment très sou­te­nu, et de nom­breuses fonc­tion­na­li­tés ont récem­ment vu le jour :

GalaxyMainTrackster
Aper­çu de Tracks­ter, l'outil de visua­li­sa­tion
  • Un dépôt en ligne, le Tool Shed, per­met à tous les déve­lop­peurs ayant construit de nou­veaux outils de les par­ta­ger avec toute la com­mu­nau­té. Chaque outil est sto­cké dans un dépôt Mer­cu­rial afin de faci­li­ter les mises à jour.
  • Une API basée sur des requêtes HTTP est en plein déve­lop­pe­ment, et elle per­met déjà d'effectuer les prin­ci­pales opé­ra­tions de bases : Char­ge­ment de fichiers, ges­tion des biblio­thèques de don­nées, exé­cu­tion de work­flows, etc. Ain­si, il est pos­sible de pilo­ter Galaxy de manière pro­gram­ma­tique.
  • Galaxy Cloud­man per­met d'uti­li­ser des res­sources dis­tantes pour le cal­cul, telles que celles pro­po­sées par Ama­zon Elas­tic Com­pute Cloud.

L'avis de la rédaction

Voi­là un an que je tra­vaille sur Galaxy dans un envi­ron­ne­ment de pro­duc­tion local. J'apprécie beau­coup la flexi­bi­li­té et la faci­li­té d'installation du logi­ciel. Comme toute appli­ca­tion web de la même enver­gure, il n'est pas tou­jours évident de com­prendre son code, mais ce n'est rien d'insurmontable. Le code est cor­rec­te­ment com­men­té et la docu­men­ta­tion en ligne est très com­plète. J'ai notam­ment dû désac­ti­ver la décom­pres­sion auto­ma­tique des fichiers com­pres­sés, afin d'éviter la dupli­ca­tion des don­nées. L'opération m'a pris quelque temps mais s'est avé­rée plus simple que je ne le crai­gnais. Le fait qu'il contienne son propre ser­veur HTTP réduit un peu la trans­pa­rence de son fonc­tion­ne­ment, mais faci­lite gran­de­ment son ins­tal­la­tion et sa main­te­nance. Même si je n'ai pas de sérieuse expé­rience avec ses concur­rents, je le recom­mande volon­tiers.

Logiciels similaires

Il est dif­fi­cile de trou­ver des concur­rents qui offrent les mêmes fonc­tion­na­li­tés que Galaxy, mais par­mi les ges­tion­naires de work­flows on peut citer :

Tous les élé­ments d'illustration uti­li­sés sont sou­mis à la licence du logi­ciel Galaxy dont le conte­nu est dis­po­nible à l'adresse sui­vante : https://​bit​bu​cket​.org/​g​a​l​a​x​y​/​g​a​l​a​x​y​-​c​e​n​t​r​a​l​/​s​r​c​/​3​f​1​2​a​b​b​d​2​3​9​4​/​L​I​C​E​N​S​E​.​txt

WWFSMD = "What Would Flying Spa­ghet­ti Mons­ter Do?"

Vous avez aimé ? Dites-le nous !

Moyenne : 0 /​ 5. Nb de votes : 0

Pas encore de vote pour cet article.

Partagez cet article




Commentaires

8 réponses à “Galaxy : Bien plus qu'un gestionnaire de workflows”

  1. Yoann M.
    Yoann M.

    J'ai donc appris que Galaxy inté­grait un LIMS et un genome brow­ser ! je me cou­che­rai moins bête, mer­ci 🙂
    Un article réfé­rence pour les "galaxy-users" je pense ! Bra­vo

    1. Avatar de Nisaea

      T'as vu ça ? Il ferait presque le café 🙂

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

        1. Avatar de Nisaea

          Ouép, mais il fait pas genome brow­ser 🙂 on peut pas tout avoir !

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

          2. Avatar de Nisaea

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

  2. WWFSMD, je connais­sais pas. J'aime beau­coup !

    1. Avatar de Nisaea

      Moi non plus je ne connais­sais pas avant d'installer Galaxy 🙂

      [troll] Comme quoi, même les phy­si­ciens ont de l'humour ! 😀 [/​troll]

Laisser un commentaire

Pour insérer du code dans vos commentaires, utilisez les balises <code> et <\code>.