Cómo obtener un censo de tríadas en una gráfica no dirigida usando networkx en python

Tengo un gráfico networkx no dirigido de la siguiente manera y quiero imprimir el triad census de la triad census del gráfico. Sin embargo, nx.triadic_census(G) no admite gráficos no dirigidos.

 import networkx as nx G = nx.Graph() G.add_edges_from( [('A', 'B'), ('A', 'C'), ('D', 'B'), ('E', 'C'), ('E', 'F'), ('B', 'H'), ('B', 'G'), ('B', 'F'), ('C', 'G')]) 

Error: NetworkXNotImplemented: not implemented for undirected type

Soy consciente de que solo hay 4 clases isomorfas para gráficos no dirigidos (no 16 como gráficos dirigidos). ¿Hay alguna forma de obtener el recuento de estas 4 clases isomorfas utilizando networkx?

No estoy limitado a networkx y networkx feliz de recibir respuestas usando otras bibliotecas u otros idiomas .

Estoy feliz de proporcionar más detalles si es necesario.

    Una solución similar a tu publicación anterior: itera sobre todas las tríadas e identifica la clase a la que pertenece. Dado que las clases son solo el número de bordes entre los tres nodos, cuente el número de bordes para cada combinación de 3 nodos.

     from itertools import combinations triad_class = {} for nodes in combinations(G.nodes, 3): n_edges = G.subgraph(nodes).number_of_edges() triad_class.setdefault(n_edges, []).append(nodes)