Blending experimental electron density information to protein-ligand interaction
Organizations: KAIST · SB Intuitions
Abstract
Machine learning models for protein-ligand interactions commonly rely on atomic coordinates, which are constructed by fitting molecular models to experimental electron-density maps. However, most models represent each complex as a single fitted structure, which can omit information about conformational heterogeneity, positional uncertainty, and local density support for individual atoms at binding interfaces. To fill this gap, we present CoDE, a Coordinate and Density Encoder, pre-trained on experimental density maps. We represent each binding site on a shared three-dimensional voxel grid combining atomic occupancy, experimental electron density, and its gradient magnitude. Using approximately 100K curated complexes, we pre-train a channel-wise vision transformer to jointly reconstruct masked atomic and density channels, learning a representation that integrates structural and experimental information. We evaluate the frozen encoder on two downstream tasks: (i) binding-affinity regression under leakage-controlled splits and (ii) pocket-conditioned ligand generation. Across these settings, CoDE improves over an identically pre-trained coordinate-only encoder and remains competitive with task-specific baselines, showing that density complements fitted atomic coordinates for protein-ligand interaction modeling and that the density-blended representation is useful for structure-based ligand generation.
Figures & tables
| Test (N=1320) | CL3 filtered Test (N=733) | |||||||
| Input | Method | Pre. | Pearson r | Spearman | RMSE | Pearson r | Spearman | RMSE |
| Seq. | DeepDTA | ✗ | 0.535 | 0.500 | 1.510 | 0.513 | 0.481 | 1.505 |
| MolTrans | ✗ | 0.494 | 0.461 | 1.567 | 0.415 | 0.404 | 1.585 | |
| HonestAffinity | ✓ | 0.472 | 0.459 | 1.582 | 0.466 | 0.436 | 1.563 | |
| Nesso-1 † | ✓ | 0.670 | 0.663 | 1.410 | 0.673 | 0.659 | 1.367 | |
| Struc. | HBGSA | ✗ | 0.567 | 0.542 | 1.703 | 0.568 | 0.548 | 1.586 |
| Design choices | Pearson r | Spearman | RMSE |
|---|---|---|---|
| CoDE (Ours) | 0.667 | 0.638 | 1.314 |
| - w.o. D , G ( CoE ) | 0.620 | 0.572 | 1.401 |
| - CoE + D recon. | 0.597 | 0.562 | 1.421 |
| - w.o. D channel | 0.652 | 0.621 | 1.326 |
| - w.o. G channel | 0.644 | 0.605 | 1.347 |
| - w. noisy D,G | 0.627 | 0.586 | 1.380 |
| Vina evaluation | Sample quality | ||||||||||||||||
| Score | Min | Dock | High aff. % | QED | SA | Div. | # atoms / mol | ||||||||||
| Method | Avg. | Med. | Avg. | Med. | Avg. | Med. | Avg. | Med. | Avg. | Med. | Avg. | Med. | Avg. | Med. | Avg. | Med. | |
| Reference | 79 | -6.21 | -6.10 | -6.66 | -6.15 | -7.32 | -6.99 | - | - | 0.46 | 0.46 | 0.72 | 0.75 | - | - | 22.8 | 21.0 |
| AR | 7,655 | -5.76 | -5.58 | -6.16 | -5.85 | -6.73 | -6.54 | 41.8 | 37.0 | 0.50 | 0.50 | 0.63 | 0.62 | 0.71 | 0.71 | 17.2 | 16.0 |
| Pocket2Mol | 7,772 | -5.06 | -4.78 | -6.47 | -5.90 | -7.27 | -6.79 | 51.2 | 51.0 | 0.57 | 0.57 | 0.74 | 0.75 | 0.72 | 0.78 | 18.5 | 16.0 |
| DiffSBDD | 7,720 | -2.70 | -4.62 | -4.89 | -5.41 | -6.71 | -6.78 | 41.3 | 36.4 | 0.49 | 0.50 | 0.63 | 0.62 | 0.80 | 0.80 | 20.2 | 20.0 |
Appendix figures & tables29 assets
Supplementary material from the paper’s appendix.
Appendix
| Dataset | Source size | Used after preprocessing | Role |
|---|---|---|---|
| PLINDER | 449,383 systems (1,357,906 instances) | 112,000 / 100 / - | Encoder pre-training |
| PDBBind v2020 | 19,443 complexes | 12,674 voxelized complexes | Source of affinity-labelled complexes |
| LP-PDBBind | 18,795 split-assigned complexes | 3,850 / 817 / 1,320 | Affinity regression |
| CASF-2016 | 285 complexes | - / - / 92 | Clean held-out affinity evaluation |
| CrossDocked2020 | 22.5M poses (processed into 99,881 / / 100) | 78,512 / 100 / 79 | Pocket-conditioned ligand generation |
| PLINDER | |
|---|---|
| All annotated ligand instances | 1357906 |
| X-ray diffraction | 1046290 |
| Proper ligand; excluding ions, artifacts, and cofactors | 300276 |
| Valid and RDKit-loadable | 289986 |
| 6–50 ligand heavy atoms | 259509 |
| Non-covalent | 197369 |
| Encoder | |
|---|---|
| Patch size | voxels (2 Å), 512 patches per group |
| Tokens | 1536 (3 groups 512) |
| Width / depth / heads | 640 / 18 / 10 |
| MLP ratio / activation | 4 / GELU |
| Dropout | 0.1 |
| Positional embedding | learnable, shared across groups, plus a learnable group embedding |
| CL1 filtered (N=1166) | CL2 filtered (N=1149) | |||||||
| Input | Method | Pre. | Pearson r | Spearman | RMSE | Pearson r | Spearman | RMSE |
| Seq. | DeepDTA | ✗ | 0.554 | 0.508 | 1.493 | 0.541 | 0.495 | 1.491 |
| MolTrans | ✗ | 0.499 | 0.467 | 1.564 | 0.513 | 0.478 | 1.528 | |
| HonestAffinity | ✓ | 0.477 | 0.453 | 1.598 | 0.483 | 0.450 | 1.580 | |
| Nesso-1 † | ✓ | 0.703 | 0.694 | 1.367 | 0.707 | 0.698 | 1.354 | |
| Struc. | HBGSA | ✗ | 0.554 | 0.537 | 1.628 | 0.567 | 0.541 | 1.953 |
| CASF-2016 clean held-out (N = 92) | ||||||||
| Input | Method | Pre. | Pearson r | 90% CI | Spearman | 90% CI | RMSE | 90% CI |
| Seq. | DeepDTA | ✗ | 0.520 | 0.488 | 1.735 | |||
| MolTrans | ✗ | 0.529 | 0.500 | 1.732 | ||||
| HonestAffinity | ✓ | 0.477 | 0.432 | 1.777 | ||||
| Nesso-1 † | ✓ | 0.621 | 0.631 | 1.721 | ||||
| Struc. | HBGSA | ✗ | 0.598 | 0.586 | 1.800 | |||
| Ring fail (%) | Changed | |||||||
|---|---|---|---|---|---|---|---|---|
| Method | Before | After | All rings | (%) | QED | SA | logP | Diversity |
| AR | 0.1 | 0.1 | 0.0 | 0.0 | 0.504 0.504 | 0.629 0.629 | 0.37 0.37 | 0.709 0.709 |
| Pocket2Mol | 1.1 | 1.0 | 0.5 | 0.1 | 0.566 0.566 | 0.743 0.743 | 1.64 1.64 | 0.724 0.724 |
| DiffSBDD | 1.4 | 1.4 | 0.2 | 0.0 | 0.495 0.495 | 0.628 0.628 | 1.07 1.07 | 0.796 0.796 |
| DecompDiff | 1.9 | 1.8 | 0.5 | 0.2 | 0.494 0.494 | 0.666 0.666 | 1.12 1.12 | 0.711 0.711 |
| TargetDiff | 9.5 | 3.7 | 0.7 | 5.9 | 0.493 0.497 | 0.608 0.615 | 1.36 1.36 | 0.747 0.748 |
| Fix | Score | Min | Dock | Same pose | Gen. dock (Å) | |
|---|---|---|---|---|---|---|
| Ring bond-order / H assignment (used) | 49 | ( ) | ( ) | ( ) | 40/49 | 3.37 3.41 |
| Including exocyclic bond-order changes | 49 | ( ) | ( ) | ( ) | 10/49 | 2.27 2.42 |