Skip to main content

A collection of algorithms for cycles in a graph.

Project description

cycless

A collection of algorithms to analyze a graph as a set of cycles.

Some codes come from https://github.com/vitroid/Polyhed and https://github.com/vitroid/countrings are integrated and improved.

Version 0.5

API

API manual is here.

cycles.py

A simple algorithm to enumerate all irreducible cycles of n-members and smaller in an undirected graph. [Matsumoto 2007]

import cycless.cycles as cy
import networkx as nx

g = nx.cubical_graph()

for cycle in cy.cycles_iter(g, maxsize=6):
    print(cycle)

dicycles.py

An algorithm to enumerate the directed cycles of a size in a dircted graph. [Matsumoto 2021]

from genice2.genice import GenIce
from genice2.plugin import Lattice, Format, Molecule
import cycless.dicycles as dc

# Generate an ice I structure as a directed graph
lattice = Lattice("1h")
formatter = Format("raw", stage=(3,))
raw = GenIce(lattice, signature="ice 1h", rep=[2, 2, 2]).generate_ice(formatter)

for cycle in dc.dicycles_iter(raw["digraph"], size=6):
    print(cycle)

polyhed.py

An algorithm to enumerate the quasi-polyhedral hull made of cycles in an undirected graph. A quasi-polyhedral hull (vitrite) obeys the following conditions: [Matsumoto 2007]

  1. The surface of the hull is made of irreducible cycles.
  2. Two or three cycles shares a vertex of the hull.
  3. Two cycles shares an edge of the hull.
  4. Its Euler index (F-E+V) is two.
import cycless.cycles as cy
import cycless.polyhed as ph
import networkx as nx

g = nx.dodecahedral_graph()

cycles = [cycle for cycle in cy.cycles_iter(g, maxsize=6)]
for polyhed in ph.polyhedra_iter(cycles):
    print(polyhed)

simplex.py

Enumerate triangle, tetrahedral, and octahedral subgraphs found in the given graph.

References

  1. M. Matsumoto, A. Baba, and I. Ohmine, Topological building blocks of hydrogen bond network in water, J. Chem. Phys. 127, 134504 (2007). http://doi.org/10.1063/1.2772627
  2. Matsumoto, M., Yagasaki, T. & Tanaka, H. On the anomalous homogeneity of hydrogen-disordered ice and its origin. J. Chem. Phys. 155, 164502 (2021). https://doi.org/10.1063/5.0065215

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cycless-0.6.2.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cycless-0.6.2-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file cycless-0.6.2.tar.gz.

File metadata

  • Download URL: cycless-0.6.2.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.11.4 Darwin/24.1.0

File hashes

Hashes for cycless-0.6.2.tar.gz
Algorithm Hash digest
SHA256 61b186479bf9d0bcaa6b03d247de29de72fa56bf38fa138b7c7bc0a64ebb58a2
MD5 d52b457bd4776525be31eced65923799
BLAKE2b-256 ba3e72a32275945335f2307225166317f874bacbabb3ac7879ce4c068fafc724

See more details on using hashes here.

File details

Details for the file cycless-0.6.2-py3-none-any.whl.

File metadata

  • Download URL: cycless-0.6.2-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.11.4 Darwin/24.1.0

File hashes

Hashes for cycless-0.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1efc2aec3f8f5db6d301d5f4b458aa9dd2e92c86f740ac5deb50218526fb18de
MD5 0556f11c91ba13b4d4ec3cffade31df0
BLAKE2b-256 8c2404c3c323d99f474755e80aa637fa11ee1b9e291c281841c7e2259c942f36

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page