Преобразование матрицы смежности в файл csv

Я хочу преобразовать вывод матрицы смежности из ARACNE в файл csv с помощью python (или, возможно, R).

Файл adj настроен так, чтобы показывать один ген правильным и каждое из его взаимодействий с другими генами. Например:

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

Итак, выше, A и B взаимодействуют друг с другом, и значение этого взаимодействия составляет 0,4. A и C взаимодействуют друг с другом, значение равно 0,3 и так далее.

Я хочу изменить макет, чтобы получить ...

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

В основном мне нужен список всех взаимодействующих узлов и соответствующих значений, чтобы я мог загрузить файл в Cytoscape и построить сеть.


person Katie J    schedule 05.08.2015    source источник


Ответы (1)


Простой способ сделать это с помощью модуля 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]])

Пример / Демо -

My a.csv -

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

Код -

>>> 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]])

Вывод в 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
person Anand S Kumar    schedule 05.08.2015
comment
Привет, спасибо за помощь! Именно то, что я искал. - person Katie J; 05.08.2015
comment
Если ответ был полезен для вас, я хотел бы посоветовать вам принять ответ (нажав на галочку в левой части ответа), это будет полезно для сообщества. - person Anand S Kumar; 05.08.2015