RDKit has an implementation of the MMFF94 force field available.
It is very easy to use it.
For example, I can generate 3D structure from smiles and minimise it with simple coding.
Let’s try it.
Following code is a example using major kinase inhibitor “imatinib”.

from rdkit import Chem
from rdkit.Chem import AllChem
# get mol object from smiles
imatinib = Chem.MolFromSmiles("Cc1ccc(cc1Nc2nccc(n2)c3cccnc3)NC(=O)c4ccc(cc4)CN5CCN(CC5)C")
# add hydrogen and generate 3d conf.
h_mol = Chem.AddHs(imatinib)
# if get 0, that's ok.
mol_prop = AllChem.MMFFGetMoleculeProperties(h_mol)
field = AllChem.MMFFGetMoleculeForceField(h_mol, mol_prop)
# Opps, I got 1, that's means fail to minimize...
en = field.CalcEnergy()
# In [15]: en
# Out[15]: 81.9480105298988
# OK I got 0.
# In [19]: field.CalcEnergy()
# Out[19]: 75.50215402805657

Finally write 3D-conf in SDF.

w = Chem.SDWriter("3d_imatinib.sdf")

Let’s show it in Pymol.


Hmm,,,,, I need more deep calculation.


Published by iwatobipen

I'm medicinal chemist in mid size of pharmaceutical company. I love chemoinfo, cording, organic synthesis, my family.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: