Detecta anillos / circuitos de vóxeles conectados

Tengo una estructura de vóxel esqueleto que se ve así:

La estructura real es significativamente más grande que este ejemplo. ¿Hay alguna forma de encontrar los anillos cerrados en la estructura? Intenté convertirlo en un gráfico y usar enfoques basados en gráficos, pero todos tienen el problema de que un gráfico no tiene información espacial de la posición del nodo y, por lo tanto, un gráfico puede tener múltiples anillos que son homólogos.

No es posible encontrar todos los anillos y luego filtrar los de interés, ya que el gráfico es demasiado grande. El tamaño de los anillos varía significativamente.

¡Gracias por su ayuda y contribución!

Cualquier enfoque de lenguaje y seudocódigo son bienvenidos, aunque trabajo principalmente en Python y Matlab.

EDITAR:

No, el gráfico no es plano. El problema con la base del ciclo Graph es el mismo que con otros enfoques simples basados en gráficos. El gráfico carece de información espacial y las diferentes configuraciones espaciales pueden tener la misma base de ciclo, por lo tanto, la base del ciclo no se corresponde necesariamente con los ciclos o agujeros en el gráfico.

Aquí está la matriz de adyacencia en formato disperso:

NodeID1 NodeID2 Weight

Pastebin con matriz de adyacencia

Y aquí están las coordenadas X, Y, Z correspondientes para los nodos del gráfico:

X Y Z

Pastebin con coordenadas de nodo

(La estructura real es significativamente mayor que este ejemplo)