A Pipeline for Structure-Aware Docking
Published:
One UniProt Code, Many Conformations, Zero Excuses: A Pipeline for Structure-Aware Docking
I believe it still happens too frequently in structure-based drug design, that comp chems will pick one PDB structure, dock their ligands into it, and call it a day. Maybe we select it based on the best resolution, maybe we check if there’s a co-crystallized ligand in the pocket, or maybe we just pick the last one that was published. The moral of the story is the same: we will still treat that single frozen snapshot as if it were the definitive, eternal truth about how a protein behaves.
It isn’t. Proteins are not statues. They’re more like caffeinated toddlers: constantly wiggling, breathing, opening and closing pockets, occasionally doing something wildly different depending on who’s watching (or which crystallization buffer they were dunked in). A single PDB entry is one Polaroid from a very long home video, and if your docking result depends entirely on which Polaroid you grabbed, you don’t have a reliable result, but rather a coin flip with a nice RMSD written on it.
So I built a pipeline that shows the extent of this problem. You can test it yourself. Just give it a UniProt code, and it will:
- Pull down a bunch of available structures from the PDB for that target.
- Select a diverse subset using RMSD-based clustering, so instead of docking into five near-identical copies of the same apo structure, you dock into representatives that actually span the conformational space on offer.
- Dock a small panel of ligands into each selected structure using AutoDock Vina.
- Compare the results across targets so you can see, at a glance, where your ligands are robust hitters and where their binding poses and scores are basically vibes-based — wildly conformation-dependent and not to be trusted.
Why clustering instead of “just pick five”
Here’s the thing about downloading “a few structures” naively: PDB entries for a well-studied target are not uniformly distributed across conformational space. They’re distributed across whatever labs happened to get crystals to grow that year. You’ll often get eight structures that are basically the same closed conformation with different ligands photobombing the active site, and one lonely outlier that’s actually interesting.
If you just grab the first five hits, you’re not sampling diversity — you’re sampling popularity. RMSD clustering fixes this by asking a more honest question: “of everything available, which structures are actually structurally distinct from each other?” The pipeline computes pairwise RMSDs (after appropriate alignment, because nobody wants clustering results dominated by rigid-body rotation artifacts), clusters them, and picks representatives — so your five docking targets are five different stories, not the same story told five times.
Docking with Vina, but the point isn’t Vina
I want to be clear: AutoDock Vina isn’t the star of this show. It’s a solid, fast, well-validated workhorse, and that’s exactly why it’s the right tool here — you don’t need the fanciest scoring function on Earth to ask the question this pipeline is actually asking, which is not “what’s the single best predicted affinity for my ligand?” but rather “how much does my answer change depending on which structural snapshot I trust?”
That reframing matters. A ligand that docks with a consistent pose and consistent score across five diverse conformations is telling you something meaningful about robustness. A ligand that scores brilliantly in one structure and falls apart in the other four is telling you something too — just not what you hoped. Either way, you learn more from the spread than you ever would from a single number bolded in a table.
What comes out the other end
The final analysis step isn’t just “here are five affinity values, go nuts.” It looks at pose consistency and score variance across the selected structures per ligand, so you get a sense of which ligand–target pairs are stable hits versus which ones are basically riding on the geometry of a single loop that happened to be modeled a certain way in one crystal. If you’ve ever been burned by a docking result that looked gorgeous and then evaporated the moment someone re-ran it on a different structure of the same protein — this is the sanity check that would’ve saved you the embarrassment.
Who this is for
If you’re doing early-stage virtual screening triage, building intuition about a new target, or just tired of hand-wringing over which PDB entry to trust, this pipeline automates the boring-but-essential part: gathering structural diversity and quantifying how much your docking conclusions actually depend on it. It won’t replace careful downstream validation (nothing should), but it will stop you from accidentally overfitting your medicinal chemistry instincts to the geometric quirks of one crystallographer’s Tuesday.
Code, install instructions, and examples are on GitHub — link below. Clone it, point it at your favorite UniProt code, and go find out whether your favorite hit is actually robust, or just lucky.