Tour d'horizon des outils de visualisation des réseaux biologiques

Après les dif­fé­rentes méthodes d'analyse et de repré­sen­ta­tion de réseaux méta­bo­liques bio­lo­giques, je vais vous par­ler des dif­fé­rents outils de visua­li­sa­tion.  Car oui, la visua­li­sa­tion d'un réseau ou de ses sous-par­ties peut être le début de son ana­lyse, car elle per­met de se rendre compte de sa topo­lo­gie, de sa com­plexi­té, sa connec­ti­vi­té…

Crée avec https://​meme​ge​ne​ra​tor​.net

En bio­lo­gie, on peut mettre sous la forme d'un réseau à peu près n'importe quel type de don­nées à condi­tion qu'elles pré­sentent des rela­tions entre elles. Mais, comme d'habitude, il y a des types de réseaux qui sont plus uti­li­sés que d'autres. Par­mi les plus cou­rants (liste très loin d'être exhaus­tive) :

  • réseaux d'interaction de pro­téines (appe­lés aus­si "PPI net­works", où PPI = "pro­tein-pro­tein inter­ac­tion"). Si vous n'y connais­sez rien, vous pou­vez en télé­char­ger pour votre orga­nisme pré­fé­ré sur STRING, une base de don­nées d'interactions de pro­téines.
  • réseaux méta­bo­liques — que j'ai ample­ment pré­sen­tés dans cet article.
  • réseaux de gènes : dans ce type de réseaux sont prin­ci­pa­le­ment repré­sen­tées des rela­tions d'activation/inactivation d'un gène par un autre.
  • réseaux de signa­li­sa­tion : sou­vent il s'agit de repré­sen­ter des inter­ac­tions de type phosphorylation/​déphosphorylation qui per­mettent les cas­cades de signa­li­sa­tion intra-cel­lu­laires (avec des acteurs comme MAPK, MAPKK, MAPKKK… hey, c'est pas une blague !)

Plu­sieurs logi­ciels per­mettent à l'utilisateur d'interagir avec ces réseaux, de les édi­ter et de les ana­ly­ser. Je ne par­le­rai ici que des plus popu­laires, mais sachez qu'un nou­vel outil est publié au moins une fois par an.

Je vais com­men­cer par les outils les plus géné­ra­listes, avec les­quels on peut visua­li­ser et ana­ly­ser à peu près n'importe quel type de réseau.

 

Outils généralistes de visualisation de réseaux

Cytoscape

C'est le plus popu­laire dans les com­mu­nau­tés bio­in­for­ma­tique et bio­lo­gique. Il est très simple et intui­tif à prendre en main, per­met de visua­li­ser un réseau avec dif­fé­rents agen­ce­ments, de colo­rier les noeuds et les arêtes et de cal­cu­ler ses sta­tis­tiques basiques (degré moyen des nœuds, dia­mètre, nombre de com­po­santes connexes, etc).

Ce qui fait sa popu­la­ri­té, cepen­dant, c'est un très grand nombre de plu­gins ("Apps") déve­lop­pés par la com­mu­nau­té Cytos­cape et que l'on peut télé­char­ger dans l'outil-même. Ces plu­gins per­mettent de pous­ser l'analyse du réseau beau­coup plus loin. Quelques exemples :

  • recherche des nœuds les plus impor­tants dans le réseau, en cal­cu­lant les cen­tra­li­tés (avec Cen­tiS­caPe, par exemple)
  • recherche de che­mins basée sur les attri­buts des nœuds ou des arêtes (avec PathEx­plo­rer ou CHAT par exemple)
  • enri­chis­se­ment en termes de Gene Onto­lo­gy ("GO enrich­ment") de plus ou moins petits réseaux de gènes ou de pro­téines, et colo­ra­tion des nœuds en fonc­tion des termes GO (avec les plu­gins BiN­GO et GOlo­rize)
  • fouille de lit­té­ra­ture basée sur les attri­buts des nœuds et/​ou arêtes sélec­tion­nés (Agi­lent­Li­te­ra­tu­re­Search)
  • décou­verte de motifs (sous-struc­tures de formes par­ti­cu­lières et récur­rentes) dans le réseau (avec Motif-Dis­co­ve­ry)

Cytos­cape offre aus­si la pos­si­bi­li­té d'interaction directe avec les grandes bases de don­nées publiques bio­lo­giques (Uni­Prot, KEGG, GO, Sac­cha­ro­myces Genome Data­base, etc) en fai­sant un croi­se­ment de don­nées sur les iden­ti­fiants choi­sis.

Et si le plu­gin de vos rêves n'est pas dis­po­nible dans la biblio­thèque, et que vous savez ce que vous vou­lez faire et com­ment, vous pou­vez coder votre propre plu­gin, et par la suite le mettre aus­si à dis­po­si­tion de la com­mu­nau­té !

Son plus gros défaut vient de sa consom­ma­tion exces­sive des res­sources mémoire de l'ordinateur sur lequel il est exé­cu­té (il peut être super lent quoi !) car il est entiè­re­ment codé en Java, ce qui peut ralen­tir for­te­ment les inter­ac­tions de l'utilisateur avec ce logi­ciel. C'est donc sur cette note qu'on passe à.…

 

Tulip

qui est un outil de visua­li­sa­tion par­ti­cu­liè­re­ment bien adap­té à de très grandes quan­ti­tés de don­nées. Ecrit en C++, il offre un cer­tain nombre de pos­si­bi­li­tés pour l'exploration rapide de réseaux bio­lo­giques, notam­ment un croi­se­ment rapide et effi­cace avec cer­taines bases de don­nées bio­lo­giques (comme KEGG). De plus, en uti­li­sant Tulip, vous sou­te­nez le pro­duc­teur fran­çais, car cet outil est déve­lop­pé au sein du LaBRI (Bor­deaux)!

