M1 MABS Graphes TP Visualisation et parcours en profondeur
From silico.biotoul.fr
m |
m |
||
Line 5: | Line 5: | ||
[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. | ||
- | format sif | + | 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 : |
- | + | 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 [[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. | ||
+ | |||
+ | 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 [http://cytoscape.org/manual/Cytoscape2_8Manual.html#Node%20and%20Edge%20Attributes 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 | annotation des gènes | ||
linkout | linkout | ||
Line 21: | Line 50: | ||
selection | selection | ||
- | string | + | string experimental |
merge | merge | ||
Revision as of 17:47, 6 February 2012
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.
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.
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
vizzmapper
selection
string experimental merge
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)