2017-03-28 4 views
0

enter image description here 저는 셀룰러 경로를 연구 중이며 같은 요소를 공유하는 네트워크가 어떻게 연결되는지 보여주기 위해 networkx를 어떻게 사용할 수 있는지 알고 싶었습니다.네트워크의 동일한 항목 사이에 가장자리를 추가하여 네트워크 연결

HH_signaling = ['GLI1', 'PTCH1', 'PTCH2', 'WNT5A', 'HHIP1', 'MYCN', 'CCND1', 'CCND2', 'BCL2', 'CFLAR', 'FOXF1', 'FOXL1', 'PRDM1', 'JAG2', 'GREM1'] 
    Wnt_signaling = ['GLI1', 'PTCH1', 'WNT5A', 'HHIP1', 'MYCN', 'CCND1','WNT7A','WNT2','CDK1','CK1'] 
    Proliferation_signaling = ['GLI1', 'CCNDA', 'BMP4', 'BMP7', 'MTOC2', 'CCND1'] 

    g = nx.Graph() 
    def link_networks(N1, N2, N3, N4=None, N5=None, N6=None, N7=None, N8=None, N9=None): 
     for i in N1: 
      for i in N2: 
       for i in N3: 
        g.add_edge(N1[i],N2[i],N3[i]) 

link_networks(HH_signaling, Wnt_signaling, Proliferation_signaling) 

TypeError: list indices must be integers or slices, not str 

답변

1

networkx은 하이퍼 노드의 개념이 (도 내가 아는 다른 네트워크 분석 패키지를 않습니다) 그래서 도면을 재 작성하는 간단한 방법이 없다하지 않습니다. 또한 그래프 생성에 대한 순진한 접근 방식을 어렵게 만드는 몇 가지 다른 기술적 제한 사항 (노드는 다른 이름 (AFAIK)이 필요합니다)이 있습니다.

내게는 휠체어를 다시 발명하려고하는 것 같습니다. 다른 경로 사이의 중복을 보여주는 Venn 다이어그램을 원하십니까? 같은 뭔가 :

enter image description here

코드 : https://github.com/paulbrodersen/venn_wordcloud :

import venn_wordcloud; reload(venn_wordcloud) 

HH = ['GLI1', 'PTCH1', 'PTCH2', 'WNT5A', 'HHIP1', 'MYCN', 'CCND1', 'CCND2', 'BCL2', 'CFLAR', 'FOXF1', 'FOXL1', 'PRDM1', 'JAG2', 'GREM1'] 
Wnt = ['GLI1', 'PTCH1', 'WNT5A', 'HHIP1', 'MYCN', 'CCND1', 'WNT7A', 'WNT2', 'CDK1', 'CK1'] 
CC = ['GLI1', 'CCNDA', 'BMP4', 'BMP7', 'MTOC2', 'CCND1'] 

venn_wordcloud.venn3_wordcloud([set(HH), set(Wnt), set(CC)], 
           set_labels=['Hedgehog', 'Wnt', 'Cell Cycle']) 

venn_wordcloud의 코드 내 GitHub의에서 사용할 수 있습니다.

pip install matplotlib-venn wordcloud 
: NumPy와와 (당신이 networkx를 설치하기 전에 설치되어 있어야합니다)하기 matplotlib에서 별도로

, 그것은 핍을 통해 설치 될 수 있습니다하기 matplotlib-벤과, 구름에 따라 달라집니다