ailab-bio/TACK

Dataset

TACK — TArgeting Chimeras Knowledge

2

29 commits

1 linked in READMEs

updated May 20, 2026

See the code

README

TACK — TArgeting Chimeras Knowledge

A curated, ML-ready dataset and benchmark for PROTAC degradation activity prediction

Paper GitHub Models License


Overview

Proteolysis-targeting chimeras (PROTACs) are a promising drug modality that induces targeted protein degradation by hijacking the cell's native ubiquitin–proteasome system. However, rational PROTAC design remains challenging due to the complex interplay between molecular structure, target proteins (POIs), E3 ligases, and cellular context.

TACK addresses three critical gaps in existing PROTAC ML benchmarks:

  • Data scarcity and inconsistency — harmonized from three major public repositories with standardized SMILES, protein annotations, and experimental conditions
  • Lack of rigorous benchmarks — scaffold-based 5×5 cross-validation and formal statistical testing (Friedman, Wilcoxon, Tukey HSD) rather than simple train/test splits
  • Limited scope — supports regression (pDC₅₀, Dmax) and binary classification, not just the binary classification framing common in prior work

Ribes*, Dunlop*, and Mercado. TACK: A statistical evaluation of degradation activity on a novel TArgeting Chimeras Knowledge dataset. KDD AI for Sciences Track, 2026.


Dataset at a Glance

StatisticTPDdbPROTAC-DBPROTACpediaTACK
Total records22,1839,3801,2036,561
Unique PROTACs21,4296,1101,1893,514
Degradation endpoints6,5182,1705806,561
POI targets18444179164
E3 ligases82189
Cell lines142—139155
Hold-out set entries———913

The dataset contains 4,184 DC₅₀ and 2,377 Dmax measurements. Approximately 55% of entries are classified as active (DC₅₀ ≤ 100 nM and Dmax ≥ 80%).

Most represented biology:

  • POIs: Androgen Receptor (26.7%), SMARCA2 (12.0%), BTK (8.9%) — top 5 account for 61.6% of endpoints
  • E3 ligases: CRBN and VHL together account for 98.7% of measurements
  • Cell lines: LNCaP (20.9%), SW1573 (15.2%), Mino (7.0%) across 155 unique lines

Configs (Subsets)

ConfigDescriptionExamples
defaultAll endpoints (DC₅₀ + Dmax combined)6,561
DC50Potency measurements only4,184
DmaxMaximal degradation efficacy only2,377
multitaskPaired DC₅₀ + Dmax for the same PROTAC/assay, also used for binary activity classification1,563

Loading the Dataset

from datasets import load_dataset

# All endpoints
ds = load_dataset("ailab-bio/TACK")

# DC50 only
ds_dc50 = load_dataset("ailab-bio/TACK", "DC50")

# Dmax only
ds_dmax = load_dataset("ailab-bio/TACK", "Dmax")

# Paired multitask (DC50 + Dmax for same compound)
ds_multi = load_dataset("ailab-bio/TACK", "multitask")

The SMILES_Held_Out column flags the structurally dissimilar held-out set (~10% of data). To reproduce the train/validation split used in the paper:

ds = load_dataset("ailab-bio/TACK", "DC50")["train"]
train_val = ds.filter(lambda x: not x["SMILES_Held_Out"])
held_out  = ds.filter(lambda x: x["SMILES_Held_Out"])

Schema

Common columns (all configs)

