Topological analysis tools for network materials.
Project description
topo-metrics
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b40e8285edd261d231c7b479038f6d8140577b5311342b4fc7d691ffcad7f5f
|
|
| MD5 |
a29e7f15aa09cf2c44ef531c79827da2
|
|
| BLAKE2b-256 |
5c7d9fcfd2a09e0c3a04a76e8d816a20c199f74b87d34eed1a7937a45650400c
|
Provenance
The following attestation bundles were made for topo_metrics-0.1.7.tar.gz:
Publisher:
publish.yaml on tcnicholas/topo-metrics
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
topo_metrics-0.1.7.tar.gz -
Subject digest:
2b40e8285edd261d231c7b479038f6d8140577b5311342b4fc7d691ffcad7f5f - Sigstore transparency entry: 1005354618
- Sigstore integration time:
-
Permalink:
tcnicholas/topo-metrics@cbc0a5d262f7e3c4fd29563d0770cb8a567a46f2 -
Branch / Tag:
refs/tags/0.1.7 - Owner: https://github.com/tcnicholas
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@cbc0a5d262f7e3c4fd29563d0770cb8a567a46f2 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe6b93a9ef9b9a071d204566128111768a88453ef6f3f7c56f30bfe0c28a4b70
|
|
| MD5 |
38ceab34160e593801ceaecd5002a5f5
|
|
| BLAKE2b-256 |
bbf021d29cbc01289ea629b68443b9011bd4e996f7c294c92fe1c303d59d109f
|
Provenance
The following attestation bundles were made for topo_metrics-0.1.7-py3-none-any.whl:
Publisher:
publish.yaml on tcnicholas/topo-metrics
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
topo_metrics-0.1.7-py3-none-any.whl -
Subject digest:
fe6b93a9ef9b9a071d204566128111768a88453ef6f3f7c56f30bfe0c28a4b70 - Sigstore transparency entry: 1005354621
- Sigstore integration time:
-
Permalink:
tcnicholas/topo-metrics@cbc0a5d262f7e3c4fd29563d0770cb8a567a46f2 -
Branch / Tag:
refs/tags/0.1.7 - Owner: https://github.com/tcnicholas
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@cbc0a5d262f7e3c4fd29563d0770cb8a567a46f2 -
Trigger Event:
push
-
Statement type: