M1 MABS Graphes TP Visualisation et parcours en profondeur
From silico.biotoul.fr
m |
m |
||
Line 4: | Line 4: | ||
= 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. | ||
+ | |||
+ | == 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://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 : | ||
Line 19: | Line 21: | ||
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. | 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. | ||
+ | |||
+ | == 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 : | 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 : | ||
Line 44: | Line 48: | ||
confidence | confidence | ||
+ | |||
+ | == Rendu à partir des valeurs des attributs == | ||
vizzmapper | vizzmapper | ||
+ | == Sélection et filtres == | ||
selection | selection | ||
Line 52: | Line 59: | ||
string experimental | string experimental | ||
merge | merge | ||
+ | |||
+ | == Importation d'un graphe au format ''table''== | ||
format table | format table |
Revision as of 09:17, 7 February 2012
Contents |
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.
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.
Importation d'un fichier sif et algorithmes de dessin
Vous allez dans un premier temps utiliser un graphe au format sif (simple interaction format). Il s'agit d'un format de stockage très simple de la forme :
ABC coexpression YAEE ABC coexpression METK ABC coexpression META ACCA coexpression FABD ACCA coexpression PPA ACCB coexpression HPT ...
où coexpression est le type de l'arête.
Récupérez le fichier 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 File->Import->Network).
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 layout). Attention, certains ne sont pas adaptés et d'autres plutôt gourmands en temps de calcul.
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 AAS = 2-acyl-glycerophospho-ethanolamine acyltransferase; acyl-acyl-carrier protein synthetase 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 documentation de Cytoscape.
Pour les arêtes, le format est très similaire :
coexpression ABC (coexpression) YAEE = 831 ABC (coexpression) METK = 590 ABC (coexpression) META = 663 ACCA (coexpression) FABD = 537 ACCA (coexpression) PPA = 543 ACCB (coexpression) HPT = 566 ...
annotation des gènes
linkout
confidence
Rendu à partir des valeurs des attributs
vizzmapper
Sélection et filtres
selection
string experimental merge
Importation d'un graphe au format table
format table string selection
Parcours en profondeur d'un graphe
implémenter en python
procédure pour charger le graphe à partir du fichier au format table
def loadGraph(filename): UG = createGraph() # OPEN FILE with open(filename) as f: # GET COLUMNS NAMES tmp = f.readline().rstrip() attNames= tmp.split('\t') # REMOVES FIRST TWO COLUMNS WHICH CORRESPONDS TO THE LABELS OF THE CONNECTED VERTICES attNames.pop(0) attNames.pop(0) # PROCESS THE REMAINING LINES row = f.readline().rstrip() while row: vals = row.split('\t') v1 = vals.pop(0) v2 = vals.pop(0) addNode(UG, v1) addNode(UG, v2) addEdge(UG, v1, v2, attNames, vals) row = f.readline().rstrip() return UG
besoin de récupérer les voisins d'un sommet
pour la représentation interne, liberté de choix :
- matrice d'adjacence
- listes d'adjacence
fonction à définir :
- createGraph
- addNode
- addEdge
- getNeighbors
Après chargement du graphe, faire afficher l'ordre du graphe ainsi que le nombre d'arête.
Implémenter DFS
On rappelle l'algorithme récursif
dfs(UndirectedGraph g, Vertex v) mark(s) for each Neighbor n of v do if not marked(n) then dfs(g, n)