silico.biotoul.fr
 

M1 MABS Graphes TP Visualisation et parcours en profondeur

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
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 :
-
string experimental
+
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
 +
...
-
layout
 
-
attributs node/edge
 
annotation des gènes
annotation des gènes
linkout
linkout
Line 21: Line 50:
selection
selection
-
string coexpression
+
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
...

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)