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

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.0
File Size Uploaded Provenance
qcinf-0.5.0.tar.gz 188.6 kB With provenance Details

Built distribution (wheel)

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

Total release size: 228.9 kB

Release files / qcinf-0.5.0.tar.gz

Download URL qcinf-0.5.0.tar.gz
Size 188.6 kB
Tags Source
SHA-256 checksum
How to use checksums
5b76f3c236ce805075276b4f2d60154ff95307175dd3766c7b2b6a27b4758b8f
BLAKE2b-256 checksum
How to use checksums
9b0e9d4182093ab004f49c3fbc59293428e55189a3e980f95037cb080536178c
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.0-py3-none-any.whl

Download URL qcinf-0.5.0-py3-none-any.whl
Size 40.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7845d013e742bc4a526c962917c408d0ba21497e822e910b6f939d71b17ffcff
BLAKE2b-256 checksum
How to use checksums
e3130360116181ffa8d2fbc5675a3fd8410d92164668fc915e92180aca375fbb
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.0

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