| name | binding-site-analysis |
| description | Decide whether a protein has a pocket worth targeting, and where it is, before committing to a docking or design campaign. Use this skill to run fpocket cavity detection, rank cavities by druggability and volume, compare apo and holo conformations to spot induced fit, identify allosteric and cryptic cavities that only open in simulation, and convert a chosen cavity into the search box coordinates a docking run needs. Also trigger on fpocket, cavity detection, druggability score, alpha sphere, cryptic pocket, allosteric site, pocket volume, hotspot mapping, or undruggable target assessment. |
| license | MIT |
| allowed-tools | Read Write Edit Bash |
| compatibility | Requires Python 3.10+. The bundled scripts parse fpocket output and emit box coordinates using only the standard library. Detecting cavities needs the fpocket binary (conda-forge or apt, MIT) on PATH. Cryptic-cavity workflows additionally need a molecular dynamics engine; no GPU is required for static detection. |
| metadata | {"version":"1.0","skill-author":"K-Dense Inc.","openclaw":{"emoji":"🕳️","homepage":"https://github.com/Discngine/fpocket"},"hermes":{"category":"research"}} |
Binding Site Analysis
The step before docking. Every docking skill in this bundle assumes you already know where the
ligand goes and that the site is worth the compute — this is where those two assumptions get
checked. fpocket runs in seconds and can save a month of screening against a pocket that was never
going to bind anything.
Tool: fpocket, MIT, conda install -c conda-forge fpocket.
Alpha-sphere cavity detection by Voronoi tessellation.
Checked against: fpocket 4.x output format.
Read references/fpocket-output.md before parsing a run,
references/druggability.md before calling a site druggable or not,
and references/cryptic-and-allosteric.md when the answer
is "no pocket" — that one is judgement, not syntax.
The three scripts
| Script | Answers |
|---|
pocket_report.py | Which cavities are there, and is any of them worth targeting? |
pocket_box.py | Where exactly does the docking box go? |
site_compare.py | Does a pocket appear only when something is bound? |
Score and Druggability Score are different, and pocket1 is not the answer
This is the thing to get right. fpocket reports two numbers per cavity and they measure different
things. Score ranks cavities geometrically, and pocket numbering follows it. Druggability
Score is a logistic model trained to separate sites with known drug-like ligands from sites
without — it is the one that answers "worth a campaign".
They disagree often:
python skills/binding-site-analysis/scripts/pocket_report.py rank --out-dir receptor_out
# fpocket ranks pocket 1 first by Score, but pocket 2 is the most druggable.
pocket druggability score volume apolar_fraction verdict reason
2 0.871 0.31 720.5 0.7143 druggable resembles sites with known drug-like ligands
1 0.183 0.412 980.4 0.3172 poor does not resemble a small-molecule binding site
Pocket 1 is larger and scores higher. It is also 68% polar surface, which is a groove rather than
a pocket. Volume alone is misleading — the apolar fraction is what distinguishes a site that
will bind a small molecule, and this script derives it because fpocket does not.