Greetings,
While auditing scoring-function outputs for my molecular docking workflow, I identified a reproducible discrepancy between Smina's and Gnina's implementations of ad4_scoring.
Versions tested:
Both programs evaluate the same receptor and ligand PDBQT files using --score_only. Their reported unweighted energy terms agree to the printed precision, but the coefficient applied to non_dir_h_bond_lj differs.
| Implementation | Hydrogen-bond coefficient |
|---|---|
Smina built-in ad4_scoring |
−0.097400 |
| Gnina (recovered from energy decomposition) | +0.097439 |
| AutoDock4.0 reference | +0.097400 |
I confirmed that the unweighted hydrogen-bond term becomes zero at large receptor–ligand separation and is negative for favorable hydrogen-bond interactions.
In one reproducible example, the unweighted hydrogen-bond term is −2.27907. The resulting scores are:
Changing this single coefficient reproduces Gnina's result to within 0.00001 kcal/mol.
I also observed that the discrepancy varies systematically with the hydrogen-bond term across the complexes I tested, while the other AD4 term coefficients agree.
Could you clarify three questions?
ad4_scoring intentional, or might it be a sign error?AutoDock reference:
https://autodocksuite.scripps.edu/force-fields/
Thank you for your work on Smina and Gnina, and for taking the time to review this observation.
This seems to be an honest-to-goodness bug. Surprisingly, I can't find the commit where it was fixed in gnina - it seems like it has been correct from the beginning. I will update smina.