Pose validity
Legible, deterministic QC/qualification for bio-AI tool outputs — named-reason contracts + agent skills that compose with NVIDIA BioNeMo.
npx -y skills add Curtisflo/karyon --skill pose-validityAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Run a deterministic physical-validity DRC over molecular docking poses with karyon. Use for pose validity, PoseBusters-style geometric checks, bond-length/angle/ring-planarity/steric-clash/strain screening, qualifying or filtering ranked docking poses (e.g. DiffDock output), or deciding whether a predicted binding pose is physically plausible before trusting it.
The file declares its own license as Apache-2.0 AND CC-BY-4.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.2 KB, as published. Nobody here has run it
Pose Validity DRC
A deterministic, legible physical-validity gate for predicted ligand poses. It checks the geometry a docking model can get wrong — unparseable molecule, no real 3D conformer, bond-length / bond-angle outliers, non-planar aromatic rings, twisted double bonds, internal steric clashes, excessive strain energy — and returns a named reason for every violation, not just a score.
This is the programmatic version of the "sanity check" docking tools tell you to do by eye. NVIDIA's
diffdock-nim skill, for example, instructs the agent to "inspect poses in PyMOL … look for obvious
clashes, disconnected fragments." This skill automates that into a falsifiable verdict. (On the
PoseBusters benchmark, karyon's DRC found 70% of DiffDock's RMSD≤2 "successes" are physically invalid.)
Install
pip install "karyon[chem]" # pulls rdkit
Usage
Gate a directory, a glob, or a single SDF of poses (DiffDock writes pose_<rank>_conf<score>.sdf):
karyon qualify diffdock_out/ --modality pose --json # a directory, a glob, or one .sdf
karyon qualify pose_1.sdf --modality pose # human summary; exit 1 if any pose is invalid
.sdf is unambiguous, so --modality pose may be omitted. --json emits the stable spine schema —
{modality, ok, items:[{name, ok, score, reasons:[{contract, message, weight}]}], batch} — where a pose
passes iff score == 0 (weight-0 reasons are disclosures that inform but don't fail).
From Python:
from karyon import qualify
r = qualify("diffdock_out/", modality="pose") # or qualify("pose_1.sdf")
for name, v in r.items:
print(name, "valid" if v.score == 0 else f"INVALID — {v.messages}")
Composition with NVIDIA BioNeMo
Install alongside diffdock-nim (or boltz2-nim / openfold3-nim): the model proposes poses, this skill
qualifies them. The agent keeps only poses that pass, and reports why the rest were rejected — turning
"top pose, confidence 0.42" into "top pose, confidence 0.42, physically valid (0 contracts fired)."
Run it on the directory the model wrote:
karyon qualify diffdock_out/ --modality pose --json
A runnable end-to-end demo (model proposes → karyon qualifies → agent acts, no GPU/NIM) lives in the
karyon repo at examples/compose/.
Scope (honest)
This DRC owns the intramolecular axis end-to-end (the ligand's own geometry). Intermolecular validity — clash with the receptor, ligand outside the pocket — needs the receptor structure and is not covered by this single-molecule check; pair it with receptor-aware tooling for that axis.