Getting started
SynDE is a graph-first heuristic for molecular and reaction ranking. Its
default output is a dimensionless model score; it is not an absolute
molecular energy, kcal/mol prediction, or activation barrier.
Scope and interpretation
GraphEnergy provides molecule scores, products-minus-reactants state
scores, and candidate-pair rankings. The graph-only model uses normalized
molecular graphs, π-system/Hückel descriptors, frontier-orbital and HSAB
features, and transparent local topology terms.
For fully atom-mapped reactions, score_its() also evaluates an imaginary
transition-state graph. It exposes state-delta, bond-edit, local
reorganization, and formed-bond interaction terms separately. The resulting
its_score is a barrier-like ranking heuristic, not a physical
transition-state energy.
The initial supported domain is closed-shell organic chemistry with common main-group elements. Metals, radicals, unusual valence states, ambiguous π-electron assignments, and intermolecular complexes without a pose are reported as structured warnings or unsupported results.
Installation
Create the project environment from the supplied Conda definition:
conda env create -f env.yml
conda activate synde
python -m pip install -e .
For a pip-only installation:
python -m pip install -r requirements.txt
python -m pip install -e .
Quick graph scoring
from synde.energy import GraphEnergy
energy = GraphEnergy()
molecule = energy.score_molecule_from_smiles("c1ccccc1")
reaction = energy.score_reaction(
"[CH2:1]=[CH2:2]>>[CH3:1][CH3:2]"
)
print(molecule.score, molecule.units)
print(reaction.reaction_delta_score, reaction.units)
Use synde.graph when you need normalized graph construction or
descriptor-level access, and synde.geometry only when conformer-aware
information is explicitly required.
Mapped reaction-centre scoring
For a completely atom-mapped reaction, use the ITS heuristic:
its = energy.score_its("[CH2:1]=[CH2:2]>>[CH3:1][CH3:2]")
print(its.state_delta_score)
print(its.its_score)
its_score is a barrier-like ranking feature. It keeps state-delta,
bond-edit, local reorganization, and FMO/HSAB/charge interaction terms
separate. An unmapped reaction returns an explicit unsupported ITS result;
SynDE does not silently infer a reaction centre.