2

ARACNE からの隣接行列出力を Python (または R) を使用して csv ファイルに変換したいと考えています。

adj ファイルは、1 つの遺伝子を 1 つ右に表示し、他の遺伝子との相互作用をそれぞれ表示するように設定されています。例えば:

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 に答える