qcinf
Cheminformatics algorithms and structure utilities for qcdata structures.
The QC Suite
These packages work together to make quantum chemistry fast, structured, and interoperable.
- qcref - Reference data for computational chemistry: CODATA physical constants, conversion factors, a periodic table, and solvent properties, each value with its source.
- qcdata - Data structures for quantum chemistry inputs and results, with Jupyter visualizations. Documentation
- qcinf - Cheminformatics algorithms and structure utilities for qcdata structures.
- qccodec - Translates qcdata inputs into native program inputs and parses program outputs back into qcdata objects, one codec per program.
- qccompute - Runs quantum chemistry programs on qcdata inputs using qccodec codecs and returns structured results. Documentation
- BigChem - Distributed execution of qccompute calculations across clusters of computers or the cloud.
- ChemCloud - A web application and Python client that expose a BigChem cluster securely over the internet.
Installation
python -m pip install qcinf
To install with numba-accelerated kernels:
python -m pip install 'qcinf[fast]'
Additional backends can be added for conversion and compatibility features, including
rdkit, openbabel, or install the whole suite with all:
python -m pip install 'qcinf[rdkit,openbabel]'
Or
python -m pip install 'qcinf[all]'
snapRMSD
snapRMSD is the native qcinf algorithm for symmetry-aware molecular RMSD. It
uses bonded connectivity to find a connectivity-preserving atom assignment between
two isomorphic structures, optionally aligns the structures, and returns the RMSD
for the best assignment.
from qcdata import Structure
from qcinf import snap_rmsd
reference = Structure(
symbols=["C", "H", "H", "H", "H"],
geometry=[
[0.0, 0.0, 0.0],
[1.0, 1.0, 1.0],
[-1.0, -1.0, 1.0],
[-1.0, 1.0, -1.0],
[1.0, -1.0, -1.0],
],
connectivity=[(0, 1, 1.0), (0, 2, 1.0), (0, 3, 1.0), (0, 4, 1.0)],
)
candidate = Structure(
symbols=["C", "H", "H", "H", "H"],
geometry=[
[0.0, 0.0, 0.0],
[-1.0, 1.0, -1.0],
[1.0, -1.0, -1.0],
[1.0, 1.0, 1.0],
[-1.0, -1.0, 1.0],
],
connectivity=[(0, 1, 1.0), (0, 2, 1.0), (0, 3, 1.0), (0, 4, 1.0)],
)
rmsd = snap_rmsd(reference, candidate)
For the full result, use snap_rmsd_align_assign:
from qcinf import snap_rmsd_align_assign
rmsd, aligned_reference, assignment = snap_rmsd_align_assign(reference, candidate)
assignment[i] is the atom index in candidate matched to atom i in
reference. The returned aligned_reference is a copy of reference with its
geometry aligned to candidate.
Common options:
from qcinf import snap_align, snap_assign, snap_rmsd
# Compare structures without rotational/translational alignment.
rmsd = snap_rmsd(reference, candidate, align=False)
# Increase factoring depth for larger repeated peripheral groups.
rmsd = snap_rmsd(reference, candidate, factor_depth=2)
# Use the QCP alignment backend. Install with `qcinf[fast]` for numba acceleration.
rmsd = snap_rmsd(reference, candidate, alignment_backend="qcp")
# Return only the aligned structure or atom assignment.
aligned = snap_align(reference, candidate)
assignment = snap_assign(reference, candidate)
If a Structure does not include bonded connectivity, snapRMSD will infer it
from covalent radii. For production workflows, pass validated connectivity on the
structures or through a_connectivity= and b_connectivity= so the graph used for
assignment is explicit and reproducible.
Contributing
See CONTRIBUTING.md for development setup, the pre-commit workflow, running tests, and the release process.
Support
If you have any issues with qcinf or would like to request a feature, please open an issue.
Metadata
Release files for qcinf 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qcinf-0.4.2.tar.gz | 195.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qcinf-0.4.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 235.6 kB
Release files / qcinf-0.4.2.tar.gz
| Download URL | qcinf-0.4.2.tar.gz |
|---|---|
| Size | 195.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3463e83b378950fdd4564dbdde6f60dd727ea98fd5ed2376fb2df94fcc6db0c5
|
|
BLAKE2b-256 checksum How to use checksums |
2f473f5b4129580ffd30a816673d96209444688c2d69ce9067ca181b43d4d735
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logRelease files / qcinf-0.4.2-py3-none-any.whl
| Download URL | qcinf-0.4.2-py3-none-any.whl |
|---|---|
| Size | 40.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d463ad058851f882ed8552440ed22e8c4c5754458c58a3aac3c6e3c6281af7b5
|
|
BLAKE2b-256 checksum How to use checksums |
76a5ca8ecd6d4e7aa7088e819e3578c84b1aaea70d65c5e69fb6ce0e32abe94f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency log