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

Après les différentes méthodes d'analyse et de représentation de réseaux métaboliques biologiques, je vais vous parler des différents outils de visualisation.  Car oui, la visualisation d'un réseau ou de ses sous-parties peut être le début de son analyse, car elle permet de se rendre compte de sa topologie, de sa complexité, sa connectivité...

Crée avec https://memegenerator.net

En biologie, on peut mettre sous la forme d'un réseau à peu près n'importe quel type de données à condition qu'elles présentent des relations entre elles. Mais, comme d'habitude, il y a des types de réseaux qui sont plus utilisés que d'autres. Parmi les plus courants (liste très loin d'être exhaustive) :

  • réseaux d'interaction de protéines (appelés aussi "PPI networks", où PPI = "protein-protein interaction"). Si vous n'y connaissez rien, vous pouvez en télécharger pour votre organisme préféré sur STRING, une base de données d'interactions de protéines.
  • réseaux métaboliques - que j'ai amplement présentés dans cet article.
  • réseaux de gènes : dans ce type de réseaux sont principalement représentées des relations d'activation/inactivation d'un gène par un autre.
  • réseaux de signalisation : souvent il s'agit de représenter des interactions de type phosphorylation/déphosphorylation qui permettent les cascades de signalisation intra-cellulaires (avec des acteurs comme MAPK, MAPKK, MAPKKK... hey, c'est pas une blague !)

Plusieurs logiciels permettent à l'utilisateur d'interagir avec ces réseaux, de les éditer et de les analyser. Je ne parlerai ici que des plus populaires, mais sachez qu'un nouvel outil est publié au moins une fois par an.

Je vais commencer par les outils les plus généralistes, avec lesquels on peut visualiser et analyser à peu près n'importe quel type de réseau.

 

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

Cytoscape

C'est le plus populaire dans les communautés bioinformatique et biologique. Il est très simple et intuitif à prendre en main, permet de visualiser un réseau avec différents agencements, de colorier les noeuds et les arêtes et de calculer ses statistiques basiques (degré moyen des nœuds, diamètre, nombre de composantes connexes, etc).

Ce qui fait sa popularité, cependant, c'est un très grand nombre de plugins ("Apps") développés par la communauté Cytoscape et que l'on peut télécharger dans l'outil-même. Ces plugins permettent de pousser l'analyse du réseau beaucoup plus loin. Quelques exemples :

  • recherche des nœuds les plus importants dans le réseau, en calculant les centralités (avec CentiScaPe, par exemple)
  • recherche de chemins basée sur les attributs des nœuds ou des arêtes (avec PathExplorer ou CHAT par exemple)
  • enrichissement en termes de Gene Ontology ("GO enrichment") de plus ou moins petits réseaux de gènes ou de protéines, et coloration des nœuds en fonction des termes GO (avec les plugins BiNGO et GOlorize)
  • fouille de littérature basée sur les attributs des nœuds et/ou arêtes sélectionnés (AgilentLiteratureSearch)
  • découverte de motifs (sous-structures de formes particulières et récurrentes) dans le réseau (avec Motif-Discovery)

Cytoscape offre aussi la possibilité d'interaction directe avec les grandes bases de données publiques biologiques (UniProt, KEGG, GO, Saccharomyces Genome Database, etc) en faisant un croisement de données sur les identifiants choisis.

Et si le plugin de vos rêves n'est pas disponible dans la bibliothèque, et que vous savez ce que vous voulez faire et comment, vous pouvez coder votre propre plugin, et par la suite le mettre aussi à disposition de la communauté !

Son plus gros défaut vient de sa consommation excessive des ressources mémoire de l'ordinateur sur lequel il est exécuté (il peut être super lent quoi !) car il est entièrement codé en Java, ce qui peut ralentir fortement les interactions de l'utilisateur avec ce logiciel. C'est donc sur cette note qu'on passe à....

 

Tulip

qui est un outil de visualisation particulièrement bien adapté à de très grandes quantités de données. Ecrit en C++, il offre un certain nombre de possibilités pour l'exploration rapide de réseaux biologiques, notamment un croisement rapide et efficace avec certaines bases de données biologiques (comme KEGG). De plus, en utilisant Tulip, vous soutenez le producteur français, car cet outil est développé au sein du LaBRI (Bordeaux)!

Bien que très puissant et rapide, il est cependant plus difficile à prendre en main que Cytoscape, notamment à cause des "Segmentation fault" à sa première compilation. Il n'offre pas non plus, du moins pour l'instant et à mon humble connaissance, la possibilité d'intégrer facilement des plugins faits maison, et le nombre d'analyses possibles avec est bien inférieur à la diversité offerte par Cytoscape.

 

Gephi

...qui a déjà fait l'objet d'un article sur ce blog il y a quelque temps, je ne vais donc pas paraphraser celui-là. C'est à mon avis un très bon compromis entre la diversité des possibilités offertes par Cytoscape et la rapidité de Tulip. Il utilise notamment un moteur de rendu tridimensionnel, qui permet l'affichage des réseaux en temps réel et d'en accélérer l'exploration.

Et autres...

Je voudrais aussi mentionner ici iGraph, qui n'est pas un outil de visualisation de réseaux à proprement parler, mais est une bibliothèque très complète et très efficace, disponible en Python, R et C, qui permet d'afficher et d'analyser les réseaux. Pour Python uniquement, networkx est une alternative intéressante qui permet de créer des graphes, les lire et les écrire dans la plupart des formats classiques.

 

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édemment, il existe plusieurs possibilités de visualiser vos réseaux dans un navigateur web directement:

  • Reactome contient un très (très) grand nombre d'informations sur les interactions d'entités biologiques, que l'on peut visualiser directement dans le navigateur, et éventuellement télécharger par la suite.
  • STRING - que j'avais mentionné au début de cet article - pour la visualisation globale ou partielle des interactions entre les protéines.
  • Les grandes ressources de données métaboliques, KEGG et BioCyc, offrent la possibilité de visualiser les voies métaboliques détaillées, en représentant les métabolites, les réactions qui les transforment et les enzymes qui catalysent ces réactions.

Ces outils en ligne, bien que très pratiques, ne proposent qu'une interaction très limitée de l'utilisateur avec les réseaux.

Un peu de littérature :

 

Je vous invite à donner votre avis sur ces différents outils de visualisation de réseaux, ainsi que de partager ceux que je n'ai pas mentionnés ici et que vous trouvez bien !

Merci à mes relecteurs: Estel, Olivier, Hedjour, AkiraHautbit et Yoann M.!

P.S. Un workshop à la Conférence Européenne de Biologie Computationnelle (ECCB) est organisé depuis plusieurs années pour partager autour la visualisation de réseaux biologiques - BioNetVisA.

  • À propos de
  • Actuellement postdoc en bioinformatique au CECAD (http://cellnet.cecad.uni-koeln.de) à Cologne (Allemagne). J'ai fait ma thèse en bioinformatique à l'Université Paris-Saclay, au Genoscope (http://www.genoscope.cns.fr/agc/blog/microscope/), après avoir fait le master BIBS à l'Université Paris-Sud sur le campus d'Orsay. Ma spécialité principale est l'analyse du métabolisme et de tout ce qui y touche (réseaux métaboliques, activités enzymatiques, structure des métabolites).

Un commentaire sur “Tour d'horizon des outils de visualisation des réseaux biologiques

  1. Pour Gephi, le support des graphes hiérarchiques a été supprimé sans prévenir de la dernière release. Pas sympa, mais le soft reste bon. Le format d\'entrée dédié, gexf, est flexible et facile à générer. Gephi comprend aussi un sous-ensemble du dot, ce qui est résolument épique (surtout que le dot se génère facilement en python avec les modules graphviz et/ou networkx).

    En plus de networkx et igraph y a aussi [graph-tool](https://graph-tool.skewed.de).
    Networkx étant en pur python, il ne nécessite pas de dépendances particulière et propose une API simple et élégante (plus qu\'igraph en tout cas). Et lorsqu\'il est compilé avec pypy, ses perfs sont équivalentes à igraph.
    Paraît que graph-tool est encore meilleur.

    Et sinon, useless tax : [tergraw](https://github.com/Aluriak/tergraw), pour dessiner des graphes dans votre terminal. Ça marche mal, mais c\'est franchement rigolo.

Laisser un commentaire