Lacuna looks for cryptic pockets: sites that are closed or shallow in the structure you have but open as the protein flexes. A static detector such as the Binding-Site Detector sees one snapshot, so it misses a site that only opens under a hinge or breathing motion. Lacuna samples that motion, follows each cavity through it, and ranks the sites that open. It runs on CPU in seconds to minutes, with no force field, GPU, or model weights to download.
How it works
- Ensemble: an anisotropic network model (springs between nearby Cα atoms) gives the protein's lowest-frequency normal modes. Conformers are sampled along them at increasing amplitude and the displacement is carried to every atom. The input structure is always analyzed as well.
- Detection: pockets are detected in every conformer. The default alpha-sphere detector proposes sites only at concavities. The learned surface detector scores the whole probe-accessible surface and reaches sites the geometry discards; the fused option pools both. The surface detectors run on geometry alone here, without a protein language model.
- Clustering: matching cavities in different conformers are clustered into one site.
- Ranking: sites are ranked with Lacuna's fitted ranker by default, or by crypticity, peak druggability, or persistence alone.
Sampling is deterministic, so the same structure and settings give the same table.
| Metric | Meaning |
|---|---|
| Crypticity (0–1) | How strongly the site opens relative to the input structure while being druggable when open. A site flagged cryptic clears Lacuna's threshold. |
| Persistence (0–1) | Fraction of conformers in which the site is open. Cryptic sites are often low. |
| Druggability (0–1) | Composite of volume, enclosure, hydrophobicity, and aromatic content; max_druggability is the most open state. |
| Volume range | Smallest and largest cavity volume across the ensemble, next to the volume in the input (apo_volume_A3). |
Inputs
A protein structure as PDB or mmCIF: an experimental structure, a predicted one from ESMFold2 or Boltz-2, an OpenMM MD frame, or a PDB ID. Ligands and waters in the file are ignored; pockets come from protein atoms only. To reach a site at a dimer interface, turn on the biological-assembly option, or upload the RCSB biological assembly if the deposited file has no assembly operators.
Outputs
| File | Contents |
|---|---|
pockets.json | One row per site: rank, a cubic AutoDock Vina box (center, size), the metrics above, lining residues, and the conformers the site appears in |
boltz_constraints.json | A Boltz-2 pocket constraint per site, plus the chain sequences its residue positions refer to |
sites/pocket_N.pdb | Pseudoatoms at each site's centre and extent, to load beside the protein in a viewer |
reference_ligand.sdf | A one-atom placeholder at the top site |
summary.json | Detector, ranking used, conformer count, and warnings |
Each box is centred on the site centroid. Its edge is twice the radius of a sphere with the site's volume, plus the padding on each side.
Using the Boltz-2 constraints
Boltz-2 numbers residues by their position in the sequence you give it, not by PDB residue number. Lacuna writes each chain's sequence (standard residues in file order, so gaps in the model are skipped) and gives each contact as [chain, position] in that sequence.
- Open
boltz_constraints.jsonand pick a site frompockets. - Use the sequences in
chainsfor the Boltz-2 protein, or re-index the contacts if your sequence differs (for example, it fills in missing loops). - Give your ligand the id named in
binder(L) and add the site's entry to the Boltz-2constraintslist.
Workflows do not pass these constraints to Boltz-2 automatically yet; the boxes do chain into AutoDock Vina.
Not covered
- Molecular dynamics or mixed-solvent ensembles, and Lacuna's experimental Boltz-2 ensemble backend. The elastic-network model captures large, collective motions; side-chain rearrangements that open small sites are beyond it.
- Sequence-based reranking and sequence-seeded proposals, which need a protein language model.
- Docking itself, and ligand or binder design.
Related tools
In a workflow, the pockets table binds to the boxes input of AutoDock Vina, and the placeholder ligand to DrugFlow or SurfDock where they need a reference ligand. For pockets on a single static structure, use the Binding-Site Detector; to clean up a structure first, the Protein Preparer. For blind docking without a box, see DiffDock.