Dear Jan,

the origin of the difference is the different /nonBondedThresh/ default value in |||MMFFOptimizeMoleculeConfs|(10.0) and in |||MMFFGetMoleculeForceField| (100.0).

If you set /nonBondedThresh/ to 100.0 in |||MMFFOptimizeMoleculeConfs|you indeed get the same value, as expected:

from  rdkit  import  Chem
from  rdkit.Chem  import  AllChem

smiles  =  "c1ccc(cc1)CCCCOCCCCCCNC[C@@H](c2ccc(c(c2)CO)O)O"  #CONF_107
mol  =  Chem.MolFromSmiles(smiles)
mol  =  Chem.AddHs(mol)

m  =  Chem.Mol(mol)
confs  =  20
AllChem.EmbedMultipleConfs(m,  numConfs=confs,
                           randomSeed=2,  useExpTorsionAnglePrefs=True,
                           useBasicKnowledge=True)
energies  =  AllChem.MMFFOptimizeMoleculeConfs(
    m,  maxIters=2000,  nonBondedThresh=100.0)
energies_list  =  [e  [1]  for  e  in  energies]
min_e_index  =  energies_list.index(min(energies_list))
#print(energies_list)
print(energies_list[min_e_index])

62.445185999826535

mol.AddConformer(m.GetConformer(min_e_index))
prop  =  AllChem.MMFFGetMoleculeProperties(mol,  mmffVariant="MMFF94")
ff  =  AllChem.MMFFGetMoleculeForceField(mol,prop)
low_energy  =  ff.CalcEnergy()
print(low_energy)

62.445185999826535

Cheers,
p.

On 12/06/18 19:31, Jan Halborg Jensen wrote:
The following code gives

63.50505459068998
66.40551367349616

I don’t understand why the two numbers are not the same

Any tips would be appreciated

Thanks, Jan





smiles = "c1ccc(cc1)CCCCOCCCCCCNC[C@@H](c2ccc(c(c2)CO)O)O" #CONF_107
mol = Chem.MolFromSmiles(smiles)
mol = Chem.AddHs(mol)


m = Chem.Mol(mol)
confs = 20
AllChem.EmbedMultipleConfs(m,numConfs=confs,randomSeed=2,useExpTorsionAnglePrefs=True,useBasicKnowledge=True)
energies = AllChem.MMFFOptimizeMoleculeConfs(m,maxIters=2000)
energies_list = [e[1] for e in energies]
min_e_index = energies_list.index(min(energies_list))
#print(energies_list)
print(energies_list[min_e_index])

mol.AddConformer(m.GetConformer(min_e_index))
prop = AllChem.MMFFGetMoleculeProperties(mol, mmffVariant="MMFF94")
ff = AllChem.MMFFGetMoleculeForceField(mol,prop)
low_energy = ff.CalcEnergy()
print(low_energy)



_______________________________________________
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