Finds cryptic binding pockets that are invisible in a single static structure. Generates a conformational ensemble, detects pockets in every conformer, clusters them into transient sites, and ranks them. Seconds on a CPU, no GPU required. Emits docking-ready Boltz constraints and AutoDock Vina boxes.
35
stars
139
commits
Python
primary language
Sep 11, 2026
updated
Cryptic binding pocket discovery via conformational ensemble analysis.
Most protein structure predictors return one static conformation. But many disease-relevant proteins are called undruggable not because they are biologically intractable, but because no pocket is visible in their ground state. K-Ras was considered undruggable for thirty years until a transient cryptic pocket was found beneath its switch-II region. That pocket now backs sotorasib and adagrasib.
Lacuna finds those pockets. It generates a conformational ensemble from any input structure, detects pockets in every conformer, clusters them across the ensemble to surface sites that appear only transiently, and ranks them with a fitted model.
lacuna discover kras.pdb --conformers 20 --emit-boltz-constraints --emit-vina-boxes
pip install lacuna-pockets
Optional extras, for better conformational sampling or the sequence-assisted ranker:
pip install "lacuna-pockets[openmm]" # 100ps implicit-solvent MD
pip install "lacuna-pockets[plm]" # PLM-assisted ranker (PyTorch, ESM-2)
pip install "lacuna-pockets[boltz]" # Boltz-2 diffusion sampling (experimental, GPU)
pip install "lacuna-pockets[all]" # everything
Requires Python 3.10+. The default backend needs no GPU, no force field and no model weights.
lacuna discover protein.pdb --conformers 20
Writes a ranked pocket_report.json plus, on request, Boltz YAML constraints
and AutoDock Vina boxes ready for docking. Full options in
docs/USAGE.md.
| Usage | CLI, Python API, backends, output formats, worked example |
| Ranking | Ranking strategies, the fitted model, crypticity |
| Benchmarks | Full results, head-to-head comparisons, negative results |
| Paper | Analysis, per-candidate data, and scripts that regenerate every figure |
On CryptoBench's designated test fold, Lacuna recovers 55.6% of known cryptic sites in its top five with the zero-dependency default, and 66.1% with the optional PLM-assisted ranker. The latter is level with P2Rank's 63.3% (+2.8%, CI -4.4 to +9.4, spanning zero, so parity rather than a win); the default trails it by 7.8 points. Against MDpocket given the same ensemble, which isolates this pipeline from the sampler, the default gains +11.7% (CI +3.9 to +19.4).
Full results, including where Lacuna loses →
The more interesting result is not Lacuna's score. Across five candidate-generation methods evaluated in six configurations, coverage (whether a qualifying candidate is proposed at all) spans 14.5 points, while conversion (whether a method's own coverage reaches the top five) spans 36.7. fpocket has the highest coverage at 73.7% but the lowest top-5 recovery at 43.6%, while P2Rank converts 95.8% of the sites it covers. Two Lacuna rankers operating on the exact same candidate set differ by 10.6 points of top-5 recovery, isolating ranking directly.
Union coverage saturates at 92.2%, rising to 98.6% for annotated sites containing at least eight residues. Candidate competition is also causal: adding synthetic competitors while holding the true site, real candidate set, and ranker fixed reduces top-5 recovery by 16.8 points on the training folds and 17.0 points on the held-out test fold. Detector consensus provides no measurable gain at a budget of five candidates, but gains 11.8 points at a budget of twenty.
Moore CW. Cryptic binding sites are detected but not ranked: coverage, conversion, and the limits of detector consensus. bioRxiv 2026. doi:10.64898/2026.08.11.743381
If you use Lacuna, please cite the software paper:
@article{moore2026lacuna,
author = {Moore, Clayton W.},
title = {Lacuna: Cryptic Binding Pocket Discovery
via Conformational Ensemble Analysis},
journal = {bioRxiv},
year = {2026},
doi = {10.64898/2026.08.14.744956}
}
If you use the benchmark data or the coverage/conversion decomposition, please also cite the accompanying analysis:
@article{moore2026coverage,
author = {Moore, Clayton W.},
title = {Cryptic binding sites are detected but not ranked:
coverage, conversion, and the limits of detector consensus},
journal = {bioRxiv},
year = {2026},
doi = {10.64898/2026.08.11.743381}
}
To cite a specific software version, the archived releases carry their own DOIs under the concept DOI 10.5281/zenodo.20533638, which always resolves to the newest.
Lacuna is measured against, and builds on, work released openly by others: fpocket (Le Guilloux et al. 2009), P2Rank (Krivák & Hoksza 2018), IF-SitePred (Carbery et al. 2024) and MDpocket (Schmidtke et al. 2011). Evaluation uses the CryptoBench (Vavra et al. 2024) and PocketMiner (Meller et al. 2023) datasets. Method credits: ANM (Atilgan et al. 2001), SiteMap druggability (Halgren 2009), enclosure scoring (Schmidtke & Barril 2010), ESM-2 (Lin et al. 2023).
MIT, free to use, study, modify, share, and embed in closed-source or commercial work, with no copyleft obligation.
Versions 0.2.0 through 0.3.1 were released under AGPL-3.0 and remain available under those terms. MIT applies from 1.0.0 onward. Lacuna moved back to a permissive license because its central recommendation is to combine several detectors, and copyleft makes that combination harder for exactly the people the work is aimed at.
139 commits
Python
99.0%
Finds cryptic binding pockets that are invisible in a single static structure. Generates a conformational ensemble, detects pockets in every conformer, clusters them into transient sites, and ranks them. Seconds on a CPU, no GPU required. Emits docking-ready Boltz constraints and AutoDock Vina boxes.
35
stars
139
commits
Python
primary language
Sep 11, 2026
updated
Cryptic binding pocket discovery via conformational ensemble analysis.
Most protein structure predictors return one static conformation. But many disease-relevant proteins are called undruggable not because they are biologically intractable, but because no pocket is visible in their ground state. K-Ras was considered undruggable for thirty years until a transient cryptic pocket was found beneath its switch-II region. That pocket now backs sotorasib and adagrasib.
Lacuna finds those pockets. It generates a conformational ensemble from any input structure, detects pockets in every conformer, clusters them across the ensemble to surface sites that appear only transiently, and ranks them with a fitted model.
lacuna discover kras.pdb --conformers 20 --emit-boltz-constraints --emit-vina-boxes
pip install lacuna-pockets
Optional extras, for better conformational sampling or the sequence-assisted ranker:
pip install "lacuna-pockets[openmm]" # 100ps implicit-solvent MD
pip install "lacuna-pockets[plm]" # PLM-assisted ranker (PyTorch, ESM-2)
pip install "lacuna-pockets[boltz]" # Boltz-2 diffusion sampling (experimental, GPU)
pip install "lacuna-pockets[all]" # everything
Requires Python 3.10+. The default backend needs no GPU, no force field and no model weights.
lacuna discover protein.pdb --conformers 20
Writes a ranked pocket_report.json plus, on request, Boltz YAML constraints
and AutoDock Vina boxes ready for docking. Full options in
docs/USAGE.md.
| Usage | CLI, Python API, backends, output formats, worked example |
| Ranking | Ranking strategies, the fitted model, crypticity |
| Benchmarks | Full results, head-to-head comparisons, negative results |
| Paper | Analysis, per-candidate data, and scripts that regenerate every figure |
On CryptoBench's designated test fold, Lacuna recovers 55.6% of known cryptic sites in its top five with the zero-dependency default, and 66.1% with the optional PLM-assisted ranker. The latter is level with P2Rank's 63.3% (+2.8%, CI -4.4 to +9.4, spanning zero, so parity rather than a win); the default trails it by 7.8 points. Against MDpocket given the same ensemble, which isolates this pipeline from the sampler, the default gains +11.7% (CI +3.9 to +19.4).
Full results, including where Lacuna loses →
The more interesting result is not Lacuna's score. Across five candidate-generation methods evaluated in six configurations, coverage (whether a qualifying candidate is proposed at all) spans 14.5 points, while conversion (whether a method's own coverage reaches the top five) spans 36.7. fpocket has the highest coverage at 73.7% but the lowest top-5 recovery at 43.6%, while P2Rank converts 95.8% of the sites it covers. Two Lacuna rankers operating on the exact same candidate set differ by 10.6 points of top-5 recovery, isolating ranking directly.
Union coverage saturates at 92.2%, rising to 98.6% for annotated sites containing at least eight residues. Candidate competition is also causal: adding synthetic competitors while holding the true site, real candidate set, and ranker fixed reduces top-5 recovery by 16.8 points on the training folds and 17.0 points on the held-out test fold. Detector consensus provides no measurable gain at a budget of five candidates, but gains 11.8 points at a budget of twenty.
Moore CW. Cryptic binding sites are detected but not ranked: coverage, conversion, and the limits of detector consensus. bioRxiv 2026. doi:10.64898/2026.08.11.743381
If you use Lacuna, please cite the software paper:
@article{moore2026lacuna,
author = {Moore, Clayton W.},
title = {Lacuna: Cryptic Binding Pocket Discovery
via Conformational Ensemble Analysis},
journal = {bioRxiv},
year = {2026},
doi = {10.64898/2026.08.14.744956}
}
If you use the benchmark data or the coverage/conversion decomposition, please also cite the accompanying analysis:
@article{moore2026coverage,
author = {Moore, Clayton W.},
title = {Cryptic binding sites are detected but not ranked:
coverage, conversion, and the limits of detector consensus},
journal = {bioRxiv},
year = {2026},
doi = {10.64898/2026.08.11.743381}
}
To cite a specific software version, the archived releases carry their own DOIs under the concept DOI 10.5281/zenodo.20533638, which always resolves to the newest.
Lacuna is measured against, and builds on, work released openly by others: fpocket (Le Guilloux et al. 2009), P2Rank (Krivák & Hoksza 2018), IF-SitePred (Carbery et al. 2024) and MDpocket (Schmidtke et al. 2011). Evaluation uses the CryptoBench (Vavra et al. 2024) and PocketMiner (Meller et al. 2023) datasets. Method credits: ANM (Atilgan et al. 2001), SiteMap druggability (Halgren 2009), enclosure scoring (Schmidtke & Barril 2010), ESM-2 (Lin et al. 2023).
MIT, free to use, study, modify, share, and embed in closed-source or commercial work, with no copyleft obligation.
Versions 0.2.0 through 0.3.1 were released under AGPL-3.0 and remain available under those terms. MIT applies from 1.0.0 onward. Lacuna moved back to a permissive license because its central recommendation is to combine several detectors, and copyleft makes that combination harder for exactly the people the work is aimed at.
139 commits
Python
99.0%