ColumnTypeDescription
SMILESstringCanonical RDKit SMILES of the PROTAC
POI_NamestringGene name of the protein of interest
POI_SequencestringUniProt amino acid sequence of the POI
POI_UniProtstringUniProt accession for the POI
Ligase_NamestringName of the E3 ligase
Ligase_SequencestringUniProt amino acid sequence of the E3 ligase
Ligase_UniProtstringUniProt accession for the E3 ligase
Cell_LinestringCell line name (Cellosaurus-standardized)
Cell_Line_IDstringCellosaurus identifier
Cell_Line_SpeciesstringSpecies of origin for the cell line
Cell_Line_DescriptionstringTextual description from Cellosaurus
Valuefloat64Measured endpoint value
Value_UnitstringUnit of the value (nM for DC₅₀; % for Dmax)
Value_TypestringEndpoint type (DC50 or Dmax)
Value_OperatorstringComparison operator if censored (<, >, etc.)
Value_Errorfloat64Reported measurement error (if available)
Value_Range_Minfloat64Lower bound for range-reported values
Value_Range_Maxfloat64Upper bound for range-reported values
Value_Concentrationfloat64Treatment concentration for Dmax assays
Value_Concentration_UnitstringUnit of treatment concentration
Value_CategorystringCategorical activity label (where applicable)
Assay_Timefloat64Treatment duration in hours
AssaystringStandardized assay type (e.g., Western Blot, HiBit)
ModalitystringCompound modality (PROTAC, molecular glue, etc.)
ReferencestringSource literature or patent reference
DescriptionstringOriginal assay description
DatabasestringSource database (TPDdb, PROTAC-DB, PROTACpedia)
TPD_IDstringOriginal identifier in the source database
POI_Clusterint64POI sequence-based cluster ID
SMILES_Scaffold_Clusterint64Murcko scaffold cluster ID (used for CV splitting)
SMILES_Butina_Clusterint64Butina/Tanimoto cluster ID
SMILES_Held_OutboolTrue if this entry belongs to the structural hold-out set

The multitask config replaces Value, Value_Unit, etc. with Value_DC50, Value_Dmax and analogous suffixed columns, enabling simultaneous supervision on both endpoints.


Curation Pipeline

Raw data was aggregated from three repositories and cleaned through a multi-stage pipeline:

  1. SMILES standardization — canonicalization via RDKit; duplicates resolved by weighted scoring
  2. Endpoint standardization — DC₅₀ values converted to nM; range values converted to arithmetic mean with bounds stored; censored values (operators) preserved but flagged for exclusion from evaluation sets; categorical patent grades excluded
  3. Protein annotation — POI and E3 ligase names mapped to UniProt accessions; amino acid sequences retrieved from UniProt; BRD4 isoform handling applied
  4. Cell line standardization — validated against Cellosaurus; standardized identifiers and descriptions attached
  5. Assay standardization — assay descriptions parsed and normalized (e.g., "WB" → "Western Blot"); treatment concentrations extracted from metadata and free-text fields
  6. Hold-out construction — ~10% most structurally dissimilar PROTACs (by average Tanimoto distance using 512-bit Morgan8 fingerprints) isolated before any model training
  7. Scaffold-based CV clustering — remaining data grouped by Murcko scaffolds to prevent leakage between CV folds

Please refer to this link for the codebase used to generate the data.


Benchmark Results

Models were evaluated using scaffold-based 5×5 repeated cross-validation with statistical testing (Friedman + Wilcoxon + Benjamini–Hochberg correction for feature selection; Tukey HSD for architecture comparison).

Regression (hold-out set)

TaskModelMAERMSER²Spearman ρ
pDC₅₀MLP0.580.800.660.76
DmaxXGBoost18.8625.680.360.66

Binary Classification (validation folds, mean ± CI)

ModelROC-AUCPR-AUCMCCRecall @ Prec≥0.8
XGBoost0.8510.8700.5230.777
MLP0.7990.8240.4480.600
PROTAC-STAN0.7460.7730.4050.443

All pairwise differences are statistically significant (Tukey HSD, p < 0.001).

Key findings:

  • pDC₅₀ is substantially more predictable than Dmax (R² 0.66 vs. 0.36), reflecting the greater dependence of maximal degradation on cellular factors not captured by current molecular representations
  • Classical tree-based methods (XGBoost) outperform the domain-specific GNN PROTAC-STAN, consistent with the small-to-medium tabular dataset regime
  • Simple one-hot or n-gram protein encodings often match expensive ESM-S embeddings, particularly with XGBoost; ESM-S embeddings give a modest advantage for XGBoost on the classification task

