silico.biotoul.fr
 

M1 BBS Graphes TP Visualisation

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (Sélection, filtres et opérations sur les graphes)
 
(36 intermediate revisions not shown)
Line 1: Line 1:
= Données =
= Données =
-
Les données sur lesquelles vous allez travailler provienne de la base de données STRING v8.2. Tout d'abord, '''trouvez''' le site de STRING et '''visualisez''' les partenaires de wbbJ d'''Escherichia coli'' K12-MG1655. Les "boutons" ''confidence'', ''evidence'' et ''actions'' permettent de modifier le rendu du graphe d'interaction en affichant soit des arêtes de tailles reflétant le niveau de confiance du lien, soit des multi-arêtes indiquant les sources de données intervenant dans un lien, soit le type d'interaction. Le bouton ''more'' permet de récupérer davantage de protéines.
+
Les données sur lesquelles vous allez travailler provienne de la base de données STRING v11.0. Tout d'abord, '''trouvez''' le site de STRING et '''visualisez''' les partenaires de ''dnaJ'' d'''Escherichia coli'' K12-MG1655. Le menu ''Settings'' permet de choisir le rendu du graphe avec des des liens ''confidence'' ou ''evidence'' en affichant soit des arêtes de tailles reflétant le niveau de confiance du lien, soit des multi-arêtes indiquant les sources de données intervenant dans un lien, soit le type d'interaction. Dans le même menu, on peut sélectionner le type de sources de données affichées (textmining, experiments, ...). On peut aussi afficher davantage de sommets avec le bouton ''More''.
 +
 
 +
Dans la partie ''Download'' du site, vous allez récupérer des fichiers pour ''Escherichia coli''. Il faut d'abord restreindre les données à l'organisme considéré. Vous utiliserez la souche K-12 substr. MG1655. Ensuite récupérez :
 +
* le fichier contenant les liens avec les scores détaillés pour chaque type de données : <tt>511145.protein.links.detailed.v11.0.txt.gz</tt>
 +
* le fichier contenant la description des sommets : <tt>511145.protein.info.v11.0.txt.gz</tt>
 +
 
 +
Décompressez-les ensuite pour répondre aux questions suivantes :
 +
* combien de protéines ?
 +
* combien d'arêtes ?
 +
 
 +
Le graphe étant un peu gros pour les exercices qui suivent vous allez filtrez les liens pour ne garder que ceux qui ont un score supérieur ou égal à 700 parmi les types ''neighborhood'', ''coexpression'' et ''experimental''.
 +
 
 +
<!--
 +
cat 511145.protein.links.detailed.v11.0.txt  | awk '{if ($3>=700 ||$6>=700 || $7>=700) {print}}' > 511145.protein.links.filtered.txt
 +
cat 511145.protein.links.detailed.v11.0.txt  | awk '{if ($1<$2 && ($3>=700 ||$6>=700 || $7>=700)) {print}}' > 511145.protein.links.filtered.undirected.txt
 +
