Hi Leon,

MMFFOptimizeMoleculeConfs() by default will distribute minimization tasks across all available CPU cores as it is multi-threaded at the C++ level, while ff.Minimize() will run single-threaded, unless you do the distribution of individual minimization tasks yourself in the Python layer (e.g., using Python multiprocessing.Pool or similar).

Apart from that technical difference, there is no scientific difference in the calculation itself.

Cheers,
p.

On 18/11/2019 17:05, topgunhaides . wrote:
Hey guys,

Are there any differences between the ff.minimize and MMFFGetMoleculeForceField for conformer optimization? Please see the forllowing example:


from rdkit import Chem
from rdkit.Chem import AllChem

m = Chem.AddHs(Chem.MolFromSmiles('OCCCN'))
cids = AllChem.EmbedMultipleConfs(m, 10, randomSeed=1)
ps = AllChem.MMFFGetMoleculeProperties(m, mmffVariant='MMFF94s')

for cid in cids:
    ff = AllChem.MMFFGetMoleculeForceField(m, ps, confId=cid)
    ff.Initialize()
    ff.Minimize(maxIts=1000)
    print(ff.CalcEnergy())

optm = AllChem.MMFFOptimizeMoleculeConfs(m, maxIters=1000, mmffVariant='MMFF94s')
print(optm)

Both give me the same set of energies for generated conformers. Thank you!

Best,
Leon




_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to