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

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support