저는이 단백질 - 단백질 상호 작용의 데이터 세트를 연구하고 있습니다. 나는 다음과 같은 형식의 edgelist를 가지고있다.Python의 영숫자 edgelist에서 가중치가있는 인접성 목록을 만듭니다.
AIG676464 AIG8475985 0.00035. Protein 1, Protein 2, weight.
나는 여러 가지 방법을 시도해 본 결과 출력 할 수 없다. 내가 얻고 자하는 것은 행렬 형태의 상호 작용입니다. 어떤 도움이라도 대단히 감사하겠습니다. 파이썬이나 R은 괜찮습니다.
내가 해봤 networkx : 여기
import networkx as nx
fh = open("InWeb29.txt", 'rb')
#d = fh.write(textline)
#fh.close()
G = nx.read_edgelist(fh)
G = nx.Graph([()])
A = nx.adjacency_matrix(G)
print(A.todense())
A.setdiag(A.diagonal()*2)
print(A.todense())
지금까지 내 다른 코드입니다 : 그것은 당신이 사용할 수있는 NetworkX
import csv
import pandas as pd
"Load in data file"
"""Read in the data file"""
df = pd.read_csv("datafile.txt", sep= '\t', header=0)
headers = list(df)
prot1 = df[df.columns[0]]
prot2 = df[df.columns[1]]
weight = df[df.columns[2]]
print prot1
with open("datafile.txt") as f:
next(f)
data = [tuple(map(str,row)) for row in csv.reader(f)]
n = max(max(prot1, prot2) for prot1, prot2, weight in data)
matrix = [[None]* n for i in range(n)]
for prot1, prot2 in data:
matrix[prot1][prot2]= weight
for row in matrix:
print(row)
시험 데이터의 짧은 붙여 넣기와 테스트 세트의 원하는 출력을 추가하십시오. – bjornsen
R의'igraph' 프레임 워크에서 잘 작동한다면'get.adjacency()'가 도움이 될 것입니다. –
다른 시도해 보겠습니다. – Nev