Last active
February 8, 2023 06:50
-
-
Save ptosco/686a8a87b8a5818a947af9622635ce89 to your computer and use it in GitHub Desktop.
Add fixed point to force field, set distance constraints to it and finally set a position constraint on it
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"import sys\n", | |
"import rdkit\n", | |
"from rdkit import Chem\n", | |
"from rdkit.Chem import AllChem\n", | |
"from rdkit.Chem.Draw import IPythonConsole\n", | |
"import py3Dmol" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"m = Chem.MolFromSmiles('c1ccccc1CCCCCCCN')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAACWCAYAAABNcIgQAAAYmUlEQVR4nO3de1BU5/0G8IeICN4Q\nBVQUCOIdTEVAQB0BhclNqqDgeGGbMRUTTdg0dgJjMhWm00qaTMb1VrS1VkQgGNsUvDTV4o1qvcAC\nSqpW8bqIEqkab4Dw/v4g+MMIuCy75wDv85nJTCZn9+yznSaP7znv96yVEEKAiIhIUi+pHYCIiEhN\nLEIiIpIai5CIiKTGIiQiIqmxCImISGosQiIikhqLkIiIpMYiJCIiqbEIiYhIaixCIiKSGouQiIik\nxiIkIiKpsQiJiEhqLEIiIpIai5CIiKTGIiQiIqmxCImISGosQiIikhqLkIiIpMYiJCIiqbEIiYhI\naixCIiKSGouQiIikxiIkIiKpsQiJiEhqLEIiIpIai5CIiKTGIiQiIqmxCImISGosQiIikhqLkIiI\npMYiJCIiqbEIiYhIaixCIiKSGouQiIikxiJUUU1NDdLS0pCTk4NHjx6pHYeISErWageQUVVVFTZu\n3Ih169bhyZMn6NOnD+zs7JCVlQUvLy+14xERSYUrQgVdvHgRWq0Wbm5u2LJlCz766CNcvnwZp0+f\nxrRp0+Dn5wedTqd2TCIiqVgJIYTaIbq6/Px8rFmzBn/5y18QGBiIhIQEzJgxA1ZWVs+8bufOnVi8\neDGCg4OxefNm9O/fX6XERETy4IrQQmpra7Fjxw4EBQVh+vTpsLW1hV6vR35+PiIiIp4rQQCYPXs2\n9Ho9KisrMX78eBw+fFiF5EREcmERmtm9e/eg0+ng6emJZcuWITg4GGVlZUhLS8O4ceNe+H53d3cc\nPHgQixYtQnh4OBITE1FbW6tAciIiOfHSqJmUlZVBp9Nh8+bNcHFxwbJly7B48WL07NnT5HMeOHAA\nsbGxcHV1RUZGBjw8PMyYmIiIAK4I2y0/Px8xMTEYOXIkCgoKkJmZiXPnzkGr1barBAEgNDQURUVF\ncHR0hI+PD7KyssyUumOpqqrC559/jszMTFRXV6sdh4gkwyI0gSn3/1ry4MGDVo87OjoiJycHv/vd\n77Bo0SJoNJoXvqezOH/+PJYuXQpXV1f86U9/QmJiIoKCgnDu3Dm1oxGRRFiEbdB4/2/48OEm3f/7\nscLCQnh4eODrr79u9XVWVlaIi4vDyZMnodfr4e/vj+LiYhO/hfoaV9Fjx45FSUkJsrKyUFpaijNn\nzsDLyws+Pj4cIyEi5Qh6oYsXL4qEhARhb28vhg8fLlavXi0ePHjQ7vPW19eL1atXix49eojY2Fij\nzvnw4UMRHx8vbG1txerVq0V9fX27cyihpqZGZGdni8DAQGFjYyNiY2NFSUlJs6/dunWr6N27t5g9\ne7aoqqpSOCkRyYZF2IpTp06J2NhY0a1bNzF58mSRk5NjkeI5c+aM8Pb2FmPGjBHFxcVGveerr74S\nDg4OYtasWeK7774zeyZzuXv3rli9erVwdXUVTk5OIiEhQVy/fv2F77t06ZIICgoSbm5uIj8/X4Gk\nRCQrFuGP1NXViZycHBEUFPR05WJsObXHj1d6xrhy5YqYPHmycHV1FYcOHbJwwra5cOGCiI+PF716\n9RIjRowwaRVdW1srVq5cKWxsbMTKlSvFkydPLJSWiGTGIvxB48rFzc1N2Nvbi/j4eHHt2jXFczRd\n6d2+ffuFr28sC2traxEfHy9qamoUSNmyI0eOiOjoaLOuovft2ycGDx4sQkNDjVpNEhG1hfRFWFZW\nJhISEkS/fv3Mev+vPS5fvtzmlV5eXp4YMmSICAgIEBcvXrRwwme15f6fqW7evCneeOMN4ejoKHJy\ncsx67o7i3Llz4uOPPxYbNmwQ1dXVaschkoa0RXjkyBERGRkpunXrJqZPny527drVoTaeNL0smJCQ\nYNRKr7KyUkRERAh7e3uRmZlp8Yym3v8zVdPNRXFxceLhw4cW+ywl5eXliYiICNGtWzcRHBwsXF1d\nhb+/v/jvf/+rdjQiKUhZhMXFxeKVV14R0dHR4vjx42rHaVXjSi8wMFCUlZW98PX19fVi48aNomfP\nniI2Nlbcv3/f7JkuXrzY7vt/7XHy5EkxYsQI4eXlZfaVp1IaV9EBAQFPV9GnT58WQjT8AWP+/Pmi\nT58+Ii0tTeWkRF2flEW4du1aMXHiRLVjGM2Uld6ZM2fEuHHjxJgxY0RRUZFZclji/p+p7t27J2Jj\nY4WdnZ3Rm4s6guZW0QaDodnXbt26VfTq1UtER0eL//3vf8oGJZKIlEWYmJgoIiMj1Y7RJo0rPTs7\nO6NXeuaYOXzy5InIycmx6P2/9sjOzhb9+vUTUVFRHXrm0NRdtP/5z3/E+PHjxcsvvyyOHj2qQFIi\n+UhZhLGxseK9995TO4ZJms4cGrvS27lzp3BwcBAzZ840euaw6S5aJe7/tUfTmcMjR46oHecZ5lhF\nP378WMTHx4vu3buLlStXirq6OgulJZKTlEU4bdo0sWrVKrVjmMyUld6VK1fElClTxNChQ8XBgwdb\nfJ2lnqJjaR1p5tBSu2i/+eYbMWjQIDF9+vQWL6cSUdtJWYSjRo1qcRPCnj17hK+vr8KJTNPWp8u0\nNnOo1FN0LG3//v2qzRwqsYu2oqJCvPrqq8LJyUns3r3brOfuKPLy8sQvfvEL8dlnn4na2lq145AE\npCzCPn36iH/+85/NHtuwYYPw8/NTOJHpmq702jpzOGXKFLFmzRrh5+cnevToId566y1FnqJjabdu\n3VJ05lDpXbRNx0ji4+O7xMxhdXW1SEtLEz4+PsLW1lZERUWJIUOGiKCgIHHp0iW141EXJ10R3r17\nVwAQZ8+ebfb4xx9/LH76058qnKp9THm6TGVlpZg6darw9PQUn3zyibhx44YCSZXTWBaNlyYtUUxq\n76I9ceKE8PT0FL6+vuL8+fOKfa45tbaKvnPnjpg7d67o27ev2L59u8pJqSuTrgi//fZbAUDcu3ev\n2eNvvfWWePfddxVOZR5tfbrML3/5SxETE6NAMvWcOnXKrDOHHW0XbdOZw40bN6qWo63asot269at\nT+div//+e4WTkgyk+z1Cg8GAvn37ok+fPi0eHzJkiMKpzKPxF+2dnZ0xYcKEF/6ifWf+rsby9fVF\nQUEBJk+ejICAAJN/57DxtyiHDRuGt99+u92/RWkuffv2xfbt27Fu3TosX74cMTExuHPnjmp5XqTx\ntyhHjRqFgoICZGZm4ty5c9BqtejZs2ez79FoNDh16hSKi4vh5+cHvV6vcGrq8tRuYqX9+c9/FmPG\njGnx+NixY8WWLVuUC2QB9fX1QqfTCVtbW7F06dIWXzd16lTx+eefK5hMXabMHHamXbRnz54VPj4+\nHW7m0Fy7aB89evR0t3RKSgrHSMhspCvC3/zmNyIsLKzF4/b29uIf//iHgoksR6/Xiw0bNrR43NPT\nU5FnknYkxs4cNu6itba2FpMnTxbZ2dmd4megHj9+LBISEp6OkahZFpbaRfvXv/5V9O/fX4SHh3e5\ne9ukDumKcOnSpeJnP/tZs8fu378vAIjS0lJlQ6nEzs5OHD58WO0Yimtp5vDHv0XZGZ5F2xI1Zw6V\n2EV79epVMXXqVDFw4ECxd+9es567I6iurhbbtm0T7777rvjtb3/bKf4Q1plJV4SzZs0SK1asaPbY\nuXPnBABx584dhVMp7/bt2wKA4j/Z1JF88803YuDAgSI4OFh88sknwtXVVTg6OnaZXbQVFRXitdde\nE05OTmLXrl0W/zylZ1GfPHkiUlJShI2NTZcZI7l9+7ZYtWqVcHFxEc7OzmLx4sVi8ODBYurUqeLq\n1atqx+uypCtCf39/sX79+maPHThwQPTq1UvhROooKSkRALrMTxmZqqKiQixcuFCEhISI1NTULve/\nh6VnDpvbRav0LOqxY8eEh4eH8Pf3FxcuXFD0s82ltV20lZWVYsaMGcLe3l5kZWWpnLRrkq4IXVxc\nxNdff93ssfT0dDFy5EiFE6lj7969YsCAAWrHIIWYe+aw6bNoHR0dVX8WbdOZw/T0dNVytJWxs6hN\n/0BjqblYmUk1PlFXV4ebN2+2ODIgwzhBI5m+KwH+/v4oLCzE6NGj4evri02bNpl0nrKyMiQmJsLd\n3R3r1q3Dhx9+iCtXriAlJUXV/z/Z29sjKysLa9euRVxcHDQaDe7fv69antbU1tZix44dCAoKwvTp\n02Frawu9Xo/8/HxERETAysrqufdYWVlBq9WioKAAer0efn5+KCkpUSF91yRVEVZUVKCuro5FCLm+\nKzXo27cv0tPTTZo5LCgogEajwahRo5Cfn49Nmzbh7Nmzrc7/qaFx5rCkpKTDzRw2zqJ6enpi2bJl\nJs2ienl54cSJEwgPD2/XXCw9S6oiNBgMsLa2hrOzc4vHZSkHmb4rPauxLC5cuAAfHx8cPXq02dfV\n19cjNzcXkyZNwqRJk/D48WP861//Qn5+PqKjo9GtWzeFkxtnzJgx+Pe//41XX30VkyZNwqeffor6\n+nrV8pSVlUGr1cLFxQXr16/H8uXLcfnyZZNX0XZ2dtDpdEhPT0dycjIiIyNx+/ZtCySXh3RFOGjQ\noBb/BZapHGT6rvS8UaNG4dixY5g7dy5CQ0ORlJT0tCwaVy4eHh6IjY2Fv78/Ll68iOzsbEycOFHl\n5MaxtbWFTqdDZmYmPvvsM7z22muoqKhQNEPjU3RGjhxp9FN02mL27NnQ6/WorKyEj48PDh8+bIbU\ncpKuCFv7j79M5WAwGODi4qJ2DFJRjx49kJKSgp07d2LDhg0ICwvDO++8gyFDhiA1NRUrVqzAjRs3\noNPpMHToULXjmmTWrFnQ6/Worq7GT37yE/z973+36OfV1dUhNze3Tff/2sPd3R0HDx7EokWLEB4e\njsTERNTW1pr1M2TAIvxBfX09KioqpCpCWb4rtW7GjBkoKirCqFGjYDAYkJWVhW+//RZLliyBnZ2d\n2vHazdXVFXl5efjwww8xc+ZMaLVa1NTUmPUz1HwWrbW1NZKSkrBnzx5s27YN77xTgGvXLPqRXY6V\nEEKoHUIpGo0G/fr1w5o1a547VlFRgcGDB+PatWud9k+/xqqpqYGtrS0KCwsxfvx4teMQKeb48eOY\nP38+BgwYgIyMDAwfPrxd5ysrK8OmTZuQmpoKJycnvPfee1i8eLFqG4gqK6uwaJEDjh61wh/+AERF\nqRKj0+GKsMmxl156CYMGDVI4lfLKy8shhOCKkKQTEBCAwsJCeHp6wtfXF9u3bzfpPI27aEeOHIn8\n/Hxs27YN58+fV30XrZNTf+TkWGHVKiA2FtBogAcPVIvTabAImxwbOHAgrK2tFU6lPIPBABsbGzg6\nOqodhUhx9vb2yMzMxNq1a7FkyRKjZw6b20V77Ngxi93/M5WVFRAXB5w4ARQVAf7+QHGx2qk6NqmK\nsLy8nDOE+P+NMh3lX1wiNWg0Gpw8efKFM4et7aL19/dXOLXxvLyA48eB8HAgMBDQ6QB5boS1jTRF\neO/ePXz//fetFqEsuyhlKn2i1jSdOQwICHhmjKS5p+iUl5d3ql20dnYNBbh9O5CcDERGAhw5fF7X\nvw74A4PBAAAtlp1M5dDayphINo0zhyEhIfj5z3+OQ4cOoW/fvti9ezdCQkKQnp6ON954o1NfQYmK\nAvz8gAULgPHjgfR0IDhY7VQdhzQrQoPBAHt7e/Tu3bvF47KUg0zflchYkZGRKCoqQmBgIAYMGICC\nggLs378fb775ZqcuwUZubsCBA8DbbwNhYYBWC3DksIFUK0IO0zcwGAzw9fVVOwZRh+Pq6opVq1ap\nHcNirK2BpCQgJARYuLDhHmJGBjBsmNrJ1CXVipBF2ECm70pEzwsJadhR6uwMzJzJTTQsQgAPHjzA\n3bt3pSkH3iMkIkdH4G9/A/bsaRi5AIBk74a/j9nxoxeXAt5WQOM/TvYGvJObOemPXtdZsAjx/xtp\nZCiHqqoqPHr0SIrvSkSts7ICXF2f/WdeXsCOZKBUnUiqYBGiYYXUq1cv2NvbK5xKeY2lP3jwYJWT\nEFFHNHYlkARgbnMrvi6KRfiCY12NwWDAgAEDusTDlInIMlauBEqTgGRJloVSFOGTJ09w69atFstu\nxIgRWLZsmcKp1CFT6RORiaKB7GggaW7Ll0hLkxourT7zl3fnvKQqRRFWVFSgrq6uxWH6iRMnIj4+\nXuFU6mAREpExorOB6NKWL5F6JTXsNn3mrzOAl6IpzUOKIjQYDLC2toazs7PaUVTHIiQiY2VnN6z8\nTN4FuuPZFWNH3U0qRRE6ODjA29sbu3fvVjuK6liERGS0Hy6Rxsw17e0xO5qsFrOBmA566VSKIhwx\nYgQWLlyImJgYvP/++3j8+LHakSzm4cOHuHTpUovHZXq4OBG1X+MlUlMKLDu76YkazvOtuYKZkVS/\nUF9YWIh58+bB2toaWVlZGDdunNqRzObGjRtYv349UlNTERoaih07mr8I4ezsjC1btuDNN99UOCER\nyaw0GfAubVgZdjRSrAgbTZgwAUVFRQgLC0NAQAB0Op3akdqtuLgYS5YsgaenJ/bs2YMvvvgCGRkZ\nzb62pqYG3333HS+NEpGiSpMB7x3AmQ5YgoBkRQgAdnZ20Ol0SEtLQ1JSEqKiolBVVaV2rDYRQmD/\n/v2IiIiAr68vysvLkZOTg8LCQmg0GnTv3r3Z95WXl0MIwSIkIsU8LcEOvKNUuiJsNGfOHBQVFeHm\nzZsYP348jhw5onakF6qurkZaWhrGjRuHyMhIuLi44MyZM8jNzUVYWNgL328wGGBjYwNHR0cF0hKR\n7HbEdPwSBCQuQgBwd3fHoUOHsGjRIoSFhSEpKQl1dXVqx3rOrVu3kJSUhKFDhyIhIQFz5szBlStX\nsHHjRowePdro81y/fh0uLi5d4rfViKiDKwWSd+Dpg7g78giFVJtlWpOXl4fY2FiMGDEC6enpGDp0\nqNqRUFJSgvXr12Pbtm0YPXo0PvjgA8ybN6/FS58tuX//PjIyMpCSkoIFCxbg17/+tYUSExF1PlKv\nCJuaNm0aioqK0Lt3b3h7eyM7W727uvn5+YiIiMCECROMvv/XnOvXryMxMRFubm5ISUlBfHw8Pvro\nIwsmJyLqfFiETTg5OSE3NxfJycnQaDTQaDR4+PChIp/deP/P29sbr7/+epvv/zVVVFQEjUaDYcOG\nYf/+/Vi9ejXOnz+PDz74AH369LHQNyAi6px4abQFTWcOMzMz8corr1jkc27duoUtW7ZgzZo1qK+v\nx5IlS/D+++9jwIABbTpPfX098vLyoNPpsHfvXrz++utITEzE5MmTLZKbiKir4IqwBZaeOTx//jy0\nWi1efvllZGVlYeXKlbh06RKSkpLaVIKPHz9+upKMiorCsGHDcOHCBeTm5rIEiYiMwBWhEb766ivE\nxcUhJCQEf/zjH9G/f3+Tz5Wfn49PP/0Ue/fuRWhoKOLj4xEREdHm81RUVCA1NRXr1q2DjY0N4uLi\noNVq4eDgYHI2IiIZcUVohDlz5kCv1+PWrVsmzRw2nf8LDw+Hg4MDTp8+jX379rW5BIuKirBkyRJ4\neHhg165d+OKLL3D16lUkJSWxBImITMAiNJK7uzsOHjxo0szh9u3bsWLFCixYsAAGgwFpaWkYM2aM\n0Z9dX1//9Ekyfn5+KC8vR25uLk6dOgWNRgNra2tTvxYRkfR4adQEjTOHbm5uyMjIgIeHR6uvr62t\nBYA2z/9VV1fjyy+/REpKCq5fv4558+Zh+fLlGDlypMnZiYjoWVwRmqBx5tDR0RE+Pj748ssvW319\n9+7d21SCN2/eRFJSEoYMGYLExETExMQ8fZIMS5CIyLy4ImwHIQTWrFmDhIQExMTEIDU1FT179jT5\nfMXFxdiwYQPS0tIwduxYaLVazJ8/n5c+iYgsiCvCdrCysoJWq0VBQQH0ej38/PxQUlLSpnM090sS\nubm5KCgo4P0/IiIFsAjNwMvLCydOnEB4eLjRM4dNnyTT+EsSpaWlJj1JhoiITMdLo2a2c+dOLF68\nGMHBwdi8efNzM4c3b97E73//e6xfvx7du3dHXFwc4uPj2zWbSEREpmMRWsCVK1ewYMECXL16Fenp\n6Zg6dWqz9/9M+SUJIiIyL96AsgB3d3ccOHAAv/rVrxAWFgYfHx8UFBRg5syZ2LdvH6ZMmaJ2RCIi\n+gFXhBZ26NAhGAwGBAYGYtiwYWrHISKiH2EREhGR1LhrlIiIpMYiJCIiqbEIiYhIaixCIiKSGouQ\niIikxiIkIiKpsQiJiEhqLEIiIpIai5CIiKTGIiQiIqmxCImISGosQiIikhqLkIiIpMYiJCIiqbEI\niYhIaixCIiKSGouQiIikxiIkIiKpsQiJiEhqLEIiIpIai5CIiKTGIiQiIqmxCImISGosQiIikhqL\nkIiIpMYiJCIiqbEIiYhIaixCIiKSGouQiIikxiIkIiKpsQiJiEhqLEIiIpIai5CIiKTGIiQiIqmx\nCImISGr/By+LjOK+nHsOAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<rdkit.Chem.rdchem.Mol at 0x213fffccda0>" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"m" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"mH = Chem.AddHs(m)\n", | |
"AllChem.EmbedMolecule(mH, useExpTorsionAnglePrefs = False, useBasicKnowledge = False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nCImISGr/By+LjOK+nHsOAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<rdkit.Chem.rdchem.Mol at 0x213fffccda0>" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"m" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div id=\"3dmolviewer_14776388786397417\" style=\"position: relative; width: 400px; height: 400px\">\n", | |
"<script>\n", | |
"if(typeof $3Dmolpromise === 'undefined') $3Dmolpromise = $.when($.getScript('http://3dmol.csb.pitt.edu/build/3Dmol.js'))\n", | |
"$3Dmolpromise.done(function() {\n", | |
"var viewer = $3Dmol.createViewer($(\"#3dmolviewer_14776388786397417\"),{backgroundColor:\"white\"});\n", | |
"\tviewer.addModel(\"\\n RDKit 3D\\n\\n 35 35 0 0 0 0 0 0 0 0999 V2000\\n -3.2890 0.1351 1.4702 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.5441 -0.4429 1.4984 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -5.3301 -0.4195 0.3562 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.9936 0.5062 -0.6238 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.7371 1.1020 -0.6371 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.8439 0.9128 0.4110 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.3920 0.9108 0.0417 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.1182 -0.4062 -0.6163 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.3131 -0.6442 -0.9681 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.2839 0.2991 -0.3304 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.6709 -0.0403 -0.8612 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.6093 -0.4566 0.2478 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 4.9757 0.1669 0.0105 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 5.3298 0.9366 1.1976 N 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.5463 -0.2131 2.1838 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.7345 -1.2837 2.1674 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -6.2458 -1.0043 0.2636 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -5.6425 0.5685 -1.4953 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.3764 1.3524 -1.6371 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.8288 1.0496 0.9744 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.2451 1.7834 -0.6288 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.7323 -0.4453 -1.5503 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.5526 -1.1931 0.0532 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.4640 -0.6333 -2.0620 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.5567 -1.6817 -0.6341 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.3388 0.1931 0.7623 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.0749 1.3469 -0.5982 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.1265 0.8174 -1.4045 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.6369 -0.8924 -1.5826 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.7584 -1.5652 0.2708 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.2195 -0.1962 1.2583 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 5.7450 -0.6062 -0.2049 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 4.9420 0.9107 -0.8268 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 5.6853 0.3004 1.9550 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 4.4215 1.3486 1.5394 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 2 3 1 0\\n 3 4 2 0\\n 4 5 1 0\\n 5 6 2 0\\n 6 7 1 0\\n 7 8 1 0\\n 8 9 1 0\\n 9 10 1 0\\n 10 11 1 0\\n 11 12 1 0\\n 12 13 1 0\\n 13 14 1 0\\n 6 1 1 0\\n 1 15 1 0\\n 2 16 1 0\\n 3 17 1 0\\n 4 18 1 0\\n 5 19 1 0\\n 7 20 1 0\\n 7 21 1 0\\n 8 22 1 0\\n 8 23 1 0\\n 9 24 1 0\\n 9 25 1 0\\n 10 26 1 0\\n 10 27 1 0\\n 11 28 1 0\\n 11 29 1 0\\n 12 30 1 0\\n 12 31 1 0\\n 13 32 1 0\\n 13 33 1 0\\n 14 34 1 0\\n 14 35 1 0\\nM END\\n\",\"sdf\");\n", | |
"\tviewer.setStyle({\"stick\": {}});\n", | |
"\tviewer.zoomTo();\n", | |
"viewer.render();\n", | |
"});\n", | |
"</script>" | |
], | |
"text/plain": [ | |
"<py3Dmol.view at 0x21380b60518>" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"p = py3Dmol.view(width = 400, height = 400)\n", | |
"p.addModel(Chem.MolToMolBlock(mH), 'sdf')\n", | |
"p.setStyle({'stick':{}})\n", | |
"p.zoomTo()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Get indices for the benzene ring heavy atoms" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"c = mH.GetSubstructMatch(Chem.MolFromSmarts('c1ccccc1'))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(0, 1, 2, 3, 4, 5)" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"c" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Get the nitrogen index just to make sure that it moves during the minimization" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"nIdx = mH.GetSubstructMatch(Chem.MolFromSmarts('N'))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(13,)" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"nIdx" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"ctd = Chem.rdGeometry.Point3D(0.0, 0.0, 0.0)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"cH = mH.GetConformer()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"This is where the nitrogen initially lies" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[5.329771716296932, 0.9365511048445183, 1.19756387379814]" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"list(cH.GetAtomPosition(nIdx[0]))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Get the initial position of the centroid" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"for i in c:\n", | |
" ctd += cH.GetAtomPosition(i)\n", | |
"ctd /= float(len(c))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"mp = AllChem.MMFFGetMoleculeProperties(mH)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"ff = AllChem.MMFFGetMoleculeForceField(mH, mp)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Add an extra point to the forcefield for the centroid and get its index" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"ep = ff.AddExtraPoint(ctd.x, ctd.y, ctd.z) - 1" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"35" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ep" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Compute the current distance between each benzene heavy atom and the centroid, and constrain it to stay as it is" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"for i in c:\n", | |
" d = cH.GetAtomPosition(i).Distance(ctd)\n", | |
" ff.MMFFAddDistanceConstraint(ep, i, False, d, d, 5.0)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Finally, add a position contraint on the centroid, so that it does not move from its current position" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"ff.MMFFAddPositionConstraint(ep, 0.0, 5.0)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Check where the centroid initially lies" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[-4.122963502416918, 0.29894914861169203, 0.41247045505622665]" | |
] | |
}, | |
"execution_count": 21, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"list(ctd)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Re-initialize the force field as we added an additional point and the positions array needs to be updated, then minimize" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"ff.Initialize()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Check the initial energy" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"69.80100037688061" | |
] | |
}, | |
"execution_count": 23, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ff.CalcEnergy()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0" | |
] | |
}, | |
"execution_count": 24, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ff.Minimize()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div id=\"3dmolviewer_14776388791463912\" style=\"position: relative; width: 400px; height: 400px\">\n", | |
"<script>\n", | |
"if(typeof $3Dmolpromise === 'undefined') $3Dmolpromise = $.when($.getScript('http://3dmol.csb.pitt.edu/build/3Dmol.js'))\n", | |
"$3Dmolpromise.done(function() {\n", | |
"var viewer = $3Dmol.createViewer($(\"#3dmolviewer_14776388791463912\"),{backgroundColor:\"white\"});\n", | |
"\tviewer.addModel(\"\\n RDKit 3D\\n\\n 35 35 0 0 0 0 0 0 0 0999 V2000\\n -3.1478 -0.0023 1.3571 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.4963 -0.1973 1.6598 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -5.4748 0.1061 0.7152 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -5.1054 0.6027 -0.5334 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.7574 0.7983 -0.8379 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.7661 0.5027 0.1070 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.3073 0.6971 -0.2267 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.6849 -0.5815 -0.7937 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.7627 -0.3972 -1.2580 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.7333 -0.0934 -0.1146 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.1781 -0.0334 -0.6160 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 4.1511 0.2739 0.5244 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 5.5926 0.3324 0.0197 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 6.5180 0.6257 1.1085 N 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.3949 -0.2477 2.1026 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.7830 -0.5875 2.6327 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -6.5245 -0.0463 0.9511 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -5.8676 0.8366 -1.2719 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.4844 1.1820 -1.8182 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.7787 1.0185 0.6784 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.2042 1.5189 -0.9464 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.2767 -0.9235 -1.6528 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.7318 -1.3856 -0.0484 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.8098 0.4025 -2.0072 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.0797 -1.3194 -1.7608 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.6449 -0.8664 0.6582 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.4768 0.8643 0.3518 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.2657 0.7372 -1.3915 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.4466 -0.9907 -1.0790 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 4.0598 -0.4970 1.2999 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.8804 1.2312 0.9874 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 5.8737 -0.6225 -0.4374 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 5.6941 1.1051 -0.7500 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 6.4265 -0.0838 1.8349 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 6.2603 1.5090 1.5473 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 2 3 1 0\\n 3 4 2 0\\n 4 5 1 0\\n 5 6 2 0\\n 6 7 1 0\\n 7 8 1 0\\n 8 9 1 0\\n 9 10 1 0\\n 10 11 1 0\\n 11 12 1 0\\n 12 13 1 0\\n 13 14 1 0\\n 6 1 1 0\\n 1 15 1 0\\n 2 16 1 0\\n 3 17 1 0\\n 4 18 1 0\\n 5 19 1 0\\n 7 20 1 0\\n 7 21 1 0\\n 8 22 1 0\\n 8 23 1 0\\n 9 24 1 0\\n 9 25 1 0\\n 10 26 1 0\\n 10 27 1 0\\n 11 28 1 0\\n 11 29 1 0\\n 12 30 1 0\\n 12 31 1 0\\n 13 32 1 0\\n 13 33 1 0\\n 14 34 1 0\\n 14 35 1 0\\nM END\\n\",\"sdf\");\n", | |
"\tviewer.setStyle({\"stick\": {}});\n", | |
"\tviewer.zoomTo();\n", | |
"viewer.render();\n", | |
"});\n", | |
"</script>" | |
], | |
"text/plain": [ | |
"<py3Dmol.view at 0x213fe7fd198>" | |
] | |
}, | |
"execution_count": 25, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"p = py3Dmol.view(width = 400, height = 400)\n", | |
"p.addModel(Chem.MolToMolBlock(mH), 'sdf')\n", | |
"p.setStyle({'stick':{}})\n", | |
"p.zoomTo()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Check that the centroid hasn't moved during the minimization" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[-4.122963502416918, 0.29894914861169203, 0.41247045505622665]" | |
] | |
}, | |
"execution_count": 26, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"list(ff.GetExtraPointPos(0))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Check that the rest of the molecule has actually been optimized" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[6.517997450444338, 0.6256671030204412, 1.1085129129686233]" | |
] | |
}, | |
"execution_count": 27, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"list(cH.GetAtomPosition(nIdx[0]))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"16.75989066251583" | |
] | |
}, | |
"execution_count": 28, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ff.CalcEnergy()" | |
] | |
} | |
], | |
"metadata": { | |
"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 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment