R?seau d'interaction prot?ine-prot?ine pour une liste de g?nes dans R
Construire un r?seau d'interactions entre un groupe de g?nes peut aider beaucoup dans la compr?hension des relations entre les ?l?ments de votre liste de g?nes. Il peut sembler difficile ? premier abord de construire un tel r?seau, mais il est moins compliqu? qu'il n'y para?t. Voici une approche que j'utilise.
Les ressources pour obtenir des informations d'interactions prot?ine-prot?ine (PPI, pour proteine-proteine interaction) sont nombreuses. Malheureusement, il n'existe pas une base de donn?es centrale pour ces interactions. Ils existent plusieurs bases de donn?es telles que : IntAct, BioGRID, HPRD, STRING,...
Pour utiliser les API (Application Programming Interface ou Interface de Programmation) d?velopp?es pour interroger ces bases de donn?es, il faudrait du temps. Heureusement, la page web NCBI Entrez gene compile les interactions de BioGRID et HPRD. Ceci est un compromis raisonnable et robuste. D'autres parts, nous pouvons utiliser le package XML de R pour analyser la page Web.
Packages R ? installer
Pour faire l'analyse un ensemble de packages R sont ? installer:
1-Installer le package XML
Code R :
#analyse de la page web install.packages('XML')
2-Installer le package hgu133plus2.db
Code R :
#Pour l'annotation des g?nes source("http://bioconductor.org/biocLite.R") biocLite("hgu133plus2.db")
Pour plus d'informations sur ce package cliquez sur ce lien
3-Installer le package igraph
Code R :
#pour le graphique des interactions install.packages('igraph')
Fonctions R
Les fonctions R que nous allons utiliser sont dans le fichier suivant : proteine_proteine_interaction.r
L'utilisation de ces fonctions est montr?e dans la suite de cet article.
Pour pouvoir faire appel ? ces fonctions sans t?l?charger le fichier, utiliser la commande R :
Code R :
source('https://www.sthda.com/upload/proteine_proteine_interaction.r')
Graphique des interactions prot?ine-prot?ine pour une prot?ine d'inter?t
Soit FOXM1 notre prot?ine d’int?r?t. Pour r?aliser le graphique des prot?ines interagissant avec FOXM1, suivez les instructions ci-dessous.
Le d?tails des fonctions utilis?es est montr? plus bas.
Code R :
#chargement des fonctions source('https://www.sthda.com/upload/proteine_proteine_interaction.r') #-------------------------------------------------------- #1- Obtention de l'identifiant Entrez (NCBI) correspondant ? FOXM1 #-------------------------------------------------------- probesets<-getPROBE("FOXM1") #probesets Affymetrix correspondant ? FOXM1 entrezID<-get_probe_ENTREZID(names(probesets)) # identifiant Entrez pour FOXM1 #-------------------------------------------------------- #2- Obtention de la table des interactions correspondant ? FOXM1 #-------------------------------------------------------- ppi <- get.ppiNCBI(entrezID) #obtention de la table table des interactions prot?ine-prot?ine ppi<-annotate.ppi(ppi) # Annotation de la liste des g?nes de la table des interaction #-------------------------------------------------------- #3- Graphique des interactions correspondant ? FOXM1 #-------------------------------------------------------- library("igraph") gg <- graph.data.frame(ppi) plot(gg, layout = layout.fruchterman.reingold, vertex.label = V(gg)$name, vertex.label.color= "black", edge.arrow.size=0, edge.curved=FALSE )
L'image g?n?r?e est la suivante :
Pour faire le graphique des interactions prot?ine-prot?ine en une ligne de commande :
Code R :
#chargement des fonctions source('https://www.sthda.com/upload/proteine_proteine_interaction.r') table<-interactome("FOXM1") #renvoie la table des interactions et fait le graphique
Vous avez ?galement la possibilit? de fournir une liste de g?nes ? la fonction:
Code R :
#chargement des fonctions source('https://www.sthda.com/upload/proteine_proteine_interaction.r') table<-interactome(genelist) #renvoie la table des interactions et fait le graphique
Le d?tails des fonctions est montr? ci-dessous :
La fonction getPROBE renvoie les probesets Affymetrix correspondants ? un g?ne ou une liste de g?nes.
Code R :
#exemple probeset<-getPROBE(c('FGFR3', 'TP53')) print(probeset)
204379_s_at 204380_s_at 201746_at 211300_s_at "FGFR3" "FGFR3" "TP53" "TP53"
La fonction get_probe_ENTREZID renvoie les identifiants Entrez (NCBI) correspondant ? un probeset ou une liste de probesets
La fonction prend comme param?tre un vecteur de caract?res contenant une liste de probesets et renvoie les identifiants NCBI sans doublons.
Code R :
#exemple id<-get_probe_ENTREZID(c('204380_s_at','211300_s_at')) print(id)
[1] "2261" "7157"
La fonction get.ppiNCBI permet d'obtenir la table des interactions prot?ine-prot?ine pour un g?ne ou une liste de g?nes.
Les donn?es sont r?cup?r?es ? partir de la page web NCBI.
La fonction prend comme param?tre les identifiants ENTREZ (NCBI) de la liste des g?nes
Code R :
#exemple ppi<-get.ppiNCBI(c("55635", "2305"))
La fonction annotate.ppi permet d'annoter la liste des g?nes de la table des interactions en utilisant les donn?es homo sapiens(org.Hs.eg.db)
Code R :
#exemple ppi<-annotate.ppi(ppi)#ppi= table des interactions
Elle renvoie un dataframe. Vous pouvez ?crire ce dataframe dans un fichier texte et l'importer dans Cytoscape directement, mais vous pouvez ?galement afficher votre r?seau d'interactions directement dans R en utilisant le package igraph.
Source
http://brainchronicle.blogspot.fr/