Bien que très puis­sant et rapide, il est cepen­dant plus dif­fi­cile à prendre en main que Cytos­cape, notam­ment à cause des "Seg­men­ta­tion fault" à sa pre­mière com­pi­la­tion. Il n'offre pas non plus, du moins pour l'instant et à mon humble connais­sance, la pos­si­bi­li­té d'intégrer faci­le­ment des plu­gins faits mai­son, et le nombre d'analyses pos­sibles avec est bien infé­rieur à la diver­si­té offerte par Cytos­cape.

 

Gephi

…qui a déjà fait l'objet d'un article sur ce blog il y a quelque temps, je ne vais donc pas para­phra­ser celui-là. C'est à mon avis un très bon com­pro­mis entre la diver­si­té des pos­si­bi­li­tés offertes par Cytos­cape et la rapi­di­té de Tulip. Il uti­lise notam­ment un moteur de ren­du tri­di­men­sion­nel, qui per­met l'affichage des réseaux en temps réel et d'en accé­lé­rer l'exploration.

Et autres…

Je vou­drais aus­si men­tion­ner ici iGraph, qui n'est pas un outil de visua­li­sa­tion de réseaux à pro­pre­ment par­ler, mais est une biblio­thèque très com­plète et très effi­cace, dis­po­nible en Python, R et C, qui per­met d'afficher et d'analyser les réseaux. Pour Python uni­que­ment, net­workx est une alter­na­tive inté­res­sante qui per­met de créer des graphes, les lire et les écrire dans la plu­part des for­mats clas­siques.

 

Visualisation de réseaux biologiques online

Si vous n'avez pas le temps ou l'envie d'installer et de prendre en main les outils décrits pré­cé­dem­ment, il existe plu­sieurs pos­si­bi­li­tés de visua­li­ser vos réseaux dans un navi­ga­teur web direc­te­ment :

  • Reac­tome contient un très (très) grand nombre d'informations sur les inter­ac­tions d'entités bio­lo­giques, que l'on peut visua­li­ser direc­te­ment dans le navi­ga­teur, et éven­tuel­le­ment télé­char­ger par la suite.
  • STRING — que j'avais men­tion­né au début de cet article — pour la visua­li­sa­tion glo­bale ou par­tielle des inter­ac­tions entre les pro­téines.
  • Les grandes res­sources de don­nées méta­bo­liques, KEGG et Bio­Cyc, offrent la pos­si­bi­li­té de visua­li­ser les voies méta­bo­liques détaillées, en repré­sen­tant les méta­bo­lites, les réac­tions qui les trans­forment et les enzymes qui cata­lysent ces réac­tions.

Ces outils en ligne, bien que très pra­tiques, ne pro­posent qu'une inter­ac­tion très limi­tée de l'utilisateur avec les réseaux.

Un peu de lit­té­ra­ture :

 

Je vous invite à don­ner votre avis sur ces dif­fé­rents outils de visua­li­sa­tion de réseaux, ain­si que de par­ta­ger ceux que je n'ai pas men­tion­nés ici et que vous trou­vez bien !

Mer­ci à mes relec­teurs : Estel, Oli­vier, Hed­jour, Aki­raHaut­bit et Yoann M.!

P.S. Un work­shop à la Confé­rence Euro­péenne de Bio­lo­gie Com­pu­ta­tion­nelle (ECCB) est orga­ni­sé depuis plu­sieurs années pour par­ta­ger autour la visua­li­sa­tion de réseaux bio­lo­giques — Bio­Net­Vi­sA.



Pour continuer la lecture :


Commentaires

2 réponses à “Tour d'horizon des outils de visualisation des réseaux biologiques”

  1. Pour Gephi, le sup­port des graphes hié­rar­chiques a été sup­pri­mé sans pré­ve­nir de la der­nière release. Pas sym­pa, mais le soft reste bon. Le for­mat d'entrée dédié, gexf, est flexible et facile à géné­rer. Gephi com­prend aus­si un sous-ensemble du dot, ce qui est réso­lu­ment épique (sur­tout que le dot se génère faci­le­ment en python avec les modules gra­ph­viz et/​ou net­workx).

    En plus de net­workx et igraph y a aus­si [graph-tool](https://​graph​-tool​.ske​wed​.de).
    Net­workx étant en pur python, il ne néces­site pas de dépen­dances par­ti­cu­lière et pro­pose une API simple et élé­gante (plus qu'igraph en tout cas). Et lorsqu'il est com­pi­lé avec pypy, ses perfs sont équi­va­lentes à igraph.
    Paraît que graph-tool est encore meilleur.

    Et sinon, use­less tax : [ter­graw](https://​github​.com/​A​l​u​r​i​a​k​/​t​e​r​g​raw), pour des­si­ner des graphes dans votre ter­mi­nal. Ça marche mal, mais c'est fran­che­ment rigo­lo.

  2. […] En fran­çais : Col­la­bo­ra­teurs de l’Encyclopédie, L’Encyclopédie en ligne, Étude du petit monde,  Socio­gramme, Cla­dis­tique, Phi­lo­so­phie des réseaux, Phy­lo­gé­nie, Arbre de déci­sion (appren­tis­sage), Ges­tion des connais­sances, Neo4j, Tri­ples­tore, Gra­ph­QL, Gra­ph­viz, Gephi, D3.js, Viva­Gra­ph­JS, Sig­ma js, Cytoscape.js, Prin­ci­pales biblio­thèques javas­cript : we love graphs (anva­ka), graphes dans Expo­Viz, Visua­li­sa­tion en bio­lo­gie […]

Laisser un commentaire