Skip to content

QM Plugin

Package: caddforge-qm

Public source tag

This page describes caddforge-qm 0.3.0, tagged as v0.3.0. Published on PyPI; see the version matrix.

The QM plugin currently provides the transfer-free-energy workflow.

Requirements and example status

The PyOCL dependency is installed as pyocl-idor>=0.8.3 and imported as pyocl. It requires Java 21 or newer and a configured JAVA_HOME.

The example library provides downloadable configuration templates for every workflow on this page, plus a shared Python runner. File paths refer to inputs you must prepare; these are not bundled research datasets. Schema validation does not establish scientific validity or engine availability. See the version matrix for release tags and publication status.

transfer-free-energy

Computes transfer free energy for a ligand in a target solvent using COSMO-RS surfaces.

CLI:

caddforge show-config qm transfer-free-energy
caddforge run qm transfer-free-energy --config transfer_free_energy.yaml

YAML:

ligand_sdf: data/ligand.sdf
solvent_sdf: data/octanol.sdf
n_confs: 3
basis: def2-TZVP
xc: BP86
do_geomopt: true
temperature_K: 298.15
standard_state: x
cosmo_backend: dft
xtb_path: xtb

Python:

from caddforge.core.execution import load_result_for_job, submit_workflow
from caddforge.plugins import get_tool

spec = get_tool("qm", "transfer-free-energy")
cfg = spec.config_cls(
    ligand_sdf="data/ligand.sdf",
    solvent_sdf="data/octanol.sdf",
    n_confs=3,
    cosmo_backend="dft",
    backend="local",
)
workflow = spec.workflow_cls(cfg)
job = submit_workflow(
    workflow, cfg, backend_name=cfg.backend,
    input_ports=tuple(getattr(spec.plugin, "input_ports", ())),
)
result = load_result_for_job(job)
if result is not None:
    print(result.metrics)

Outputs to inspect: results/results.json, results/cosmo_surfaces/, results/result_record.json.

Ligand and solvent structures may be supplied as .sdf.gz. CADDForge expands them in runtime scratch and retains the original compressed paths in saved configuration.