--- license: mit tags: - PROTAC - drug-discovery - cheminformatics - regression - xgboost library_name: xgboost pipeline_tag: tabular-regression --- # PROTAC Synthesizability — XGBoost An XGBoost regressor that predicts the **heavy-atom-count weighted synthesizability score** (`hac_weighted_score`) of PROTAC molecules from SMILES. Nested 5×5 scaffold cross-validation, Optuna tuning. **Mean CV R² = 0.565.** ## Files - `xgb_v3_final.ubj` — XGBoost booster - `xgb_v3_final.skops` — fitted preprocessor + target transformer - `xgb_v3_hparams.yaml` — hyperparameters (`.ubj` and `.skops` are both required to load the model.) ## Usage Requires the project code: https://github.com/ribesstefano/PROTAC-Synthesizability Install the package (editable) so `protac_synth` is importable, then: ```python from protac_synth.models.xgb.model import XGBoostRegressor from protac_synth.chem_utils import ( standardize_all, compute_fingerprints, compute_descriptors, ) model = XGBoostRegressor.load("xgb_v3_final") # base path, no extension smiles = ["O=C(O)c1ccccc1"] # featurization consumes standardized RDKit Mols, not raw SMILES mols = standardize_all(smiles) preds = model.predict( smiles, X_fp=compute_fingerprints(mols, model.fp_size, model.fp_radius), X_desc=compute_descriptors(mols), ) ``` Notes: - `compute_fingerprints` / `compute_descriptors` take pre-standardized Mols (from `standardize_all`), so each molecule is parsed and standardized once. - Using `model.fp_size` / `model.fp_radius` guarantees the fingerprint settings match those the model was trained with. ## Dependencies The `.skops` preprocessor and the RDKit descriptor set are **version-sensitive** — loading under a different version can raise `InconsistentVersionWarning` or produce a feature-count mismatch. Pin the versions the model was exported with: - `scikit-learn==1.6.1` (the version the `.skops` pipeline was saved with) - `rdkit` — pin the exact version used at training; the RDKit descriptor list changes across releases, and a mismatch changes the descriptor column count. - `skops`, `xgboost`, `numpy` — pin to the training environment. ## License MIT