-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NADP gives some inconsistent energies across engines. #894
Comments
I suppose NAGL isn't permitted for this go-around? The LAMMPS bonded energy mismatch is almost surely #892: In [2]: from openff.toolkit import Molecule, ForceField, Topology
...: from openff.interchange.drivers import get_summary_data
...: from openff.units import unit
...:
...: sage = ForceField("openff_unconstrained-2.1.0.offxml")
...: # SMILES from https://www.rcsb.org/ligand/NAP
...: nadp = Molecule.from_smiles(
...: r"c1cc(c[n+](c1)[C@H]2[C@@H]([C@@H]([C@H](O2)CO[P@@](=O)([O-])O[P@](=O)(O)OC[C@@H]3[C@H]([C@H]([C@@H](O3)n4cnc
...: 5c4ncnc5N)OP(=O)(O)O)O)O)O)C(=O)N"
...: )
...: nadp.generate_conformers(n_conformers=1)
...:
...: nadp_interchange = sage.create_interchange(nadp.to_topology())
...: nadp_interchange.box = [[4, 0, 0], [0, 4, 0], [0, 0, 4]] * unit.nanometer
...:
...: get_summary_data(nadp_interchange)
Warning: : Failed due to unspecified stereochemistry
Out[2]:
Bond Angle Torsion Electrostatics vdW RBTorsion
OpenMM 26.600429 310.672706 896.221085 -3244.337363 14.406467 NaN
Amber 26.600617 310.672878 896.221168 -3244.227158 20.641346 NaN
GROMACS 26.600632 310.673157 896.221071 -3244.741211 14.430875 0.0
LAMMPS 26.600424 310.672698 896.221074 -3244.337866 13.744850 NaN The Amber differences are, owing to the amount of rings in NADP, probably #686 #688 which I ought to get back to despite how frustrating it has been.
NaN/zero is okay. It's a type of torsion that OPLS uses and shows up when we use Foyer: https://manual.gromacs.org/current/reference-manual/functions/bonded-interactions.html#proper-dihedrals-ryckaert-bellemans-function |
Alright, I'm happy with my earlier diagnoses; using 9258d6b: In [1]: from openff.toolkit import Molecule, ForceField, Topology, unit
...: from openff.interchange.drivers import get_summary_data
...:
...: sage = ForceField("openff_unconstrained-2.1.0.offxml")
...: sage["vdW"].switch_width *= 0
...:
...: # SMILES from https://www.rcsb.org/ligand/NAP
...: nadp = Molecule.from_smiles(
...: r"c1cc(c[n+](c1)[C@H]2[C@@H]([C@@H]([C@H](O2)CO[P@@](=O)([O-])O[P@](=O)(O)OC[C@@H]3[C@H]([C@H]([C@@H](O3)n4cnc5
...: c4ncnc5N)OP(=O)(O)O)O)O)O)C(=O)N"
...: )
...: nadp.generate_conformers(n_conformers=1)
...: nadp.assign_partial_charges(partial_charge_method="gasteiger")
...:
...: nadp_interchange = sage.create_interchange(
...: nadp.to_topology(), charge_from_molecules=[nadp]
...: )
...: nadp_interchange.box = [[4, 0, 0], [0, 4, 0], [0, 0, 4]] * unit.nanometer
...:
...: get_summary_data(nadp_interchange)
<snipping out some LAMMPS spam>
Out[1]:
Bond Angle Torsion Electrostatics vdW RBTorsion
OpenMM 26.600429 310.672706 896.221085 -393.065355 14.086832 NaN
Amber 26.600617 310.672878 896.221168 -393.066298 14.088783 NaN
GROMACS 26.600632 310.673157 896.221071 -393.272690 14.107502 0.0
LAMMPS 26.600424 310.672698 896.221083 -393.413335 13.744850 NaN |
After #897 #914 I'm getting the following results:
My two concerns are the slight difference in LAMMPS torsions and vdW energies (which should match Amber, since neither appear to have a SMIRNOFF-complatible switching function implemented, and so just have a hard cut-off in these code paths). cc: @timbernat particularly the torsions - 0.113 / 896 kJ/mol isn't much, but I can't ignore it either |
I think the LAMMPS torsion bit is the only thing that still stands out and I've split that out into a separate issue: #1086 |
Description
NADP (SMILES
"c1cc(c[n+](c1)[C@H]2[C@@H]([C@@H]([C@H](O2)CO[P@@](=O)([O-])O[P@](=O)(O)OC[C@@H]3[C@H]([C@H]([C@@H](O3)n4cnc5c4ncnc5N)OP(=O)(O)O)O)O)O)C(=O)N"
according to the PDB) has vdW energies that only agree to 2 significant figures between Amber and other engines, and bond energies that also differ substantially between LAMMPS and the other engines. It's not necessarily a huge deal, but it would be nice to be able to at least explain the discrepancies in the upcoming workshops, and Jeff mentioned that you were always on the lookout for fun new test cases!Reproduction
Output
(Side question - what is RBTorsion and is zero/nan ok?)
Software versions
conda list
?micromamba list
The text was updated successfully, but these errors were encountered: