Случайно подмножество большой сети с заданным типом узлов и весов - PullRequest
0 голосов
/ 25 января 2019

У меня небольшая сеть с двумя типами узлов и данными весами.Я хотел бы случайно выбрать аналогичную сеть из большой сети.

У меня есть меньшая сеть, построенная с использованием NetworkX на python2.7, с двумя типами узлов и определенными весами.У меня есть еще одна огромная сеть / График.Я хотел бы случайным образом отобрать огромную сеть, поддерживающую подключение меньшей сети (типы узлов и ребер).Это можно определить как случайную выборку сети.

Мои исходные данные выглядят так:

Connections                                       Weight
chr22,43266979,43269138:chr22,43400294,43400976    15
chr22,43409329,43433936:chr22,43290595,43292626    15
chr22,43409329,43433936:chr22,43277663,43278699    17
chr22,43266979,43269138:chr22,43399124,43400293    15
chr22,43409329,43433936:chr22,43399124,43400293    1
chr22,43409329,43433936:chr22,43278700,43281477    16
chr22,43409329,43433936:chr22,43262566,43266683    18
chr22,43409329,43433936:chr22,43281478,43285053    16
chr22,43266979,43269138:chr22,43350529,43356580    9
chr22,43409329,43433936:chr22,43400294,43400976    1
chr22,43433937,43434687:chr22,43277663,43278699    18
chr22,43266979,43269138:chr22,43437394,43454270    21

У меня есть диктовка с типом узлов:

node_type = {"chr22,43266979,43269138":"TypeA","chr22,43433937,43434687":"TypeA","chr22,43409329,43433936":"TypeA"}
import networkx as nx
import matplotlib.pyplot as pat

G = nx.Graph()

with open("data.txt") as f:
    header=f.readline()
    for line in f:
        conn, weight = line.strip().split()
        node1,node2=conn.split(":")
        G.add_edge(node1,node2, weight=int(weight))


for node in G.nodes:
    G.node[node]['category'] = node_type.get(node,"TypeB")

color_map = {'TypeA':'blue', 'TypeB':'red'}
nx.draw(G, node_size=100,node_color=[color_map[G.node[node]['category']] for node in G])
pat.show()

Небольшая сеть выглядит следующим образом [1]

Теперь у меня очень большая сеть, и я хотел бы выбрать подграф с таким же номером типаузлы и подключения (и Wights), как моя меньшая сеть.Спасибо заранее за любые предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...