У меня небольшая сеть с двумя типами узлов и данными весами.Я хотел бы случайно выбрать аналогичную сеть из большой сети.
У меня есть меньшая сеть, построенная с использованием 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), как моя меньшая сеть.Спасибо заранее за любые предложения.