Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save lewisacidic/30a230ff9987f6e37431 to your computer and use it in GitHub Desktop.
Save lewisacidic/30a230ff9987f6e37431 to your computer and use it in GitHub Desktop.
Interactive Morgan Fingerprints Visualization.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# Interactive Visualization of Morgan Fingerprints"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Requirements: scikit-chem, rdkit, ipywidgets. These are best installed via `conda` - see https://www.continuum.io/downloads."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "To run, click:\n\n`Cell > Run All`\n\nThe interactive visualization will be at the bottom of the page."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "from rdkit.Chem import AllChem as Chem\nfrom rdkit.Chem import Draw\nfrom rdkit.DataStructs import ConvertToNumpyArray\n\nimport numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n%matplotlib inline\n\nimport skchem\nfrom ipywidgets import interact, Dropdown, Text, Box",
"execution_count": 11,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "from collections import defaultdict\n\nclass MorganFingerprinter(object):\n def __init__(self, radius=2, bits=True, **kwargs):\n \n self.radius = radius\n if bits is True:\n self.bit_length = 2048 \n elif fold_bits is False:\n raise NotImplementedError\n else:\n self.bit_length = fold_bits\n self.columns = range(self.bit_length)\n self.env_dict = defaultdict(set)\n \n def __call__(self, m):\n return self.calculate(m)\n \n def calculate(self, m):\n \n arr = np.array(0)\n info = {}\n ConvertToNumpyArray(Chem.GetMorganFingerprintAsBitVect(m, self.radius, nBits=self.bit_length, bitInfo=info), arr)\n return arr\n \n def calculate_environments(self, m):\n info = {}\n Chem.GetMorganFingerprintAsBitVect(m, self.radius, nBits=self.bit_length, bitInfo=info)\n for bit in info:\n for atom_idx, radius in info[bit]:\n env = Chem.FindAtomEnvironmentOfRadiusN(m, radius + 1, atom_idx)\n amap = {}\n path = Chem.PathToSubmol(m,env,atomMap=amap)\n submol = Chem.MolToSmiles(path, canonical=True)\n self.env_dict[bit].add(submol)\n \n def grad(self, m):\n info = {}\n np.array(Chem.GetMorganFingerprintAsBitVect(m, radius=self.radius, nBits=self.bit_length, bitInfo=info))\n grad = np.zeros((self.bit_length, len(m.atoms)))\n for bit in info:\n for atom_idx, radius in info[bit]:\n grad[bit] += (Chem.GetDistanceMatrix(m) <= radius)[atom_idx]\n return grad",
"execution_count": 12,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "def sym_twod_gaussian(x, mu=np.zeros((2,))):\n return np.exp(-(x - mu).dot(x - mu))\n\ndef perpendicular(a) :\n b = np.empty_like(a)\n b[0] = -a[1]\n b[1] = a[0]\n return b\n\ndef highlight(m, weights=None, bond_gap=0.05, padding=0.1, vis_mode='circle'):\n two_d_idx = Chem.Compute2DCoords(m)\n conf = m.conformers[two_d_idx]\n coords = np.array(conf.atom_positions)\n boundary = (coords.min(axis=0) - padding, coords.max(axis=0)+ padding)\n length = boundary[0] - boundary[1]\n aspect = length[0] / length[1]\n tall = aspect < 1\n if tall:\n width, height = 12, 12 * aspect\n else:\n width, height = 12 * aspect, 12\n plt.figure(figsize=(width, height), facecolor=None)\n plt.xlim(boundary[0][0], boundary[1][0])\n plt.ylim(boundary[0][1], boundary[1][1])\n \n # draw weights \n if vis_mode == 'circle': \n weights = 4000 * weights if weights is not None else 0\n\n\n plt.scatter(coords[:, 0], coords[:, 1], s=weights, facecolors=None)\n elif vis_mode == 'contour':\n weights = weights if weights is not None else 0\n x, y = coords[:,0], coords[:,1]\n xx, yy = np.mgrid[boundary[0][0]:boundary[1][0]:50j, boundary[0][1]:boundary[1][1]:50j]\n positions = np.vstack([xx.ravel(), yy.ravel()])\n values = np.vstack([x, y])\n kernel = lambda x: sum(w * sym_twod_gaussian(x, c) for w, c in zip(weights, coords[:,:2]))\n f = np.reshape(np.array([kernel(i) for i in positions.T]).T, xx.shape)\n plt.contourf(xx, yy, f, cmap='Blues')\n else:\n raise NotImplementedError\n \n # draw atoms\n for i, a in enumerate(m.atoms):\n \n hs = a.GetNumImplicitHs() + a.GetNumExplicitHs()\n \n if hs > 1:\n label = '${}H_{}$'.format(a.element, hs) \n elif hs == 1:\n label = '${}H$'.format(a.element) \n else:\n label = '$' + a.element + '$'\n plt.text(coords[i, 0] - 0.1, coords[i, 1], label, verticalalignment='center')\n \n # draw bonds\n for b in m.bonds:\n idxs = b.GetBeginAtomIdx(), b.GetEndAtomIdx()\n coord1, coord2 = coords[idxs[0], :2], coords[idxs[1], :2]\n norm = np.linalg.norm(coord2 - coord1)\n vect = (coord1 - coord2) / norm\n coord1, coord2 = coord1 - 0.1 * vect, coord2 + 0.1 * vect\n \n # draw single bonds\n if b.order == 1:\n plt.plot([coord1[0], coord2[0]], [coord1[1], coord2[1]], c='black')\n \n # draw aromatic bonds\n if b.order == 1.5:\n plt.plot([coord1[0] + 0.5 * bond_gap * perpendicular(vect)[0], coord2[0] + 0.5 * bond_gap * perpendicular(vect)[0]], \n [coord1[1] + 0.5 * bond_gap * perpendicular(vect)[1], coord2[1] + 0.5 * bond_gap * perpendicular(vect)[1]], '--', c='black')\n plt.plot([coord1[0] - 0.5 * bond_gap * perpendicular(vect)[0], coord2[0] - 0.5 * bond_gap * perpendicular(vect)[0]], \n [coord1[1] - 0.5 * bond_gap * perpendicular(vect)[1], coord2[1] - 0.5 * bond_gap * perpendicular(vect)[1]], c='black')\n \n # draw double bonds\n if b.order == 2:\n plt.plot([coord1[0] + 0.5 * bond_gap * perpendicular(vect)[0], coord2[0] + 0.5 * bond_gap * perpendicular(vect)[0]], \n [coord1[1] + 0.5 * bond_gap * perpendicular(vect)[1], coord2[1] + 0.5 * bond_gap * perpendicular(vect)[1]], c='black')\n plt.plot([coord1[0] - 0.5 * bond_gap * perpendicular(vect)[0], coord2[0] - 0.5 * bond_gap * perpendicular(vect)[0]], \n [coord1[1] - 0.5 * bond_gap * perpendicular(vect)[1], coord2[1] - 0.5 * bond_gap * perpendicular(vect)[1]], c='black')\n \n # draw triple bonds\n if b.order == 3:\n plt.plot([coord1[0], coord2[0]], [coord1[1], coord2[1]], c='black')\n plt.plot([coord1[0] + bond_gap * perpendicular(vect)[0], coord2[0] + bond_gap * perpendicular(vect)[0]], \n [coord1[1] + bond_gap * perpendicular(vect)[1], coord2[1] + bond_gap * perpendicular(vect)[1]], c='black')\n plt.plot([coord1[0] - bond_gap * perpendicular(vect)[0], coord2[0] - bond_gap * perpendicular(vect)[0]], \n [coord1[1] - bond_gap * perpendicular(vect)[1], coord2[1] - bond_gap * perpendicular(vect)[1]], c='black')\n plt.axis('off')\n return plt.gca()\n ",
"execution_count": 13,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "morg2 = MorganFingerprinter()",
"execution_count": 14,
"outputs": []
},
{
"metadata": {
"code_folding": [],
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "def interactive():\n smiles_input = Text('c1ccccc1O')\n nonzero_dropdown = Dropdown(options=[str(i) for i in np.arange(2048)[morg2(skchem.Mol.from_smiles(smiles_input.value)) == 1]])\n \n @interact(smiles=smiles_input, bit_to_visualize=nonzero_dropdown, vis_mode=Dropdown(options=['contour', 'circle']))\n def plot(smiles, bit_to_visualize, vis_mode):\n m = skchem.Mol.from_smiles(smiles)\n nonzero_dropdown.options = [str(i) for i in np.arange(2048)[morg2(m) == 1]]\n highlight(m, weights=np.where(MorganFingerprinter().grad(m)[int(bit_to_visualize)] >= 1, 1, 0), padding=1.5, vis_mode=vis_mode)\n",
"execution_count": 15,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false,
"scrolled": false
},
"cell_type": "code",
"source": "interactive()",
"execution_count": 16,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<matplotlib.figure.Figure at 0x11097bac8>",
"image/png": "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\ny6/frZZLblPQ0CLFJSmMMhwpFiPtlVKbX/uuO9vbU/H/13RNPV6lcPptRR0XKMw3zfr3hl9/WMVz\nx9VyyW3Kr91R72EayfYAJT4hub/iOZ0L8QkiFDWQ9mm5+3Z2ZnqTItu1XflbGnnrpxp86b+p5aJP\nKmpfP7mt46Y/9HYlxAVEon9mxudMSXFMZx/6P6QwmrjhUJSf3BaP9Gvg+e8qaGhR2zVfqPdQjWRz\ngBKffvMpOqdzKUB9XgWVOB13SUx/sbj0xlwINylavjDfrPbrf08qjav/mW9XbCNAAfOd7e2Z/Gch\ngy//vUqDp9S064aKAJWkgef/Rsn4kNqv/ryi5lX1Gq6xbN2Xc8MhP5VPr3X9NNv5uDTPNb0p0sBK\nqGO4SVE6bD8tt3nPzRp+7SGNHn5S45feroYLL8l6SAAWsJjonP69HRd0avClHypsWa22Kz9bsb1w\n+m0Nv/GootWb1XLp7bUeqvFsDFDC0y++huZcXIpPiQAtYyV0iXjhVMdNiuwRfHQTEkk6z42IAGMt\nZdVzpv5n/lIqjqv9ui8qbJg6diXJxKOalMTquOGrCiK/Po8mQGEiVjrnRoC6y68jjyd8uklRlteH\n2r4a2rCxW817Pq6RQz/TSM9P1bL31lnfM/bui1KY45EtQMqWE53TxYMnNN77hPLrd6u5+xMV28be\nflbj77+qxm1Xq2nblSv6ObaxLUCJT7cQl4vnWnxiNiJ0GUy/U26WfDst13bt139Ro0ef1sCzf62m\nnTcobGyd3FYc6NOZB/+Noo6NWv+5P5t1PRmA2lppeE4Xtm1U/so/UMfObgXB1ElPSXFc/U/dK4WR\nOm74/Zr9PBvYFKDEp70IzZVzNUBZBa1EhC6T6SHKamg6bF8NjVrXqvXK39Lgc9/R4At/WzEpzbVv\nUMult2v41Qc09OqDarv81zMcKeCuWsbndFFnlxrWd1V8beiV+1Qa6FPrZfcot3pzXX6uiWwJUOLT\nbARmfbkanxIBOhciFDWXxWooIbp8bZfdo5E3H9PQqw+o5ZJPK7dq0+S29qt/RyOHfq7BF76v5j03\nK2pZveQ/vzzBnv7cQgAT6hWgcykNndHgCz9Q2NShtqs+l9rPzRoBivkQlmYgQP0TJEmSyg/qGyik\n84NSZvJqqKRMV0PTDtEsnx1qc4RK0siRp3Tu0X+rxu3XqPP2/6li29CrD6r/yf+k5r23avXH//Gi\n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\nSUVORK5CYII=\n"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## License"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "The MIT License (MIT)\nCopyright (c) 2016 Richard Lewis\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"version": "3.5.1",
"pygments_lexer": "ipython3",
"mimetype": "text/x-python",
"codemirror_mode": {
"version": 3,
"name": "ipython"
},
"file_extension": ".py",
"name": "python",
"nbconvert_exporter": "python"
},
"gist": {
"id": "30a230ff9987f6e37431",
"data": {
"description": "Interactive Morgan Fingerprints Visualization.ipynb",
"public": true
}
},
"_draft": {
"nbviewer_url": "https://gist.github.com/30a230ff9987f6e37431"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment