• Aucun résultat trouvé

a. Pourquoi un nouveau logiciel ?

Il existe de nombreux logiciels permetta d i g e de d e i-omiques et de les représenter en réseaux, par exemple Cytoscape (Shannon et al. 2003), VisANT (Hu et al. 2013), 3Omics (Kuo et al. 2013) ou Gephi (Bastian et al. 2009). A ab a i e, a habi de d i i e Cytoscape car il présente plusieurs avantages comme a ibi i d a a i e

a a e (Otasek et al. 2019) e a ibi i d aj e de b e plugins, tels que Bingo104F 110

108 https://www.ijm.fr/30/spectrometrie-de-masse.htm [Accessible le 01/06/2020] 109 https://github.com/thomasdenecker/MONET [Accessible le 01/06/2020] 110 http://apps.cytoscape.org/apps/bingo [Accessible le 05/05/2020]

(enrichissement fonctionnel) ou stringApp105F

111 (import et extension des réseaux aide de données provenant de la base de données STRING).

Bien que Cytoscape soit e f a e i e d i i a i , il présente certaines limites. P c e ce , i e ce ai e d a i de c e ce e g a a i automatiser i i a i de C ca e. Si a a i a i e a i e e ace, e e a e ce ai e a e d c i d e ea sont très répétitives, notamment les étapes de personnalisations graphiques (formes, couleurs, positions des sommets). De plus, il est nécessaire de préparer les données pour pouvoir les importer dans le logiciel et générer le réseau. Une fois les réseaux générés, nous avons identifié plusieurs problématiques lors de leur exploration systématique :

1. Multiplicité des bases de données à parcourir pour obtenir diverses informations en relation avec les fonctions des gènes (ou des protéines) représentées dans le réseau ; 2. A a i f c i e e i i e a e e GO, a e d a e d e sont

disponibles dans la base de données STRING ;

3. Personnalisation du réseau (couleur, taille et positionnement des sommets, couleur des a e , e c.) i est pas dynamique, ce qui impose de regénérer le réseau très fréquemment.

Toutes ces problématiques étaient partagées par nos collègues travaillant dans le domaine de la protéomique. Ils souhaitaient un outil automatique capable de récupérer toutes les connexions connues a i d une liste de protéines (STRING), d a i a e ab e c e a e informations principales pour chaque élément du réseau et un moyen de mettre en évidence des ensembles (clusters) d e (e ichi e e f c i e , a a i a e e , e c). Le tout sans nécessiter de compétences techniques en informatique.

Dans ce contexte, a d cid de c e i MONe . C e bPea App et Pixel, il agi d e application WEB. MONet permet de visualiser des réseaux de gènes ou de protéines et de récupérer automatiquement des informations supplémentaires concernant les éléments qui composent ces réseaux. MONet i i e via un navigateur WEB (Chrome, Firefox, etc.) et permet d'effectuer toutes les étapes pour créer un réseau en seulement quelques

L a ica i Web MONe i g a i e a i a i a i de ea i-omiques

clics de souris. Cha e g e e da e ea e acc ag d a de synthèse téléchargeable, constitué des informations principales présentes dans les bases de données de f e ce (STRING e U iP a e e e). L e e b e de d e c ec e e structurées (enrichissement fonctionnel, lien entre les éléments du réseau, etc.) est regroupé dans un fichier Excel.

b. Informations techniques Reproductibilité

Afin de garantir la reproductibilité de e a i de ea , nous avons d cid d utiliser les technologies de développement Open Source les plus courantes : Github106F

112 pour le versionnage du code et Docker107F

113 pour garantir le même environnement de travail (même système d'exploitation, même version des outils, etc.). L e e b e de packages et outils ce ai e a b f c i e e de a ica i est installé dans cet environnement qui est téléchargeable sur une machine personnelle (travail local) ou sur un serveur via Docker Hub108F

114 (accès à distance).

Application dynamique

Pour fournir une interface dynamique, la partie front-end109F

115 a été développée avec le package R Shiny (Chang et al. 2019). Pour enrichir l'expérience utilisateur, des packages110F

116 complémentaires à Shiny ont été utilisés :

- shinyjs (Javascript) pour dynamiser l'application (Attali 2020); - shinyhelper pour envoyer des messages d'aide (Attali et al. 2018) ;

- shinydashboard et shinydashboardPlus pour créer un dashboard (Chang et al. 2018; Granjon 2019),

- shinyWidgets pour avoir un plus grand choix de widgets (Perrier et al. 2020),

112 https://github.com/ [Accessible le 04/05/2020] 113 https://www.docker.com/ [Accessible le 04/05/2020]

114 https://hub.docker.com/repository/docker/tdenecker/monet [Accessible le 04/05/2020]

115 Eléments du site que nous voyons à l'écran de a a iga i e i e a ica i et avec lesquels nous pouvons interagir (boutons, lie , ). P i e e , i agi de i e face g a hi e.

116 La différence entre un package et une librairie est expliquée dans la ressource numérique : https://thomasdenecker.github.io/thesisWebsite/annexes/packageLibrary/ [Accessible le 10/08/2020].

- shinycssloaders pour avoir une barre de progression lors des calculs et des imports de données (Sali et al. 2020)

- colourpicker un sélecteur de couleur pour la personnalisation du réseau (Attali 2017).

Sorties graphiques dynamiques

Pour obtenir des sorties graphiques dynamiques, les packages suivants ont été utilisés : - plotly pour obtenir des histogrammes dynamiques (Sievert 2018).

- visNetwork pour générer le réseau de gènes / protéines (Almende B.V. et al. 2019) et igraph pour calculer le positionnement idéals de d (Csardi et al. 2006) ; - le visualiseur ngl pour afficher les structures 3D des protéines (Rose et al. 2018; 2015). - DT pour organiser les données sous forme de tableaux dynamiques (tris, filtres et

exports) (Xie et al. 2019).

Récupération des données via des APIs

Une Application Programming Interface ou API est un moyen permettant à des applications de communiquer entre elles et d'échanger mutuellement des services ou des données. Dans notre cas, les API utilisées permettent de récupérer des données directement dans les bases de données associées. Nous avons utilisé des APIs pour les bases de données STRING111F

117 et UniProt112F

118. Un point important est à noter c ce a API de STRING : i e a ib e

de c e ea de de 500 d . La i e a i e de STRING

e d i e a ba e de d e c e e de i e ge di ec e e . C e bjec if

e ie de MONe e d e e de ea , ce e i i a i e a a e b être un

b e. E effe , e e ea de de 500 d e e e ent complexe. De

, i de a ba e de d es aurait présenté 3 problèmes majeurs :

- Un espace de stockage important Le fichier zippé contenant la base de données STRING occupe 70 Go ;

117 http://version11.string-db.org/help/api/ [Accessible le 04/05/2020] 118 https://www.uniprot.org/help/api [Accessible le 04/05/2020]

L a ica i Web MONe i g a i e a i a i a i de ea i-omiques

- Une nécessité de mise à jour Si la base de données est stockée localement, les données ne sont plus constammen j c e a ec API ;

- Une écriture des requêtes Lorsque les API sont utilisées, les requêtes à la base de données sont automatiquement générées et optimisées par les créateurs de la base. Des requêtes ont également été effectuées sur des bases de données externes aide d package httr (Wickham 2019). Pour lire les données reçues, le package xml2 a été utilisé pour celles au format XML (Wickham et al. 2018), le package jsonlite pour celles au format JSON (Ooms 2014) et sequinr pour celles au format fasta (Charif et al. 2007). E fi , e a ion e ga i a i de d e réalisées avec les packages dplyr et reshape2 (Wickham et al. 2020; Wickham 2007).

P c d e d i a a i

MONet peut être installé sur une machine locale (Linux, MacOS X et Windows 10) ainsi que

e e . L d d ie e e e , a ica i eut être utilisée

simultanément par plusieurs utilisateurs. Toutes les informations nécessaires pour déployer a ica i di ib e Gi H b113F

119. Les exigences minimales sont un OS 64 bits, Docker installé dans la version community edition (> v18) et un accès Internet. Pour rendre

i a a i de MONe a i e ib e, de c i d'i a a i cha e OS disponibles. Finalement, aucune ligne de code n'est requise par l'utilisateur pour lancer tous les composants nécessaires au bon fonctionnement de l'application.

c. E emple d ili a ion

A ec MONe , bjec if d a a e aie i e . N hai i a e e e util ca ab e de d ec e de c e i e e e g e / i e a i de d e d e e i

(tra c i i e) e de e e e ce c e i a f e d ea . E i e,

souhaitions savoir si les connexions découvertes étaient décrites dans la littérature. Enfin, nous souhaitions regrouper les principales informations disponibles pour un gène / une protéine dans une même interface pour faciliter e a i d g a he e i e de a c i de i e bases de données. Afin de gara i a e d c ibi i de e a i , e e b e de a

e cha geab e e a d exploration est disponible pour tous les gènes / protéines représentés dans le réseau (accompagné de la version de tous les outils utilisés).

Génératio de ea a i d e i e de g e de i e

Da ce e ie e e e, i i a e e eigne une liste de gènes ou de protéines, que nous appellerons éléments pour simplifier, et MONet crée un réseau automatiquement (Figure 30). La i e d e e e c i e da e e de e e i e via un fichier texte. À partir de cette liste, MONet recherche des liens entre ces éléments et des éléments non présents dans la liste initiale sont ajoutés, grâce aux informations de la base de données STRING.

L i i a e e a a e e b e de ea e i e e e aj ( a

défaut, 5 nouveaux éléments par élément de la liste initiale). Pour les distinguer, les éléments de la liste initiale sont représentés sous forme de carré dans le réseau et sous forme de rond pour les nouveaux éléments.

Figure 30 Exemple de réseau obtenu lors de la recherche d'une liste de protéines de la levure Saccharomyces cerevisiae. À gauche ne cap e d c an de la page WEB de MONe , dans laquelle la liste de gènes/protéines peut être saisie. À droite le réseau obtenu, après interrogation de la base de données STRING.

À chaque exploration, un Dashboard est mis à jour pour fournir 4 informations importantes : (1) e b e d e da a i e i i ia e, (2) e b e d e i a

L a ica i Web MONe i g a i e a i a i a i de ea i-omiques

da a ba e de d e STRING, (3) e b e d e da e ea fi a , e (4) le nombre de connexions dans le graphe final.

Figure 31 Exemple de dashboard obtenu lors de la recherche d'une liste de protéines de la levure S. cerevisiae. Il agi de la même liste que celle présentée dans la figure précédente.

Da e ca i i a e i e fichie , celui-ci d i e a i i c d e colonne contenant la liste des éléments à inclure dans e ea . U e aide i est proposée. Une prévisualisation permet aussi i i a e de vérifier la bonne lecture de ses données, de vérifier que le fichier est composé de plusieurs colonnes, etc. L i i a e e également e eig e a c e i e i a de i e d e ( a d fa , a e i e). I e a i ib e d i e d autres colonnes du fichier pour utiliser des fonctionnalités avancées. Parmi ces fonctionnalités, il y a la possibilité de :

- Calculer un réseau de co-expression Dans un tel réseau, les éléments sont représentés a de d e e i i i de e e e fi d'e e i de de éléments sont représentées par des arêtes. Pour déduire un réseau, il est nécessaire de (1) calculer une mesure de la distance entre les profils d'expression des gènes (distance euclidienne par exemple), (2) définir une valeur seuil telle que si la distance entre deux profils d'expressi de g e e i f ie e a e i , e d c e da e ea sont reliés par une arête et (3) appliquer des algorithmes dédiés pour calculer les i i de d da e ace bidi e i e , de e e e e e g e c - exprimés sont e e a de d i i c e c e c e i ci- dessous avec les gènes A et B (Figure 32 Réseau rouge à droite) et les gènes C, D et E (Figure 32 Réseau gris à gauche). Actuellement, deux méthodes sont disponibles (ca c d e di a ce e c idie e a ec a f c i dist() e ca c d e c a i ).

Figure 32 Représentation schématique d'un réseau d l men co-exprimés. Ce e fig e e e ai e de l a ticle présenté page 149.

- Définir la taille des éléments en fonction de ab da ce Grâce à cette fonctionnalité, il est possible de distinguer les éléments très abondants (grande taille) et des éléments peu abondants (petite taille).

- C e e e e f c i d diff e ie d e e i Grâce à cette fonctionnalité, il est possible de mettre en évidence des clusters d léments qui ont une a g e a i /di i i de e i ea d e e i .

- Colorer les éléments e f c i d c e de a i Grâce à cette fonctionnalité, il

e ib e de e e e ide ce de g e de g e i a e d a e .

- Change a f e de e e f c i d e a a i Dans notre étude sur h a ie d fe chez C. glabrata, nous avons mis en évidence deux types de gènes : type I et type II (voir page 128). Grâce à cette fonctionnalité, il est possible de mettre en évidence ces types particuliers et découvrir rapidement avec quels éléments ils sont connectés.

- Aj e de a a i da e a d e a i Lors de a g a i d

a d e a i e d , e e i f a i di ib e

c ec e . I e ib e e a a i i i c plète ou que nous ayons une annotation personnelle. Grâce à cette fonctionnalité, il est possible d aj e ce informations dans le rapport.

Une fois toutes les colonnes renseignées, toutes les zones de personnalisation sont automatiquement mises à jour e e e i i a e de e i i e .

L a ica i Web MONe i g a i e a i a i a i de ea i-omiques

Figure 33 E emple de g aphe ob en pa i d n fichie de donnée d e p e ion de gènes de la levure C. glabrata.

L e de d e d e e i e eig e , hi gramme de la distribution des distances et un histogramme de la distribution des données d e e i g e du dashboard précédemment présenté.

Figure 34 Exemple de la page Overview après l'import d'un fichier.

Collecte automatique et regroupement des informations disponibles pour les éléments du réseau

Au final, MONe e e e eg e e d i f a i e a de ba e de d e UniProt (Consortium 2019), Refseq (O Lea e a . 2016), KEGG (Kanehisa et al. 2000), GeneCards (Stelzer et al. 2016), ensembl (Yates et al. 2020), neXtProt (Zahn-Zabal et al. 2020), CGD (Skrzypek et al. 2017), SGD (Cherry et al. 2012), Pfam (El-Gebali et al. 2019), Smart

(Letunic et al. 2018), Reactome (Jassal et al. 2020), Interpro (Mitchell et al. 2019), PubMed114F 120, Quick GO et GO consortium (Carbon et al. 2019) et la PDB (Burley et al. 2019). Pour que i i a e i e a ega de e a i ai i e e e i f a i c ectées, il e g e e age HTML. Ce fichie c ie a i e e b e de e i de i

i i e b e i . U e ai d fichie g e e Figure 35.

Figure 35 Extrait du rapport exporté du gène TP53 de l'Humain.

L a ica i Web MONe i gration et la visualisation de réseaux multi-omiques

Enrichissement fonctionnel

Pa i e d e di ib e ia API de STRING, i e ib e de c e de informations d e ichi e e f c i e , ia e GO e 115F

121 (avec une distinction entre les types cellular component, biological process et molecular function), les termes Pfam, les termes InterPro, les termes Reactome, les termes UniProt et les termes KEGG. Chaque terme présentant un enrichissement important peut être sélectionné, ce qui change la coloration des éléments du réseau associé.

d. Conclusion et perspectives

Les objectifs de MONet d aide a d c e e de e e c e i e e de g e / protéines par une co-expression, de récupérer les connexions déjà connues dans la base de données STRING et de générer un réseau simple à explorer (Figure 36). Grâce à Docker, i a a i de diff e i ce ai e e a a i e . En effet, tous les packages et leurs dépendances sont installés dans l'image disponible sur Docker Hub. Grâce à l'utilisation de Shiny, l'utilisateur est guidé pour saisir les différents paramètres avec des bulles d'informations qui sont disponibles à chaque étape. U a d i f a i s est disponible pour chaque gène / protéine d ea . L e e b e de d e g e e i e e téléchargeable via un fichie E ce . L i i a e e ai i a ega de a a e. À aide des différents packages a ci Shi , i i a e e e a i e e ea (c e , forme, ai e de d , e c.). E fi , i i a e e e e e ide ce ce ai e caractéristiques dans le réseau comme un enrichissement fonctionnel. En conclusion, nous proposons une solution totalement Open Source, gratuite et conviviale pour découvrir et explorer de potentielles nouvelles interactions entre des gènes / protéines à partir de données multi-omiques.

121 Pour en savoir sur les GO terms, nous proposons une ressource numérique : https://thomasdenecker.github.io/thesisWebsite/annexes/geneOntology/ [Accessible le 10/08/2020].

Figure 36 Résumé schématique des différentes étapes de fonctionnement du logiciel MONet pa i d n ablea de données d e p e ion de g ne .

MONet a été implémenté pendant le confinement lors de la pandémie de la COVID-19. Au e de c i e de ce e a ie du manuscrit (juin 2020), a ions pas encore eu les retours d e ie ce de i i a e . En tant que développeur, je peux cependant envisager

ie ie d a i a i telles que :

- L i e a i de e e a che de d ec i de c e i A j d h i,

deux méthodes sont proposées : a ca c de di a ce e a e ca c d e corrélation. Nous pourrions ajouter par exemple les packages R WGCNA116F

122 ou coexnet117F

123 .

- L i e a i de h de d e ichi e e f c i e A j d h i,

e ichi e e f c i e di ib e e ce i ca c a STRING. Ce e ea serait particulièrement intéressante dans le cas où STRING ne fournirait pas d i f a i e e a a e e e acc e i e de e e GO disponibles en ligne.

122 https://horvath.genetics.ucla.edu/html/CoexpressionNetwork/Rpackages/WGCNA/ [Accessible le 04/05/2020] 123 https://www.bioconductor.org/packages/release/bioc/vignettes/coexnet/inst/doc/coexnet.pdf [Accessible le 04/05/2020]

La f a i FAIR_Bi f a e i age de a i e i f a i e i soutiennent la reproductibilité des résultats

V. La f

a i FAIR_Bi f

a

e i age de a i e

Documents relatifs