Docking is one of those workflows where the scientific question and the file-management problem are almost impossible to separate.
You are not only asking whether a ligand might sit sensibly in a pocket. You are also asking whether the receptor was prepared consistently, whether the ligand format survived conversion, whether the docking box means what you think it means, and whether the final score came from a run you can reproduce.
StrataDock was built around that messiness. It is not trying to make docking scores more powerful than they are. It is trying to make the path from structure files to ranked poses easier to inspect.

The application supports a few different ways of defining the binding site, because real docking projects rarely start from the same place. If a co-crystal ligand exists, reference-ligand mode is the cleanest path. If only the receptor is available, fpocket can suggest candidate pockets. If coordinates are already known, manual box mode keeps the user in control.
That separation matters. A docking engine can only score the search space it is given, so pocket definition is not a UI detail. It is part of the experiment.
For validation, I included five co-crystal redocking systems: HIV protease, EGFR kinase, ABL kinase, trypsin, and HSV thymidine kinase. Each case has receptor files, native ligands, ligand inputs, docking box coordinates, and checks around pose output, docking score, and pose-level RMSD.

The validation set is the part I trust most as an engineering result. It turns StrataDock from a wrapper around Vina or GNINA into a workflow with reference cases and expected behavior.
The repo structure follows that idea. The Streamlit surface is the thing a user sees, but the reusable logic sits under core modules for receptors, ligands, pockets, docking, reports, sessions, and visualization. That makes the project easier to test than if every decision lived inside the UI script.
I would still be cautious about the biology. Docking should be treated as triage, not as proof of binding. A reasonable pose and a favorable score are useful clues, but they do not replace experimental validation, better scoring, or interface-level analysis.
The next version I would want is more explicit interface-quality reporting: not only overall RMSD and score, but contact recovery, pocket occupancy, and clearer redocking summaries.
References and artifacts: the application code is in the StrataDock repository.