2

我想使用 python(或者可能是 R)将 ARACNE 的邻接矩阵输出转换为 csv 文件。

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 并绘制一个网络。

4

1 回答 1

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

示例/演示 -

我的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
于 2015-08-05T16:04:50.817 回答