Skip to content

chematic for researchers

chematic is a pure-Rust cheminformatics runtime with Python, Rust, JavaScript/ WebAssembly, and MCP entry points. The useful research claim is operational: the same core implementation can be used in a local analysis, a Python pipeline, and a browser or agent-facing tool while preserving explicit limits and typed failures.

Start with one reproducible result

python -m venv .venv
. .venv/bin/activate
pip install chematic==1.0.15
import chematic

mol = chematic.from_smiles("CC(=O)Oc1ccccc1C(=O)O")
print({"mw": mol.mw, "logp": mol.logp, "tpsa": mol.tpsa})

Pin the package version and record the input corpus, configuration, and platform. Do not treat a descriptor agreement or benchmark result as a universal guarantee: the scope is always the named metric, corpus, runtime, and failure policy.

Choose the right evidence

Research question Start here Boundary
Can I parse and screen a batch safely? error and resource limits, format matrix Limits and rejected records are part of the result
Can I compare descriptors or fingerprints? validation, benchmark index Compare only the pinned metric and corpus
Can I reproduce a release? release gate, CHANGELOG Local evidence is not hosted or independent-review evidence
Can I replace an RDKit call? RDKit migration guide chematic is not a full RDKit clone; unsupported options fail explicitly

3D generation, pKa/ADMET screening, IUPAC naming, rich reaction semantics, and some canonicalization cases remain bounded or experimental. Read the compatibility and validation documents before using those paths in a paper.

Citation

The repository contains a machine-readable CITATION.cff. Cite the exact release used by the study, including the version and repository URL. Once the GitHub repository is connected to Zenodo, use the version DOI for the archived release and keep the Git commit or tag in the methods section.

How to report a useful issue

Include the smallest reproducible input, chematic version, binding, feature flags, expected behavior, observed output, and whether the case is a correctness failure, an unsupported input, or a measurement gap. Remove proprietary or unlicensed structures before submitting a fixture.