Skip to content

Instantly share code, notes, and snippets.

@ptosco
Last active December 16, 2022 06:43
Show Gist options
  • Save ptosco/28bc22acbb6d000812c12699b6711be6 to your computer and use it in GitHub Desktop.
Save ptosco/28bc22acbb6d000812c12699b6711be6 to your computer and use it in GitHub Desktop.
Properties on conformers
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from rdkit import Chem\n",
"from rdkit.Chem.Draw import IPythonConsole\n",
"from rdkit.Chem import rdDistGeom, rdMolAlign"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"mol = Chem.MolFromSmiles('CCOCCn1c(C2CC[NH+](CCc3ccc(C(C)(C)C(=O)[O-])cc3)CC2)nc2ccccc21')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7f47f90e8360>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mol"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"mol = Chem.AddHs(mol)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"confIds = rdDistGeom.EmbedMultipleConfs(mol, 5)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"# generate 5 separate SDF files, one per each conformer\n",
"confs = []\n",
"for confId in confIds:\n",
" tempMol = Chem.Mol(mol)\n",
" for confId2 in reversed(confIds):\n",
" if (confId2 == confId):\n",
" continue\n",
" tempMol.RemoveConformer(confId2)\n",
" tempMol.SetIntProp('ConformerId', confId)\n",
" confFilename = '/tmp/bilastine_c{0:d}.sdf'.format(confId)\n",
" confs.append(confFilename)\n",
" w = Chem.SDWriter(confFilename)\n",
" w.write(tempMol, confId = confId)\n",
" w.close()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"for conf in confs: # loop over my sdf files\n",
" suppl = Chem.SDMolSupplier(conf, removeHs = False)\n",
" if '_c0.sdf' in conf:\n",
" allconfs = suppl[0]\n",
" else:\n",
" for i, mol in enumerate(suppl):\n",
" allconfs.AddConformer(mol.GetConformer(), assignId = True)\n",
"rdMolAlign.AlignMolConformers(allconfs)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def copy_coords(source, to):\n",
" for i in range(source.GetNumAtoms()):\n",
" to.SetAtomPosition(i, source.GetAtomPosition(i))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"i = 0\n",
"numConfs = allconfs.GetNumConformers()\n",
"# looping again over original confs to update their coordinates from aligned allconfs\n",
"for conf in confs:\n",
" suppl = Chem.SDMolSupplier(conf, removeHs = False)\n",
" mol = suppl[0]\n",
" copy_coords(allconfs.GetConformer(i), mol.GetConformer())\n",
" wname = conf.split('.sdf', 1)[0] + '_aligned.sdf'\n",
" w = Chem.SDWriter(wname)\n",
" w.write(mol)\n",
" w.close()\n",
" i += 1"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.5"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment