Skip to main content

Utility for reaction modeling using graph grammar

Project description

SynDE

SynDE is a fast, graph-first heuristic for ranking molecular and reaction candidates. It combines local graph features with π-system, generalized Hückel, frontier-orbital, and HSAB descriptors.

SynDE is designed for transparent screening and prioritization. Its default outputs are model score units—not kcal/mol, absolute molecular energies, or activation barriers. A physical-energy claim requires a named external method or a calibrated model with held-out validation.

What it provides

  • Molecule-level graph scores.
  • Product-minus-reactant reaction-state scores.
  • Atom-pair ranking using FMO, HSAB, charge complementarity, and graph accessibility.
  • Atom-mapped ITS (imaginary transition-state) reaction-centre scoring.
  • Optional RDKit conformer refinement and xTB shortlist workflows.
  • Explicit, inspectable components and initial heuristic weights for future calibration.

Install

Conda

conda env create -f env.yml
conda activate synde
python -m pip install -e .

Pip

python -m pip install -r requirements.txt
python -m pip install -e .

SynDE requires Python 3.11 or newer, RDKit, NumPy, and Synkit 1.5 or newer.

Quick start

from synde.energy import GraphEnergy

energy = GraphEnergy()

molecule = energy.score_molecule_from_smiles("c1ccccc1")
print(molecule.score, molecule.units)  # model score, not kcal/mol

reaction = energy.score_reaction(
    "[CH2:1]=[CH2:2]>>[CH3:1][CH3:2]"
)
print(reaction.reaction_delta_score)

For a fully atom-mapped reaction, inspect the reaction centre with the ITS heuristic:

its = energy.score_its("[CH2:1]=[CH2:2]>>[CH3:1][CH3:2]")

print(its.state_delta_score)
print(its.components)
print(its.its_score)

score_its() requires complete atom mapping. It reports an explicit unsupported result for missing or inconsistent maps rather than guessing a reaction centre.

Package layout

synde.graph       graph construction and electronic descriptors
synde.energy      molecule, reaction-state, calibration, and ITS scoring
synde.geometry    optional conformer-aware refinement
synde.external    external backends, including xTB
synde.integration workflow adapters and graph-to-xTB cascade

Scientific scope

SynDE currently supports a graph-only, closed-shell organic chemistry model. It does not replace quantum chemistry, transition-state search, or experimental validation. Treat scores as ranking features and calibrate them separately for each target, such as reaction ΔE, activation barrier, yield, or selectivity.

Development checks

conda run -n synde python -m pytest -q
conda run -n synde bash lint.sh
conda run -n synde sphinx-build -W -b html doc /tmp/synde-docs

Documentation

Build the local documentation with build_doc.sh, or start with doc/getting_started.rst.

License

SynDE is licensed under the MIT License.

Acknowledgements

This project has received funding from the European Union's Horizon Europe Doctoral Network programme under Marie Skłodowska-Curie grant agreement No. 101072930 (TACsy).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

synde-0.1.0.tar.gz (114.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

synde-0.1.0-py3-none-any.whl (124.7 kB view details)

Uploaded Python 3

File details

Details for the file synde-0.1.0.tar.gz.

File metadata

  • Download URL: synde-0.1.0.tar.gz
  • Upload date:
  • Size: 114.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for synde-0.1.0.tar.gz
Algorithm Hash digest
SHA256 118604f5021675bb8922298b0a3f5cdde84e54bb7b9b853a3e6acebcbca40f62
MD5 635a4737a06dc98e543610d71678852e
BLAKE2b-256 c5d81c869f623459ffe51e2421155f8838fe6f5918f06026adbac9f9252cf20f

See more details on using hashes here.

Provenance

The following attestation bundles were made for synde-0.1.0.tar.gz:

Publisher: publish-package.yml on TieuLongPhan/SynDE

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file synde-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: synde-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 124.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for synde-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d72e84e2cea91e69abb820cb1f1033c43ca0ac2152b7b3d9630114b5a1627527
MD5 560c939a7b31dcfd855676f9f965d133
BLAKE2b-256 f70e6cef3c495df461ff533209567a9e1401f1d22c0cf063a7198117f29bedbf

See more details on using hashes here.

Provenance

The following attestation bundles were made for synde-0.1.0-py3-none-any.whl:

Publisher: publish-package.yml on TieuLongPhan/SynDE

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page