Skip to main content

Topological analysis tools for network materials.

Project description

topo-metrics

PyPI - Version GitHub License codecov

Install

# install Julia (if you haven't already)...
curl -fsSL https://install.julialang.org | sh

# install `topo-metrics` package using UV.
uv venv topo-throwaway --python 3.10
source topo-throwaway/bin/activate
uv pip install topo-metrics

Quickstart

>>> from ase.io import read
>>> import topo_metrics as tm
>>>
>>> atoms = read("zeolite-sodalite.cif")
>>> graph = tm.Topology.from_ase(ase_atoms=atoms, cutoff=1.7, remove_types={"O"})
>>> ring_stats = graph.get_clusters()
>>> ring_stats

RingsResults(
  depth=12,
  strong_rings=False,
  ring_size_count=RingSizeCounts(n_rings=46, min=4, max=12),
  VertexSymbol=[4.4.6.6.6.6],
  CARVS={4(2).6(4).12(32)}
)

Documentation

Checkout the documentation for some more detailed examples of the available functionality.

(This is in working progress...)

Citation

If you find topo-metrics helpful for your research, please cite the preprint in which we introduced the CARVS notation:

@misc{nicholas2025amof,
  title         = {The structure and topology of an amorphous metal-organic framework},
  author        = {Nicholas, Thomas C. and Thomas du Toit, Daniel F. and Rosset, Louise A. M. and Proserpio, Davide M. and Goodwin, Andrew L. and Deringer, Volker L.},
  year          = {2025},
  month         = mar,
  eprint        = {2503.24367},
  archivePrefix = {arXiv},
  primaryClass  = {cond-mat.mtrl-sci},
  doi           = {10.48550/arXiv.2503.24367},
  url           = {https://arxiv.org/abs/2503.24367}
}

topo-metrics relies on PeriodicGraphs.jl and the topology-identification routines provided by CrystalNets.jl. If you use topo-metrics in published work, please also cite the CrystalNets.jl companion article:

@article{zoubritzky2022crystalnets,
  title   = {CrystalNets.jl: Identification of Crystal Topologies},
  author  = {Zoubritzky, Lionel and Coudert, Fran{\c{c}}ois-Xavier},
  journal = {SciPost Chem.},
  volume  = {1},
  number  = {2},
  pages   = {005},
  year    = {2022},
  doi     = {10.21468/SciPostChem.1.2.005},
  url     = {https://scipost.org/SciPostChem.1.2.005}
}

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

topo_metrics-0.1.7.tar.gz (76.8 kB view details)

Uploaded Source

Built Distribution

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

topo_metrics-0.1.7-py3-none-any.whl (65.4 kB view details)

Uploaded Python 3

File details

Details for the file topo_metrics-0.1.7.tar.gz.

File metadata

  • Download URL: topo_metrics-0.1.7.tar.gz
  • Upload date:
  • Size: 76.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for topo_metrics-0.1.7.tar.gz
Algorithm Hash digest
SHA256 2b40e8285edd261d231c7b479038f6d8140577b5311342b4fc7d691ffcad7f5f
MD5 a29e7f15aa09cf2c44ef531c79827da2
BLAKE2b-256 5c7d9fcfd2a09e0c3a04a76e8d816a20c199f74b87d34eed1a7937a45650400c

See more details on using hashes here.

Provenance

The following attestation bundles were made for topo_metrics-0.1.7.tar.gz:

Publisher: publish.yaml on tcnicholas/topo-metrics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file topo_metrics-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: topo_metrics-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 65.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for topo_metrics-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 fe6b93a9ef9b9a071d204566128111768a88453ef6f3f7c56f30bfe0c28a4b70
MD5 38ceab34160e593801ceaecd5002a5f5
BLAKE2b-256 bbf021d29cbc01289ea629b68443b9011bd4e996f7c294c92fe1c303d59d109f

See more details on using hashes here.

Provenance

The following attestation bundles were made for topo_metrics-0.1.7-py3-none-any.whl:

Publisher: publish.yaml on tcnicholas/topo-metrics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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