PROTAC Synthesizability β CheMeleon GNN
A graph neural network that predicts the heavy-atom-count weighted synthesizability
score (hac_weighted_score) of PROTAC molecules from SMILES. Built on the
CheMeleon foundation model (a pretrained
D-MPNN) fine-tuned via ChemProp β graph-only, no engineered features.
Nested 5Γ5 scaffold cross-validation, Optuna tuning. Mean CV RΒ² = 0.643.
Files
gnn_v3_final.ckptβ fine-tuned model checkpoint (weights + target scaler)gnn_v3_hparams.yamlβ hyperparameters
Usage
Requires the project code: https://github.com/ribesstefano/PROTAC-Synthesizability
Install the package (editable) so protac_synth is importable, then:
from protac_synth.models.gnn.model import CheMeleonRegressor
model = CheMeleonRegressor.load("gnn_v3_final") # base path, no extension
smiles = ["O=C(O)c1ccccc1"]
preds = model.predict(smiles) # graph-only: SMILES in, prediction out
The GNN is graph-only: it builds the molecular graph internally, so no
fingerprints or descriptors are passed to predict.
Dependencies
The model loads from a torch/ChemProp checkpoint (no .skops/scikit-learn), so
loading is sensitive to the ChemProp / Lightning / torch versions rather than
scikit-learn. Pin the versions the model was fine-tuned with:
chemprop>=2.2.0(pin the exact training version for reproducible checkpoint loading)lightning,torchβ pin to the training environment (checkpoint format is torch/Lightning-version dependent)rdkit,numpyβ pin to the training environment
License
MIT