2015-08-05 1 views
2

Je souhaite convertir la sortie de la matrice d'adjacence de ARACNE en un fichier csv en utilisant python (ou éventuellement R).Conversion de la matrice d'adjacence en fichier csv

Le fichier adj est configuré pour montrer un gène à droite et chacune de ses interactions avec d'autres gènes. Par exemple:

A B 0.4 C 0.3 
B C 0.1 E 0.4 
C D 0.2 E 0.3 

Donc ci-dessus, A et B interagissent les uns avec les autres et la valeur de cette interaction est de 0,4. A et C interagissent entre eux et la valeur est 0,3 et ainsi de suite.

Je souhaite modifier la mise en page si je reçois ...

A B 0.4 
A C 0.3 
B C 0.1 
B E 0.4 
C D 0.2 
C E 0.3 

Fondamentalement, je veux une liste de tous les nœuds qui interagissent et les valeurs correspondantes pour que je puisse télécharger le fichier sur Cytoscape et tracer un réseau.

Répondre

1

Une façon simple de le faire en utilisant le module csv -

import csv 
with open('<inputfile>','r') as f , open('<outputfile>','w') as of: 
    reader = csv.reader(f, delimiter=' ') 
    writer = csv.writer(of, delimiter=' ') 
    for lines in reader: 
      key = lines.pop(0) 
      for i in range(0,len(lines),2): 
        writer.writerow([key, lines[i], lines[i+1]]) 

Exemple/Démo -

Mon a.csv -

A B 0.4 C 0.3 
B C 0.1 E 0.4 
C D 0.2 E 0.3 

Code -

>>> import csv 
>>> with open('a.csv','r') as f , open('b.csv','w') as of: 
...  reader = csv.reader(f, delimiter=' ') 
...  writer = csv.writer(of, delimiter=' ') 
...  for lines in reader: 
...    key = lines.pop(0) 
...    for i in range(0,len(lines),2): 
...      writer.writerow([key, lines[i], lines[i+1]]) 

Sortie en b.csv -

A B 0.4 
A C 0.3 
B C 0.1 
B E 0.4 
C D 0.2 
C E 0.3 
+0

Hey, merci pour l'aide! Exactement ce que je cherchais. –

+0

Si la réponse vous a été utile, je vous conseille d'accepter la réponse (en cliquant sur la coche à gauche de la réponse), ce serait utile pour la communauté. –