-->
= Visualisation avec Cytoscape =
= Visualisation avec Cytoscape =
[http://www.cytoscape.org Cytoscape] est un logiciel de visualisation et d'exploration de graphes. Il a été développé dans le cadre de graphes et réseaux biologiques. Un certain nombre de ''plugins'' ou greffons sont disponibles par exemple pour récupérer/télécharger des voies métaboliques (BioCyc) directement depuis Cytoscape.
[http://www.cytoscape.org Cytoscape] est un logiciel de visualisation et d'exploration de graphes. Il a été développé dans le cadre de graphes et réseaux biologiques. Un certain nombre de ''plugins'' ou greffons sont disponibles par exemple pour récupérer/télécharger des voies métaboliques (BioCyc) directement depuis Cytoscape.
 +
== Import d'un graphe à partir d'un fichier ==
 +
 +
Importez le graphe à partir du menu ''File → import → Network from file...''. Il faut alors dans les paramètres avancés changer le délimiteur de colonnes et ensuite spécifier quels sont les attributs correspondant aux extrémités des arêtes.
 +
 +
<!--
== Importation d'un fichier ''sif'' et algorithmes de dessin==
== Importation d'un fichier ''sif'' et algorithmes de dessin==
-
Vous allez dans un premier temps utiliser un graphe au format [http://cytoscape.org/manual/Cytoscape2_8Manual.html#SIF%20Format sif] (simple interaction format). Il s'agit d'un format de stockage très simple de la forme :
+
Vous allez dans un premier temps utiliser un graphe au format [http://manual.cytoscape.org/en/stable/Supported_Network_File_Formats.html#sif-format SIF] (simple interaction format). Il s'agit d'un format de stockage très simple de la forme :
-
  ABC    coexpression   YAEE
+
  ABC    stringdb   YAEE
-
  ABC    coexpression   METK
+
  ABC    stringdb   METK
-
  ABC    coexpression   META
+
  ABC    stringdb   META
-
  ACCA    coexpression   FABD
+
  ACCA    stringdb   FABD
-
  ACCA    coexpression   PPA
+
  ACCA    stringdb   PPA
-
  ACCB    coexpression   HPT
+
  ACCB    stringdb   HPT
  ...
  ...
-
où ''coexpression'' est le type de l'arête.
+
où ''stringdb'' est le type de l'arête.
'''Récupérez''' le fichier [[Media:String_EcolA_coexpression.sif|String_EcolA_coexpression.sif]] contenant une partie du réseau d'interaction basé sur la co-expression chez ''Escherichia coli'' K12 avec un seuil de 0.5 pour la confiance dans une arête et '''ouvrez'''-le dans Cytoscape (menu <tt>File->Import->Network</tt>).
'''Récupérez''' le fichier [[Media:String_EcolA_coexpression.sif|String_EcolA_coexpression.sif]] contenant une partie du réseau d'interaction basé sur la co-expression chez ''Escherichia coli'' K12 avec un seuil de 0.5 pour la confiance dans une arête et '''ouvrez'''-le dans Cytoscape (menu <tt>File->Import->Network</tt>).
-
Par défaut, les sommets du graphes sont disposés sur une grille. '''Expérimentez''' différents algorithmes de dessin (layout in english donc dans le menu <tt>layout</tt>). Attention, certains ne sont pas adaptés et d'autres plutôt gourmands en temps de calcul.
+
Si le graphe est "gros", les sommets du graphes sont disposés sur une grille. Pour celui-ci, un algorithme de dessin est utilisé pour disposer les sommets. '''Expérimentez''' différents algorithmes de dessin (''layout'' in english donc dans le menu <tt>layout</tt>). Attention, certains ne sont pas adaptés et d'autres plutôt gourmands en temps de calcul.
 +
-->
== Attributs sur les sommets et arêtes ==
== Attributs sur les sommets et arêtes ==
-
Il est possible de charger des attributs associés aux sommets et/ou aux arêtes. Il s'agit là encore d'un format très simple. Pour les attributs portant sur les sommets, il prend la forme suivante :
+
<!--
-
  Description
+
Il est possible de charger des attributs associés aux sommets et/ou aux arêtes. Il s'agit là encore d'un format très simple : du texte de type CSV. Pour les attributs portant sur les sommets, il prend la forme suivante :
-
  AAS = 2-acyl-glycerophospho-ethanolamine acyltransferase; acyl-acyl-carrier protein synthetase
+
  Gene    Description
-
  AAT = leucyl, phenylalanyl-tRNA-protein transferase
+
  AAS     2-acyl-glycerophospho-ethanolamine acyltransferase; acyl-acyl-carrier protein synthetase
-
  ABC = ATP-binding component of a transporter
+
  AAT     leucyl, phenylalanyl-tRNA-protein transferase
 +
  ABC     ATP-binding component of a transporter
  ...
  ...
-
où la première ligne contient le nom de l'attribut. Vous trouverez plus d'information dans la [http://cytoscape.org/manual/Cytoscape2_8Manual.html#Node%20and%20Edge%20Attributes documentation de Cytoscape].
+
où la première ligne contient le nom de l'attribut. Vous trouverez plus d'information dans la [http://manual.cytoscape.org/en/stable/Node_and_Edge_Column_Data.html documentation de Cytoscape].
Pour les arêtes, le format est très similaire :
Pour les arêtes, le format est très similaire :
  coexpression
  coexpression
-
  ABC (coexpression) YAEE = 831
+
  ABC (stringdb) YAEE = 831
-
  ABC (coexpression) METK = 590
+
  ABC (stringdb) METK = 590
-
  ABC (coexpression) META = 663
+
  ABC (stringdb) META = 663
-
  ACCA (coexpression) FABD = 537
+
  ACCA (stringdb) FABD = 537
-
  ACCA (coexpression) PPA = 543
+
  ACCA (stringdb) PPA = 543
-
  ACCB (coexpression) HPT = 566
+
  ACCB (stringdb) HPT = 566
  ...
  ...
 +
-->
-
'''Récupérez''' le fichier contenant les annotations des gènes - [[Media:EcolA_Genes_Description.noa|EcolA_Genes_Description.noa]] - et '''chargez'''-le (Menu <tt>File->Import->Node Attributes</tt>) dans Cytoscape. De même, pour les niveaux de confiance sur les liens de coexpression avec le fichier [[Media:String_EcolA_coexpression.eda|String_EcolA_coexpression.eda]].
 
-
Comme dans la plupart des logiciels et systèmes d'exploitation, un clic droit sur un objet fait apparaître un menu contextuel dans Cytoscape. Un clic droit sur une arête ou un sommet fait apparaître un tel menu. '''Remarquez''' la dernière entrée du menu : ''LinkOut'' qui permet d'ouvrir une URL, typiquement à partir de l'identifiant du sommet ou de l'arête, ce qui permet par exemple d'atteindre la page de description d'une protéine dans UniProt. Il est possible d'ajouter ses propres "liens externes" à partir du menu <tt>Edit->Preferences->Properties...</tt> : pour un lien externe à partir d'un noeud, il faut ajouter une propriété <tt>nodelinkouturl.NOM_DU_LIEN</tt>, par exemple et c'est ce que vous devrez faire <tt>nodelinkouturl.CGDB</tt>. Dans le champ valeur, il s'agit de spécifier l'URL avec une ou plusieurs variables, ici nous utiliserons simple l'identifiant du noeud noté %ID% : <tt><nowiki>http://www-abcdb.biotoul.fr/#/entry/findbestmatch/ID/EcolA.%ID%</nowiki></tt>. Pour les liens sur les arêtes, il s'agit de la propriété <tt>edglelinkouturl.NOM_DU_LIEN</tt> avec %ID1% et %ID2% les extrémités de l'arête, cf. la [http://cytoscape.org/manual/Cytoscape2_8Manual.html#Linkout documentation de Cytoscape] pour plus de détails.
+
Importez le fichier précédemment récupéré <tt>511145.protein.info.v11.0.txt</tt> à partir du menu ''File → import → Table from file...'' en modifiant le délimiteur de colonnes si besoin, '''en précisant bien''' s'il s'agit de données sur les sommets ou les arêtes, et en indiquant quelle colonne permet d'identifier les sommets.
 +
<!--
 +
'''Récupérez''' le fichier contenant les annotations des gènes - [[Media:EcolA_Genes_Description.tab|EcolA_Genes_Description.tab]] - et '''chargez'''-le (Menu <tt>File->Import->Table</tt>) dans Cytoscape. De même, pour les niveaux de confiance sur les liens de coexpression avec le fichier [[Media:String_EcolA_coexpression_scores.attrs|String_EcolA_coexpression_scores.attrs]].
 +
-->
-
== Rendu à partir des valeurs des attributs : ''VizMapper'' ==
+
Comme dans la plupart des logiciels et systèmes d'exploitation, un clic droit sur un objet fait apparaître un menu contextuel dans Cytoscape. Un clic droit sur une arête ou un sommet fait apparaître un tel menu. '''Remarquez''' l'avant-dernière entrée du menu : ''Extrenal Links'' qui permet d'ouvrir une URL, typiquement à partir de l'identifiant du sommet ou de l'arête, ce qui permet par exemple d'atteindre la page de description d'une protéine dans UniProt. Il est possible d'ajouter ses propres "liens externes" à partir du menu ''Edit → Preferences → Properties...'' : pour un lien externe à partir d'un noeud, il faut ajouter une propriété <tt>nodelinkouturl.NOM_DU_LIEN</tt> (dans la section <tt>linkout</tt>), par exemple et c'est ce que vous devrez faire <tt>nodelinkouturl.STRING</tt>. Dans le champ valeur, il s'agit de spécifier l'URL avec une ou plusieurs variables, ici nous utiliserons simple l'identifiant du noeud noté %ID% : <tt><nowiki>https://string-db.org/network/%ID%</nowiki></tt>.  
-
'''Explorez''' à présent les possibilités offertes par l'outil ''VizMapper''. '''Essayez''' notamment de faire afficher des épaisseurs d'arêtes proportionnelles à la confiance du lien de coexpression.
+
 +
Pour les liens sur les arêtes, il s'agit de la propriété <tt>edglelinkouturl.NOM_DU_LIEN</tt> avec %ID1% et %ID2% les extrémités de l'arête, cf. la [http://manual.cytoscape.org/en/stable/Linkout.html documentation de Cytoscape] pour plus de détails.
 +
 +
== Rendu à partir des valeurs des attributs ==
 +
'''Explorez''' à présent les possibilités offertes par l'onglet ''Style'' (à gauche). '''Essayez''' notamment de faire afficher des épaisseurs d'arêtes proportionnelles à la confiance du lien de coexpression ainsi qu'un dégradé reflétant le score de l'attribut ''experimental'' (bleu → jaune par exemple).
== Sélection, filtres et opérations sur les graphes ==
== Sélection, filtres et opérations sur les graphes ==
-
Une boite de recherche est disponible au niveau de la barre d'outil. '''Essayez'''-la pour par exemple sélectionner le gène wbbJ. Il s'agit en fait d'un filtrage sur la sélection de tous les sommets (ou toutes les arêtes). Pour élaborer un filtre plus complexe, vous avez à gauche de la boite de recherche un bouton vous permettant d'éditer les paramètres du filtre. '''Sélectionnez''' toutes les arêtes ayant une valeur de coexpression supérieure à 800. Une fois la sélection réalisée, les boutons encore plus à gauche vous permettent d'extraire un sous graphe à partir de la sélection. Par défaut, il s'agit d'un sous graphe induit par les sommets sélectionnés. Après avoir réalisé la sélection des arêtes >800, le menu <tt>Select->Nodes->Nodes connected by selected edges</tt> vous permet de sélectionner les extrémités des arêtes sélectionnées.
+
Une boite de recherche est disponible au niveau de la barre d'outils. '''Essayez'''-la pour, par exemple, sélectionner le gène wbbJ. Il s'agit en fait d'un filtrage sur la sélection de tous les sommets (ou toutes les arêtes).
-
'''Importez''' à présent le graphe contenu dans le fichier [[Media:String_EcolA_experimental.sif|String_EcolA_experimental.sif]] correspondant aux données STRING portant sur les interactions protéine-protéine. '''Importez''' également la confiance de ces relations à partir du fichier [[Media:String_EcolA_experimental.eda|String_EcolA_experimental.eda]].
+
Pour élaborer un filtre plus complexe, vous avez sur la gauche l'onglet ''Filter'' vous permettant d'éditer les paramètres du filtre. '''Sélectionnez''' toutes les arêtes ayant une valeur de coexpression ET une valeur experimental supérieures ou égales à 800.
 +
 
 +
Une fois la sélection réalisée, un bouton à gauche de la boite de recherche vous permettent d'extraire un sous graphe à partir de la sélection. Par défaut, il s'agit du sous graphe induit par les sommets sélectionnés : <tt>New Network From Selection (From selected nodes, selected edges)</tt>. Ou alors, après avoir réalisé la sélection des arêtes >=800, le menu ''Select → Nodes → Nodes connected by selected edges'' vous permet de sélectionner les extrémités des arêtes sélectionnées.
 +
 
 +
<!--
 +
'''Importez''' à présent le graphe contenu dans le fichier [[Media:String_EcolA_experimental.sif|String_EcolA_experimental.sif]] correspondant aux données STRING portant sur les interactions protéine-protéine. '''Importez''' également la confiance de ces relations à partir du fichier [[Media:String_EcolA_experimental_scores.attrs|String_EcolA_experimental_scores.attrs]].
 +
 
 +
Vous pouvez fusionner les 2 graphes en utilisant <tt>Tools->Merge->Networks...</tt> en les sélectionnant tous les deux. Une fois cette opération réalisée, '''modifiez''' le rendu pour avoir des épaisseurs d'arêtes proportionnelles à la coexpression et un dégradé de couleur d'arête reflétant la confiance dans le lien d'interaction protéine-protéine.
-
Vous pouvez fusionner les 2 graphes en les sélectionnant tous les deux (maintenir la touche ''Control'' enfoncée) puis en allant dans le menu <tt>Plugins->Advanced Network Merge</tt>. Une fois cette opération réalisée, '''modifiez''' le rendu pour avoir des épaisseurs d'arêtes proportionnelles à la coexpression et un dégradé de couleur d'arête reflétant la confiance dans le lien d'interaction protéine-protéine.
 
== Importation d'un graphe au format ''table''==
== Importation d'un graphe au format ''table''==
Il est également possible d'importer un graphe dans un format tabulé, ce qui permet de charger plusieurs attributs en même temps sur les arêtes. '''Récupérez''' le fichier [[Media:String_EcolA_selection.tab|String_EcolA_selection.tab]] qui contient les deux fichiers précédents ainsi que le score combiné des différentes sources disponibles dans STRING. Le fichier est de la forme :
Il est également possible d'importer un graphe dans un format tabulé, ce qui permet de charger plusieurs attributs en même temps sur les arêtes. '''Récupérez''' le fichier [[Media:String_EcolA_selection.tab|String_EcolA_selection.tab]] qui contient les deux fichiers précédents ainsi que le score combiné des différentes sources disponibles dans STRING. Le fichier est de la forme :
  id1 id2 experimental coexpression combined
  id1 id2 experimental coexpression combined
-
  AAS SECA 546 0 546
+
  AAS SECA 546 0 546
-
  AAS ACPP 653 0 653
+
  AAS ACPP 653 0 653
-
  ABC YAEE 900 831 999
+
  ABC YAEE 900 831 999
-
  ABC METK 0 590 591
+
  ABC METK 0 590 591
-
  ABC META 0 663 663
+
  ABC META 0 663 663
-
  ACCA FABD 0 537 997
+
  ACCA FABD 0 537 997
  ...
  ...
 +
 +
-->
 +
 +
= Statistiques sur le graphe =
 +
Des informations globales sur le graphe peuvent être obtenues ''via'' le menu ''Tools → Analyze network'' comme :
 +
* le nombre de composantes connexes,
 +
* le nombre moyen de voisins,
 +
* ...
 +
 +
Le résumé apparaît dans une autre sous-fenêtre à droite onglet ''Analyzer''.
 +
 +
'''Observez''' les attributs supplémentaires des sommets et arêtes.
 +
 +
'''Modifiez''' l'apparence du graphe pour colorer les sommets en fonction de leur coefficient d'agglomération.

Current revision as of 18:04, 9 November 2021

Contents

Données

Les données sur lesquelles vous allez travailler provienne de la base de données STRING v11.0. Tout d'abord, trouvez le site de STRING et visualisez les partenaires de dnaJ d'Escherichia coli K12-MG1655. Le menu Settings permet de choisir le rendu du graphe avec des des liens confidence ou evidence en affichant soit des arêtes de tailles reflétant le niveau de confiance du lien, soit des multi-arêtes indiquant les sources de données intervenant dans un lien, soit le type d'interaction. Dans le même menu, on peut sélectionner le type de sources de données affichées (textmining, experiments, ...). On peut aussi afficher davantage de sommets avec le bouton More.

Dans la partie Download du site, vous allez récupérer des fichiers pour Escherichia coli. Il faut d'abord restreindre les données à l'organisme considéré. Vous utiliserez la souche K-12 substr. MG1655. Ensuite récupérez :

  • le fichier contenant les liens avec les scores détaillés pour chaque type de données : 511145.protein.links.detailed.v11.0.txt.gz
  • le fichier contenant la description des sommets : 511145.protein.info.v11.0.txt.gz

Décompressez-les ensuite pour répondre aux questions suivantes :

  • combien de protéines ?
  • combien d'arêtes ?

Le graphe étant un peu gros pour les exercices qui suivent vous allez filtrez les liens pour ne garder que ceux qui ont un score supérieur ou égal à 700 parmi les types neighborhood, coexpression et experimental.


Visualisation avec Cytoscape

Cytoscape est un logiciel de visualisation et d'exploration de graphes. Il a été développé dans le cadre de graphes et réseaux biologiques. Un certain nombre de plugins ou greffons sont disponibles par exemple pour récupérer/télécharger des voies métaboliques (BioCyc) directement depuis Cytoscape.

Import d'un graphe à partir d'un fichier

Importez le graphe à partir du menu File → import → Network from file.... Il faut alors dans les paramètres avancés changer le délimiteur de colonnes et ensuite spécifier quels sont les attributs correspondant aux extrémités des arêtes.


Attributs sur les sommets et arêtes

Importez le fichier précédemment récupéré 511145.protein.info.v11.0.txt à partir du menu File → import → Table from file... en modifiant le délimiteur de colonnes si besoin, en précisant bien s'il s'agit de données sur les sommets ou les arêtes, et en indiquant quelle colonne permet d'identifier les sommets.

Comme dans la plupart des logiciels et systèmes d'exploitation, un clic droit sur un objet fait apparaître un menu contextuel dans Cytoscape. Un clic droit sur une arête ou un sommet fait apparaître un tel menu. Remarquez l'avant-dernière entrée du menu : Extrenal Links qui permet d'ouvrir une URL, typiquement à partir de l'identifiant du sommet ou de l'arête, ce qui permet par exemple d'atteindre la page de description d'une protéine dans UniProt. Il est possible d'ajouter ses propres "liens externes" à partir du menu Edit → Preferences → Properties... : pour un lien externe à partir d'un noeud, il faut ajouter une propriété nodelinkouturl.NOM_DU_LIEN (dans la section linkout), par exemple et c'est ce que vous devrez faire nodelinkouturl.STRING. Dans le champ valeur, il s'agit de spécifier l'URL avec une ou plusieurs variables, ici nous utiliserons simple l'identifiant du noeud noté %ID% : https://string-db.org/network/%ID%.

Pour les liens sur les arêtes, il s'agit de la propriété edglelinkouturl.NOM_DU_LIEN avec %ID1% et %ID2% les extrémités de l'arête, cf. la documentation de Cytoscape pour plus de détails.

Rendu à partir des valeurs des attributs

Explorez à présent les possibilités offertes par l'onglet Style (à gauche). Essayez notamment de faire afficher des épaisseurs d'arêtes proportionnelles à la confiance du lien de coexpression ainsi qu'un dégradé reflétant le score de l'attribut experimental (bleu → jaune par exemple).

Sélection, filtres et opérations sur les graphes

Une boite de recherche est disponible au niveau de la barre d'outils. Essayez-la pour, par exemple, sélectionner le gène wbbJ. Il s'agit en fait d'un filtrage sur la sélection de tous les sommets (ou toutes les arêtes).

Pour élaborer un filtre plus complexe, vous avez sur la gauche l'onglet Filter vous permettant d'éditer les paramètres du filtre. Sélectionnez toutes les arêtes ayant une valeur de coexpression ET une valeur experimental supérieures ou égales à 800.

Une fois la sélection réalisée, un bouton à gauche de la boite de recherche vous permettent d'extraire un sous graphe à partir de la sélection. Par défaut, il s'agit du sous graphe induit par les sommets sélectionnés : New Network From Selection (From selected nodes, selected edges). Ou alors, après avoir réalisé la sélection des arêtes >=800, le menu Select → Nodes → Nodes connected by selected edges vous permet de sélectionner les extrémités des arêtes sélectionnées.


Statistiques sur le graphe

Des informations globales sur le graphe peuvent être obtenues via le menu Tools → Analyze network comme :

  • le nombre de composantes connexes,
  • le nombre moyen de voisins,
  • ...

Le résumé apparaît dans une autre sous-fenêtre à droite onglet Analyzer.

Observez les attributs supplémentaires des sommets et arêtes.

Modifiez l'apparence du graphe pour colorer les sommets en fonction de leur coefficient d'agglomération.