Ensemble Uncertainty Quantification

Ensemble standard deviation correlates positively with absolute prediction error, enabling confidence-aware compound prioritization:

TaskMethodRMSESpearman ρ (σ vs. |error|)
pDC₅₀Caruana (33 models)0.6720.207*
pDC₅₀Uniform avg (500 models)0.6830.355**
DmaxCaruana (22 models)21.320.543**
DmaxUniform avg (500 models)22.920.694**

** p < 0.001; * p < 0.01


Best Models

Pre-trained ensemble models (XGBoost and MLP, all feature configurations, 25 CV folds each) are available on Zenodo:

Zenodo


Citation

If you use TACK in your research, please cite:

@misc{ribes2026tackstatisticalevaluationdegradation,
      title={TACK: A statistical evaluation of degradation activity on a novel TArgeting Chimeras Knowledge dataset}, 
      author={Stefano Ribes and Nils Dunlop and Rocío Mercado},
      year={2026},
      eprint={2605.19579},
      archivePrefix={arXiv},
      primaryClass={q-bio.QM},
      url={https://arxiv.org/abs/2605.19579}, 
}

License

The TACK dataset is released under the MIT License. The underlying experimental data is sourced from PROTAC-DB, PROTACpedia, and TPDdb — please refer to the respective database licenses for conditions on downstream use of the original data.


Acknowledgements

SR and RM acknowledge funding from the Chalmers Gender Initiative for Excellence (Genie). RM and ND acknowledge funding from the Wallenberg AI, Autonomous Systems and Software Program (WASP), supported by the Knut and Alice Wallenberg Foundation. The authors thank Yossra Gharbi, Alexander Persson, and Felix Erngård for helpful discussions. Computations were enabled by Chalmers e-Commons and NAISS (grant 2022-06725).

tabular

ailab-bio/TACK

Dataset

TACK — TArgeting Chimeras Knowledge

2

29 commits

1 linked in READMEs

updated May 20, 2026

See the code

README

TACK — TArgeting Chimeras Knowledge

A curated, ML-ready dataset and benchmark for PROTAC degradation activity prediction

Paper GitHub Models License


Overview

Proteolysis-targeting chimeras (PROTACs) are a promising drug modality that induces targeted protein degradation by hijacking the cell's native ubiquitin–proteasome system. However, rational PROTAC design remains challenging due to the complex interplay between molecular structure, target proteins (POIs), E3 ligases, and cellular context.

TACK addresses three critical gaps in existing PROTAC ML benchmarks:

  • Data scarcity and inconsistency — harmonized from three major public repositories with standardized SMILES, protein annotations, and experimental conditions
  • Lack of rigorous benchmarks — scaffold-based 5×5 cross-validation and formal statistical testing (Friedman, Wilcoxon, Tukey HSD) rather than simple train/test splits
  • Limited scope — supports regression (pDC₅₀, Dmax) and binary classification, not just the binary classification framing common in prior work

Ribes*, Dunlop*, and Mercado. TACK: A statistical evaluation of degradation activity on a novel TArgeting Chimeras Knowledge dataset. KDD AI for Sciences Track, 2026.


Dataset at a Glance

StatisticTPDdbPROTAC-DBPROTACpediaTACK
Total records22,1839,3801,2036,561
Unique PROTACs21,4296,1101,1893,514
Degradation endpoints6,5182,1705806,561
POI targets18444179164
E3 ligases82189
Cell lines142—139155
Hold-out set entries———913

The dataset contains 4,184 DC₅₀ and 2,377 Dmax measurements. Approximately 55% of entries are classified as active (DC₅₀ ≤ 100 nM and Dmax ≥ 80%).

Most represented biology:

  • POIs: Androgen Receptor (26.7%), SMARCA2 (12.0%), BTK (8.9%) — top 5 account for 61.6% of endpoints
  • E3 ligases: CRBN and VHL together account for 98.7% of measurements
  • Cell lines: LNCaP (20.9%), SW1573 (15.2%), Mino (7.0%) across 155 unique lines

Configs (Subsets)

ConfigDescriptionExamples
defaultAll endpoints (DC₅₀ + Dmax combined)6,561
DC50Potency measurements only4,184
DmaxMaximal degradation efficacy only2,377
multitaskPaired DC₅₀ + Dmax for the same PROTAC/assay, also used for binary activity classification1,563

Loading the Dataset

from datasets import load_dataset

# All endpoints
ds = load_dataset("ailab-bio/TACK")

# DC50 only
ds_dc50 = load_dataset("ailab-bio/TACK", "DC50")

# Dmax only
ds_dmax = load_dataset("ailab-bio/TACK", "Dmax")

# Paired multitask (DC50 + Dmax for same compound)
ds_multi = load_dataset("ailab-bio/TACK", "multitask")

The SMILES_Held_Out column flags the structurally dissimilar held-out set (~10% of data). To reproduce the train/validation split used in the paper:

ds = load_dataset("ailab-bio/TACK", "DC50")["train"]
train_val = ds.filter(lambda x: not x["SMILES_Held_Out"])
held_out  = ds.filter(lambda x: x["SMILES_Held_Out"])

Schema

Common columns (all configs)

ColumnTypeDescription
SMILESstringCanonical RDKit SMILES of the PROTAC
POI_NamestringGene name of the protein of interest
POI_SequencestringUniProt amino acid sequence of the POI
POI_UniProtstringUniProt accession for the POI
Ligase_NamestringName of the E3 ligase
Ligase_SequencestringUniProt amino acid sequence of the E3 ligase
Ligase_UniProtstringUniProt accession for the E3 ligase
Cell_LinestringCell line name (Cellosaurus-standardized)
Cell_Line_IDstringCellosaurus identifier
Cell_Line_SpeciesstringSpecies of origin for the cell line
Cell_Line_DescriptionstringTextual description from Cellosaurus
Valuefloat64Measured endpoint value
Value_UnitstringUnit of the value (nM for DC₅₀; % for Dmax)
Value_TypestringEndpoint type (DC50 or Dmax)
Value_OperatorstringComparison operator if censored (<, >, etc.)
Value_Errorfloat64Reported measurement error (if available)
Value_Range_Minfloat64Lower bound for range-reported values
Value_Range_Maxfloat64Upper bound for range-reported values
Value_Concentrationfloat64Treatment concentration for Dmax assays
Value_Concentration_UnitstringUnit of treatment concentration
Value_CategorystringCategorical activity label (where applicable)
Assay_Timefloat64Treatment duration in hours
AssaystringStandardized assay type (e.g., Western Blot, HiBit)
ModalitystringCompound modality (PROTAC, molecular glue, etc.)
ReferencestringSource literature or patent reference
DescriptionstringOriginal assay description
DatabasestringSource database (TPDdb, PROTAC-DB, PROTACpedia)
TPD_IDstringOriginal identifier in the source database
POI_Clusterint64POI sequence-based cluster ID
SMILES_Scaffold_Clusterint64Murcko scaffold cluster ID (used for CV splitting)
SMILES_Butina_Clusterint64Butina/Tanimoto cluster ID
SMILES_Held_OutboolTrue if this entry belongs to the structural hold-out set

The multitask config replaces Value, Value_Unit, etc. with Value_DC50, Value_Dmax and analogous suffixed columns, enabling simultaneous supervision on both endpoints.


Curation Pipeline

Raw data was aggregated from three repositories and cleaned through a multi-stage pipeline:

  1. SMILES standardization — canonicalization via RDKit; duplicates resolved by weighted scoring
  2. Endpoint standardization — DC₅₀ values converted to nM; range values converted to arithmetic mean with bounds stored; censored values (operators) preserved but flagged for exclusion from evaluation sets; categorical patent grades excluded
  3. Protein annotation — POI and E3 ligase names mapped to UniProt accessions; amino acid sequences retrieved from UniProt; BRD4 isoform handling applied
  4. Cell line standardization — validated against Cellosaurus; standardized identifiers and descriptions attached
  5. Assay standardization — assay descriptions parsed and normalized (e.g., "WB" → "Western Blot"); treatment concentrations extracted from metadata and free-text fields
  6. Hold-out construction — ~10% most structurally dissimilar PROTACs (by average Tanimoto distance using 512-bit Morgan8 fingerprints) isolated before any model training
  7. Scaffold-based CV clustering — remaining data grouped by Murcko scaffolds to prevent leakage between CV folds

Please refer to this link for the codebase used to generate the data.


Benchmark Results

Models were evaluated using scaffold-based 5×5 repeated cross-validation with statistical testing (Friedman + Wilcoxon + Benjamini–Hochberg correction for feature selection; Tukey HSD for architecture comparison).

Regression (hold-out set)

TaskModelMAERMSER²Spearman ρ
pDC₅₀MLP0.580.800.660.76
DmaxXGBoost18.8625.680.360.66

Binary Classification (validation folds, mean ± CI)

ModelROC-AUCPR-AUCMCCRecall @ Prec≥0.8
XGBoost0.8510.8700.5230.777
MLP0.7990.8240.4480.600
PROTAC-STAN0.7460.7730.4050.443

All pairwise differences are statistically significant (Tukey HSD, p < 0.001).

Key findings:

  • pDC₅₀ is substantially more predictable than Dmax (R² 0.66 vs. 0.36), reflecting the greater dependence of maximal degradation on cellular factors not captured by current molecular representations
  • Classical tree-based methods (XGBoost) outperform the domain-specific GNN PROTAC-STAN, consistent with the small-to-medium tabular dataset regime
  • Simple one-hot or n-gram protein encodings often match expensive ESM-S embeddings, particularly with XGBoost; ESM-S embeddings give a modest advantage for XGBoost on the classification task

Ensemble Uncertainty Quantification

Ensemble standard deviation correlates positively with absolute prediction error, enabling confidence-aware compound prioritization:

TaskMethodRMSESpearman ρ (σ vs. |error|)
pDC₅₀Caruana (33 models)0.6720.207*
pDC₅₀Uniform avg (500 models)0.6830.355**
DmaxCaruana (22 models)21.320.543**
DmaxUniform avg (500 models)22.920.694**

** p < 0.001; * p < 0.01


Best Models

Pre-trained ensemble models (XGBoost and MLP, all feature configurations, 25 CV folds each) are available on Zenodo:

Zenodo


Citation

If you use TACK in your research, please cite:

@misc{ribes2026tackstatisticalevaluationdegradation,
      title={TACK: A statistical evaluation of degradation activity on a novel TArgeting Chimeras Knowledge dataset}, 
      author={Stefano Ribes and Nils Dunlop and Rocío Mercado},
      year={2026},
      eprint={2605.19579},
      archivePrefix={arXiv},
      primaryClass={q-bio.QM},
      url={https://arxiv.org/abs/2605.19579}, 
}

License

The TACK dataset is released under the MIT License. The underlying experimental data is sourced from PROTAC-DB, PROTACpedia, and TPDdb — please refer to the respective database licenses for conditions on downstream use of the original data.


Acknowledgements

SR and RM acknowledge funding from the Chalmers Gender Initiative for Excellence (Genie). RM and ND acknowledge funding from the Wallenberg AI, Autonomous Systems and Software Program (WASP), supported by the Knut and Alice Wallenberg Foundation. The authors thank Yossra Gharbi, Alexander Persson, and Felix Erngård for helpful discussions. Computations were enabled by Chalmers e-Commons and NAISS (grant 2022-06725).

tabular