def motif_m7(g):
n = nx.number_of_nodes(g)
W = np.zeros((n, n), dtype=float)
W = np.mat(W)
# nei = set(nx.all_neighbors(g, 2))
# print('all_neighbors: ', nei)
for u in range(1, n+1):
u_neighbors = set(nx.all_neighbors(g, u))
# sorted(u_neighbors)
# print(u, u_neighbors)
for v in u_neighbors:
if v < u:
continue
v_neighbors = set(nx.all_neighbors(g, v))
# sorted(v_neighbors)
for w in v_neighbors:
if w < u or w < v:
continue
if g.has_edge(u, v) and g.has_edge(v, u) and g.has_edge(u, w) and g.has_edge(v, w):
W[u - 1, w - 1] = W[u - 1, w - 1] + 1
W[w - 1, u - 1] = W[w - 1, u - 1] + 1
W[u - 1, v - 1] = W[u - 1, v - 1] + 1
W[v - 1, u - 1] = W[v - 1, u - 1] + 1
W[v - 1, w - 1] = W[v - 1, w - 1] + 1
W[w - 1, v - 1] = W[w - 1, v - 1] + 1
continue
if g.has_edge(u, w) and g.has_edge(w, u) and g.has_edge(u, v) and g.has_edge(w, v):
W[u - 1, w - 1] = W[u - 1, w - 1] + 1
W[w - 1, u - 1] = W[w - 1, u - 1] + 1
W[u - 1, v - 1] = W[u - 1, v - 1] + 1
W[v - 1, u - 1] = W[v - 1, u - 1] + 1
W[v - 1, w - 1] = W[v - 1, w - 1] + 1
W[w - 1, v - 1] = W[w - 1, v - 1] + 1
continue
if g.has_edge(v, w) and g.has_edge(w, v) and g.has_edge(w, u) and g.has_edge(v, u):
W[u - 1, w - 1] = W[u - 1, w - 1] + 1
W[w - 1, u - 1] = W[w - 1, u - 1] + 1
W[u - 1, v - 1] = W[u - 1, v - 1] + 1
W[v - 1, u - 1] = W[v - 1, u - 1] + 1
W[v - 1, w - 1] = W[v - 1, w - 1] + 1
W[w - 1, v - 1] = W[w - 1, v - 1] + 1
continue
# print(W)
# print(type(W))
return W
评论列表
文章目录