Skip to main content

SynDE

Documentation Status License: MIT Python 3.11+

Interpretable 2D ranking of constitutional isomers by GFN2-xTB energy.

Online documentation is hosted at synde.readthedocs.io.


Overview

SynDE ranks constitutional isomers using a coordinate-free linear model over two-dimensional molecular-graph descriptors. The default model is packaged directly with its trained weights, enabling isomer ranking without conformer generation or xTB execution at inference time.

  • Inference speed: Ranks constitutional isomers in milliseconds from 2D molecular graphs.
  • Interpretable terms: Each prediction decomposes into exact signed linear components that sum to the total score.
  • Self-contained: Pre-trained model weights are bundled into the package; no external semiempirical quantum binaries are required for graph scoring.
  • Provenance tracking: Includes model cards, validation records, and feature-distance diagnostic warnings.

Navigation


Installation

Standard Installation

git clone https://github.com/TieuLongPhan/SynDE.git
cd SynDE
python -m pip install -e .

Development Dependencies

The supplied Conda environment includes optional empirical, semiempirical, benchmark, test, and documentation dependencies, including the xTB executable:

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

Optional Python backends can instead be installed individually:

python -m pip install -e '.[empirical]'       # Joback terms via thermo
python -m pip install -e '.[semiempirical]'   # GFN2 single points via tblite
python -m pip install -e '.[benchmark,dev]'   # calibration and developer tools

Quickstart

1. Rank Isomer Groups

from synde.energy import SynDEScorer
from synde.graph import GraphBuilder

scorer = SynDEScorer.load_default()

molecules = [
    GraphBuilder.from_smiles("CCCCC"),
    GraphBuilder.from_smiles("CC(C)CC"),
    GraphBuilder.from_smiles("CC(C)(C)C"),
]

outputs = scorer.score_group(molecules)

ranking = sorted(zip(molecules, outputs), key=lambda item: item[1].score)
for position, (molecule, output) in enumerate(ranking, start=1):
    print(f"{position} {molecule.canonical_smiles} {output.score:.4f} {output.status}")

Note: Lower scores indicate lower predicted relative energy within the input group. All candidates passed to score_group() must share the exact same molecular formula and formal charge.

2. Single Molecule Scoring

molecule = GraphBuilder.from_smiles("CC(=O)NC")
output = scorer.score(molecule)
print(output.score)

3. Inspect Output Attributes

output = outputs[0]

print("Status:", output.status)
print("Score:", output.score)
print("Units:", output.units)
print("Components:", output.components)
print("Descriptors:", output.descriptors)
print("Warnings:", output.warnings)
print("Provenance:", output.provenance)

data_dict = output.to_dict()

Scope and Domain Constraints

  • Supported Elements: Connected, neutral, closed-shell structures containing B, C, N, O, F, Si, S, Cl, Br, or I.
  • Isomer Class: Constitutional isomers (same formula, different atom connectivity).
  • Target Metric: Model scores correspond to GFN2-xTB ranking targets. They represent relative statistical predictions rather than physical conformer populations or free energies.

Package Structure

Directory Description
synde/graph/ Graph normalization, topological invariants, and $\pi$-system assignments.
synde/energy/ SynDEScorer, model cards, feature attribution, and score dataclasses.
synde/geometry/ Conformer generation and semiempirical xTB workflow utilities.
synde/integration/ Workflow adapters and reaction/ITS scoring tools.
synde/models/ Bundled default model resources and weights.
doc/ Sphinx documentation source files.

Documentation

Hosted documentation is available at synde.readthedocs.io.

To build HTML documentation locally:

sphinx-build -b html doc docs

The output will be rendered in docs/index.html.


Testing

pytest -q
bash lint.sh

License

SynDE is distributed under the MIT License. See LICENSE.

Acknowledgments

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

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.2.0.tar.gz (157.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.2.0-py3-none-any.whl (156.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: synde-0.2.0.tar.gz
  • Upload date:
  • Size: 157.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for synde-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2e676773a85f585b01be8e7c72a124fdff222bd4559545df5f6209c86fd0488b
MD5 673a2ddad1d7e71e087314f921a5671f
BLAKE2b-256 f7122868d7d8a4dd56607fe5824a189b66aac5d02c708013d554cf861a61036c

See more details on using hashes here.

Provenance

The following attestation bundles were made for synde-0.2.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.2.0-py3-none-any.whl.

File metadata

  • Download URL: synde-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 156.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for synde-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6668ee41999bdaf71eccfc67282da31b343c9f0b073ade65a7e29f4d3a06f0c5
MD5 80694b2c2ad39ed99b5b1dfaa75a7eac
BLAKE2b-256 62fef122fe214e3224cdf3f5363f7c33e868d15d5a588e1f9136403228f43ca5

See more details on using hashes here.

Provenance

The following attestation bundles were made for synde-0.2.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.

Release history Release notifications | RSS feed

0.5.0

2 files

This release

0.2.0 This release

2 files

0.1.0

2 files

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