diff --git a/Code/GraphMol/ForceFieldHelpers/Wrap/rdForceFields.cpp b/Code/GraphMol/ForceFieldHelpers/Wrap/rdForceFields.cpp index d199f9301..17f76a330 100644 --- a/Code/GraphMol/ForceFieldHelpers/Wrap/rdForceFields.cpp +++ b/Code/GraphMol/ForceFieldHelpers/Wrap/rdForceFields.cpp @@ -248,6 +248,8 @@ PyObject *getUFFVdWParams(const RDKit::ROMol &mol, const unsigned int idx1, } // namespace ForceFields BOOST_PYTHON_MODULE(rdForceFieldHelpers) { + boost::python::import("rdkit.ForceField.rdForceField"); + python::scope().attr("__doc__") = "Module containing functions to handle force fields"; diff --git a/Code/GraphMol/ForceFieldHelpers/Wrap/testHelpers.py b/Code/GraphMol/ForceFieldHelpers/Wrap/testHelpers.py index 9960c567e..e4907a40a 100644 --- a/Code/GraphMol/ForceFieldHelpers/Wrap/testHelpers.py +++ b/Code/GraphMol/ForceFieldHelpers/Wrap/testHelpers.py @@ -5,7 +5,7 @@ import numpy from rdkit import Chem, RDConfig from rdkit.Chem import ChemicalForceFields, rdDistGeom - +from rdkit.Chem.rdForceFieldHelpers import UFFGetMoleculeForceField def feq(v1, v2, tol2=1e-4): return abs(v1 - v2) <= tol2 @@ -408,5 +408,14 @@ M END""" self.assertAlmostEqual((posa - posb).Length(), 100, delta=10e-5) + def test_uff_get_forcefield_runs(self): + mol = Chem.MolFromSmiles("CCO") + mol = Chem.AddHs(mol) + rdDistGeom.EmbedMolecule(mol, randomSeed=42) + ff = UFFGetMoleculeForceField(mol, ignoreInterfragInteractions=False) + self.assertIsNotNone(ff) + self.assertTrue(hasattr(ff, "CalcEnergy")) + + if __name__ == "__main__": unittest.main()