Skip to main content

qcinf

image image image CI

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.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qcinf 0.5.1
File Size Uploaded Provenance
qcinf-0.5.1.tar.gz 188.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for qcinf 0.5.1
File Interpreter ABI Platform
qcinf-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 229.0 kB

Release files / qcinf-0.5.1.tar.gz

Download URL qcinf-0.5.1.tar.gz
Size 188.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3f32f3cc985894927d04e192d84e09f9cfc33ba5a61310949995ba7a38184a0b
BLAKE2b-256 checksum
How to use checksums
1bfadc1c8b3637be97048797fd109c2e16959465fc1cdf826f12a5ef0e908672
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 21, 2026.

Transparency log

Release files / qcinf-0.5.1-py3-none-any.whl

Download URL qcinf-0.5.1-py3-none-any.whl
Size 40.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9f32ffe99c57cc3b83d64a01ff24e4fbb28a8f3bb44562b60e262294ff3f1da7
BLAKE2b-256 checksum
How to use checksums
0b3aede52c86007d8480142fbc11f682725a3ce7d1a604d50522630a709b85a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 21, 2026.

Transparency log

Security for qcinf 0.5.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for qcinf-0.5.1.tar.gz

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 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page