CADDForge QM Tool
Install this plugin with python -m pip install caddforge-qm. It depends directly
on caddforge-core>=0.21.0; Python imports and CLI commands still use caddforge.
For the complete public toolbox, including user-facing extras, install
python -m pip install caddforge. When migrating an existing environment, uninstall
the former caddforge core distribution before installing renamed core and updated plugins.
Quantum-mechanical workflows for CADDForge. This repo currently exposes a transfer free energy workflow backed by COSMO-RS (PySCF or xTB) and the openCOSMO-RS bindings.
Repo Layout
src/cadd_qm/cosmors/: COSMO-RS engine, config, and workflow wiring.src/cadd_qm/tool.py: plugin registration for theqm/transfer-free-energytool.tests/: lightweight tests and config validation.
Transfer free energy workflow
The qm/transfer-free-energy tool computes ΔGtr(H₂O → organic) for a ligand in a target solvent. COSMO surfaces are generated with PySCF (default) or xTB and evaluated with opencosmorspy.
Example config (YAML or JSON)
ligand_sdf: ligand.sdf
solvent_sdf: octanol.sdf
n_confs: 3
basis: def2-TZVP
xc: BP86
par_model: default_turbomole
do_geomopt: true
temperature_K: 298.15
standard_state: x # x (mole fraction) or c (molarity, requires solvent_density_g_ml)
cosmo_backend: dft # or xtb
xtb_path: xtb
Running via CLI
caddforge run qm transfer-free-energy --config qm_cosmors.yaml
caddforge show-config qm transfer-free-energy # prints an example dict
The workflow writes a standard run directory (runs/<date>/<job-id>/) with:
config.jsonandmetadata.jsonstdout.logresults/results.jsonplus copied.cosmosurfaces underresults/cosmo_surfaces/
COSMO backends
dft(default): PySCF BP86/def2-TZVP with COSMO surface generation.xtb: GFN2-xTB with ddCOSMO(TM, ε=∞) and Turbomole-style COSMO files. The compute backend (backendin the shared BaseConfig: local/slurm) remains independent ofcosmo_backend.
Dependencies
- PySCF (for DFT surface generation)
- xTB (optional backend, configured via
xtb_path) - RDKit,
pyocl-idor>=0.8.3(Python imports remainpyocl), numpy, andopencosmorspy - Java 21 or newer, with
JAVA_HOMEconfigured for the PyOCL/OpenChemLib runtime
These are declared in pyproject.toml; install them with the package using pip.
Notes
- Geometry optimizations now use delocalized internal coordinates (
dlc) in PySCF/geomopt to avoidKeyError: 'internal'with current geometric versions.
Compressed inputs
Transfer-free-energy ligand and solvent structures may be supplied as .sdf.gz. CADDForge expands
them in job-local runtime scratch before the QM workflow starts and preserves the original paths in
saved configuration.
Continuous integration and releases
.github/workflows/release.yml builds a wheel and source archive, validates
metadata, and tests the installed wheel on Linux with Python 3.10 and 3.12.
The lightweight test selection is recorded in scripts/ci_tests.json;
external scientific engines are validated separately.
Pushing a matching v* release tag publishes the tested artifacts to PyPI.
Branch pushes, pull requests and manual runs never publish. Configure a
PyPI Trusted Publisher for the idorsia repository, release.yml workflow
and pypi environment before pushing release tags. Runtime CADDForge
dependencies must already be available publicly; publish core first,
and publish docking/descriptors before MD.
Metadata
Release files for caddforge-qm 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| caddforge_qm-0.3.0.tar.gz | 20.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| caddforge_qm-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.5 kB
Release files / caddforge_qm-0.3.0.tar.gz
| Download URL | caddforge_qm-0.3.0.tar.gz |
|---|---|
| Size | 20.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7d0c6802c9672cbb1cf0038bbc68f8ae616c4f845e7d54bbe5f8dbe33145c73d
|
|
BLAKE2b-256 checksum How to use checksums |
7678e909541b853e9ddb80dc5a6ff12cef483761fd9be0dffe88dc47a00a2825
|
| 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 13, 2026.
Transparency logRelease files / caddforge_qm-0.3.0-py3-none-any.whl
| Download URL | caddforge_qm-0.3.0-py3-none-any.whl |
|---|---|
| Size | 17.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8550381e86e1898c87064ecd65431897d9e257bfeedcbe67eb67ff39d955ae9f
|
|
BLAKE2b-256 checksum How to use checksums |
73d95826c9c204ff9c95214ef93334b756f36d57023aecec33e3602f615579ef
|
| 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 13, 2026.
Transparency log