2017-03-28 8 views
0

enter image description here私は細胞経​​路を研究しています。同じ要素を共有するネットワークがどのように接続されているかをネットワークxを使って表示する方法を知りたかったのです。ネットワーク内の同じ項目間にエッジを追加してネットワークを接続する

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

コード:

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の上で提供されています: https://github.com/paulbrodersen/venn_wordcloud

pip install matplotlib-venn wordcloud 
:numpyのと(あなたがnetworkxをインストールする前にインストールしている必要があります)matplotlibのは別に

は、それはPIPを介してインストールすることができますmatplotlibの-ベンとwordcloudに依存します

関連する問題