{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "A [recent post on](http://blogs.sciencemag.org/pipeline/archives/2016/07/27/maoecrystal-v-you-poor-people) In the Pipeline talked about a recent JACS communication on the total synthesis of the natural product maoecrystal V. The article is open access:\n", "http://pubs.acs.org/doi/abs/10.1021/jacs.6b06623\n", "\n", "Here's the ToC figure, which shows a sketch of the final product on the left:\n", "![ToC Figure](http://pubs.acs.org/appl/literatum/publisher/achs/journals/content/jacsat/0/jacsat.ahead-of-print/jacs.6b06623/20160725/images/medium/ja-2016-066232_0004.gif)\n", "\n", "Since I've been looking at how well the RDKit does at conformation generation for highly constrained systems, I thought this would be a nice example molecule to try out. I was also quite curious about the shape of that beast.\n", "\n", "The first problem was getting the structure in. I wasn't completely confident in my ability to reproduce that sketch and JACS, of course, doesn't have a way to provide structures in electronic form. Fortunately the authors had solved x-ray structures of their final product and a bunch of intermediates and the CIF files were in the supplementary material. So I converted the CIF to a mol file with OpenBabel (hopefully using the correct CIF file... they aren't particularly well labelled as far as I can tell) and got started from there.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2016.09.1.dev1\n", "Wed Jul 27 18:48:35 2016\n" ] } ], "source": [ "from rdkit import Chem\n", "from rdkit.Chem import AllChem\n", "from rdkit.Chem import Draw\n", "from rdkit.Chem.Draw import IPythonConsole\n", "from rdkit import rdBase\n", "print(rdBase.rdkitVersion)\n", "import os,time\n", "print( time.asctime())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll use py3Dmol to show structures in the notebook" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import py3Dmol\n", "def drawit(m,p=None,confId=-1):\n", " mb = Chem.MolToMolBlock(m,confId=confId)\n", " if p is None:\n", " p = py3Dmol.view(width=400,height=400)\n", " p.removeAllModels()\n", " p.addModel(mb,'sdf')\n", " p.setStyle({'stick':{}})\n", " p.setBackgroundColor('0xeeeeee')\n", " p.zoomTo()\n", " return p.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Start by reading in the mol file and displaying that:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "" ], "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mExpt = Chem.MolFromMolFile(\"/home/glandrum/Downloads/paper/ja6b06623_si_010.cif.mol\",removeHs=False)\n", "drawit(mExpt)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now generate a conformer for the molecule:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "" ], "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m = Chem.MolFromMolFile(\"/home/glandrum/Downloads/paper/ja6b06623_si_010.cif.mol\",removeHs=False)\n", "Chem.AssignAtomChiralTagsFromStructure(m)\n", "AllChem.EmbedMolecule(m,useExpTorsionAnglePrefs=True,useBasicKnowledge=True)\n", "drawit(m)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At least by eye that looks very close, let's check the RMS:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RMS: 0.6165388593927497 Heavy Atom RMS: 0.18186257676731582\n" ] } ], "source": [ "print(\"RMS: \",AllChem.GetBestRMS(m,mExpt),\n", " \"Heavy Atom RMS:\",\n", " AllChem.GetBestRMS(Chem.RemoveHs(m),Chem.RemoveHs(mExpt)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Not bad! But then, this is a highly constrained structure.\n", "\n", "Because we can, let's look at the two structures superimposed:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "" ], "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "AllChem.AlignMol(m,mExpt)\n", "mb = Chem.MolToMolBlock(m)\n", "mbExpt = Chem.MolToMolBlock(mExpt)\n", "p = py3Dmol.view(width=400,height=400)\n", "p.removeAllModels()\n", "p.addModel(mb,'sdf')\n", "p.addModel(mbExpt,'sdf')\n", "\n", "p.setStyle({'stick':{}})\n", "p.setBackgroundColor('0xeeeeee')\n", "p.zoomTo()\n", "p.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, a bit of 2D work. \n", "\n", "Just to have it, here's the SMILES for maoecrystal V " ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'C[C@H]1C(=O)[C@@]23CC[C@@H]1C[C@@]21O[C@@H]2C(C)(C)C=CC(=O)[C@]23COC1=O'" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Chem.MolToSmiles(Chem.RemoveHs(m),True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's see how well the RDKit's 2D coordinate generation works here:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Chem.MolFromSmiles('C[C@H]1C(=O)[C@@]23CC[C@@H]1C[C@@]21O[C@@H]2C(C)(C)C=CC(=O)[C@]23COC1=O')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Not great, but definitely not as bad as I had expected." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "hide_input": false, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }