{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 2-ColumnarDatastructure\n", "For some applications, it's easier to access structural information in a simple columnar data structure. The ColumnarStructure class represents most data as atom-based numpy arrays. For high performance, it's best to use numpy operations whenever possible. This tutorial shows how to use boolean indexing to extract C-alpha coordinates from the datastructure." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from pyspark.sql import SparkSession\n", "from mmtfPyspark.io import mmtfReader\n", "from mmtfPyspark.utils import traverseStructureHierarchy, ColumnarStructure\n", "from mmtfPyspark import structureViewer\n", "import numpy as np\n", "from scipy.spatial.distance import pdist, squareform\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Configure Spark" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "spark = SparkSession.builder.appName(\"2-ColumnarStructure\").getOrCreate()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Download an example structure\n", "Here we download an HIV protease structure with a bound ligand (Nelfinavir)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "pdb = mmtfReader.download_full_mmtf_files([\"1OHR\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Structures are represented as keyword-value pairs (tuples):\n", "* key: structure identifier (e.g., PDB ID)\n", "* value: MmtfStructure (structure data)\n", "\n", "In this case, we only have one structure, so we can use the first() method to extract the data." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "structure = pdb.values().first()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create a columnar structure from an MMTF structure\n", "Here we convert an MMTF structure to a columnar structure. By specifying the firstModel flag, we\n", "only retrieve data for the first model (this structure has only one model, anyways)." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": true }, "outputs": [], "source": [ "arrays = ColumnarStructure(structure, firstModelOnly=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get atom coordinates as numpy arrays" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "numpy.ndarray" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = arrays.get_x_coords()\n", "y = arrays.get_y_coords()\n", "z = arrays.get_z_coords()\n", "type(z)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get entity types\n", "Entity types can be used to distinguish polymer from non-polymer groups and select specific components, e.g., all protein groups. The following entity types are available:\n", "* **Polymer groups**\n", " * PRO: protein\n", " * DNA: DNA\n", " * RNA: RNA\n", " * PSR: saccharide\n", "* **Non-polymer groups**\n", " * LGO: ligand organic\n", " * LGI: ligand inorganic\n", " * SAC: saccaride\n", " * WAT: water" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['PRO', 'PRO', 'PRO', ..., 'WAT', 'WAT', 'WAT'], dtype=object)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "entity_types = arrays.get_entity_types()\n", "entity_types" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get atom, group, and chain name arrays" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['N', 'CA', 'C', ..., 'O', 'H1', 'H2'], dtype=object)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "atom_names = arrays.get_atom_names()\n", "atom_names" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['PRO', 'PRO', 'PRO', ..., 'HOH', 'HOH', 'HOH'], dtype=object)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "group_names = arrays.get_group_names()\n", "group_names" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['A', 'A', 'A', ..., 'B', 'B', 'B'], dtype=object)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chain_names = arrays.get_chain_names()\n", "chain_names" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Boolean array indexing\n", "Boolean indexing is an efficient way to access selected elements from numpy arrays. \n", "\n", "Here, we calculate an index for C-alpha atoms in proteins in chain A." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array([False, True, False, ..., False, False, False])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ca_idx = (atom_names == 'CA') & (entity_types == 'PRO') & (chain_names == 'A')\n", "ca_idx" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then, we apply this index to get the coordinates for the C-alpha atoms" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "xc = x[ca_idx]\n", "yc = y[ca_idx]\n", "zc = z[ca_idx]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Combine separate x, y, and z arrays and swap axes\n", "\n", "```\n", "[x0, x1, ..., xn],\n", "[y0, y1, ...,yn],\n", "[z0, z1, ...,zn]\n", "```\n", "\n", "\n", "to \n", "\n", "```\n", "[x0, y0, z0],\n", "[x1, y1, z1], \n", " ...,\n", "[xn, yn, zn]\n", " ```" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "coords = np.swapaxes(np.array([xc,yc,zc]), 0, 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate distance matrix & map" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "scrolled": true }, "outputs": [], "source": [ "dist_matrix = squareform(pdist(coords), 'euclidean')" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.pcolor(dist_matrix, cmap='RdBu')\n", "plt.title('C-alpha distance matrix')\n", "plt.gca().set_aspect('equal')\n", "plt.colorbar();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Calculate distance map\n", "Only consider C-alpha - C-alpha distance <= 9. We use boolean indexing to set all distance > 9 to zero." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "dist_matrix[dist_matrix > 9] = 0" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAASQAAAEICAYAAAD2l4mhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJztnXm0FOW16H8bEBSUSQQVUFScUVEQURwA9ak4YBQVRQHFgHGOyUvU+3Lvu3fl3pX71r2JJkYjVxSNRkDEOGtIwDgsQwJI4gAKoggKAiqDigOw3x9Vu6t6Oqf7nOruOufs31q9urrq66rd1efs3t/+9iCqiuM4ThpoVWsBHMdxDFdIjuOkBldIjuOkBldIjuOkBldIjuOkBldIjuOkBldIVUJEporIT5Me2wA5xovIy7HXn4vIvpW4luOUiyukOhCRS0RkfvhPu1pEnhWR42stV5Ko6s6quryuMSIyVERWVUsmp+XiCqkIInITcBvwH0APYC/gTmBkLeVynOaMK6QCiEgn4N+Aa1R1lqp+oarfquqTqvq/63jfIyKyRkQ2isiLInJokXFDRWSViNwqIutF5H0RGZMzrIuIPC0im0VknojsF3v/7SKyUkQ2icgCETmhDpl2FZEnwrF/BfbLOa4i0jfcHiEib4XX/FBEfigiHYBngT1DS/FzEdlTRAaJyKsisiG0Hu8QkbY5571KRJaGY34tIhI7/l0RWRxe6y0ROSrcv6eIPCoi60TkPRG5vo7PNlVE7gwt189F5BUR2V1EbhORz0RkiYgcGRt/s4i8G7vmd2LHxofvvyP8/paIyMnFru1UCFX1R84DOB3YCrQp831XALsA7Qisq0WxY1OBn4bbQ8Pz/zwcexLwBXBgbOwnwCCgDfAQMC12rkuBXcNjPwDWADsWkWkaMAPoAPQDPgRejh1XoG+4vRo4IdzuAhwVk3dVznkHAINDGfoAi4Ebc877FNCZwLpcB5weHrsglONoQIC+wN4EP5ALgH8G2gL7AsuB04p8tqnA+lCWHYE5wHvAWKA18FNgbmz8BcCe4XUuCu/5HuGx8eF38n1gh/D4RqBrrf8eW9Kj5gKk8QGMAdY08hydw3/KTuHrQgqpQ2z8DOAnsbH3xI6NAJbUca3PgCMK7G8NfAscFNv3H3UopA+ASUDHnPPkKaQC17oReCznvMfnfL6bw+3ngRsKnOMY4IOcfbcA9xW55lTgf2KvrwMWx14fBmyoQ+ZFwMhwezzwESCx438FLqv132NLeviUrTCfAN1EpE2xAbHpy+cispeItBaRn4VTgk3A++HQbkVO8ZmqfhF7vYLg19tYE9v+Etg5du0fhtOdjSKyAehU5Dq7EVgwK3OuU4zzCZTfChH5s4gcW2ygiBwgIk+FU9RNBIouV4Zin6E38G6B0+5NMDXcYA/gVgIfXjE+jm1vKfA6ft/Gisii2Ln75cj8oYaaKCT3O3EqjCukwrwKfA2cW2yABqtT9vgAuITA4X0KgYLoEw6VIqfoEvpnjL0IfqHrJPQX/Qi4EOiiqp0JphaFrrOOwBLrnXOdYp/pb6o6EugO/J7AqoHA2snlLmAJsL+qdiRQHMU+ay4ryfFlxfa/p6qdY49dVHVEiectiojsDfwPcC2wa3jf3siRuWfcz0WJ34mTHK6QCqCqGwn8GL8WkXNFpL2I7CAiZ4jI/yvytl0IlNgnQHsCi6E+/lVE2oZK5izgkRLeswuBklkHtBGRfwY6Fvkc24BZwP8NP8MhwLhCY0M5xohIJ1X9FtgEbA8PfwzsGjr743JsAj4XkYOA75Ugu3EP8EMRGSABfUOF8Vdgs4j8WER2Cq3OfiJydBnnLkYHAsW6DkBELiewkOJ0B64Pv+sLgIOBZxK4tlMirpCKoKr/DdwE/B+CP+KVBL+uvy/ylgcITPwPgbeAv9RziTUEvp+PCJzWV6nqkhJEex54DngnvN5XZE/JcrmWYNqyhsDncl8dYy8D3g+nYFcR+NII5XoYWB5Od/YEfkhgFW4msDymlyA74fkeAf4d+F34/t8TOI+3ESjm/gTO6fUEyqtTkVOVjKq+Bfw3gfX7MYF/6ZWcYfOA/cPr/jswSlU/aey1ndKR7CmzUw1EZCjwoKr2qrUsToCIjAeuVNVmFfja1HALyXGc1OAKyXGc1OBTNsdxUoNbSI7jpIaigX+VoFu3btqnT59qXtJxmh3vvPMOAN27d8/s69y5MwALFixYr6q7Neb8IlLOtOl5VT29MdeLU1WF1KdPH+bPn1/NSzpOs+OUU04B4Jprrsns+853gjxhEakrEr8SFMtEaBBVVUiO4zQNsgPWi5O0D9oVkuM0EcaNC4Lsr776aiCyigAee+yxRK/VqlVp7uVt27Ylel1XSI7jZCEirpCaMnvssQcAq1evrrEkTnPk1FNPBfIto1mzZmXG3HnnnYles9QpW9K4QnIcJw9XSE2YtWvX1loEp4mx9957A9CuXTsgWsqPc9FFFwHwve8FhRTMMjJ/0eOPP54Z+8c//hFITpG4QnIcJzW4QnIcJxWICK1bt67JtV0hJUDSKw1O86BNm+Dfa+vWrZl9tnp16623ArB582YAjjjiCACGDx+eGTt69Ggg34l91113ATB79uyKye4WkuM4qcEVkuM0M+KWkWEW0ooVQYbHwQcfDMCIEUHZ8EGDBmXG5jqxp08PinJW0jKCQBm5QnIcJzW4QnKcIvTt2xeAZcuW5R276qqrAHj33aCrUteuXYHImkgbZvX07h00gjEfkllGhdJBXnzxRaC6n8md2o7jpAKfsjlOHRSyjIypU6cCsNtuQQmgs88+G4gskPXr12fGbtmypUISFsZk6t+/f2afraJ9/vnnABxzzDEAjBw5EshOkv3rX/8KwJw5cyovbA6ukBzHSQ2ukBynAXz11VcF9yedbFoOlg4yceJEAL799tvMsS++CLqnDxw4EIgsI0sDMasIYJdddgFg6NChABxwwAFA4TSTpHGF5DhOanCF5DhOKvDUkSaGOSk/+ugjIFpqXrKklE7YTiXp2LEjAJs2bar6tc855xwALrvsMiAKV1i6dGlmzFFHHQXkBz1arfm4ZbJ48WIgqgzw9ddfV0z2XJK0kETk+8CVgAKvA5erasG5trdBchwnD1v6r+9Rwnl6AtcDA1W1H9AaGF1svFtIDWDRokVlv2e//fYDYK+99gJg7ty5icrUnLDpQkOSls877zwA+vXrB8BBBx2UOfaXv/wFgDVr1gCFUzsaQ/v27YFI/nXr1gHZCbMmnyXKLly4EICdd9456zVE1tP27duznitNBeKQ2gA7ici3QHvgo2ID3UJyHCePMiykbiIyP/aYGD+Pqn4I/BfwAbAa2Kiqfyh2XbeQKoT9Wl544YUAnHnmmUC2P8EpTGPKuVigpDFkyJDMdpcuXQBYtWpVg89fF2aBjRo1CoABAwYA2ekgZhlZsKNZafPmzQMqnzhbKmU4tder6sBiB0WkCzAS2AfYADwiIpeq6oOFxruF5DhOFqVaRyVO604B3lPVdar6LTALOK7YYLeQGoBZP/YLaMW14iH+Vg/ZVlqWL18ORH4Fpzq88sorVbuW+avMKstdSYPIR7T//vsDUVpMXX7JQoXeKk2CPqQPgMEi0h7YApwMFG1f7QrJcZw8klJIqjpPRGYCC4GtwGvA5GLjXSGVQadOnYComNYhhxwCwMcffwxA9+7dM2Mt3uSzzz7Lem1WVTzhsiGrdk56sBSRSZMmAfmWUdxKs3IjttL329/+Fqg7xqialpFRaqPIUlDVfwH+pZSxrpAcx8nCy484jpMqPHUkpVx66aV529Y626Zqv//977NeAxx55JEAvPnmmwCcdNJJQGTOm7MbomDJDz74IPkP0AxoTKBkIXbccUegeKWAUjjrrLMy2xMmTADyp2p33303kJ1SNHjwYAC+/PJLoLrpIOXgFpLjOKlARBL1IZVDk1VIpsFVtSLnt1/lW265JbPPAutef/31rGvHLSPDHJHffPMNAH369AGioLzDDz88M3bXXXcFoG3btlnvcQKS7ntXjmXUo0cPIPqOr7jiCiCyiiDfMnr22WcBeO655xovbI1wC8lxnNTgCqlMKmUZWakHS/XYfffdM8f+/ve/A/npCYUwK8p4//33gajq3ymnnJI5ZtUDzUJy0oMFOVrVxuuvvx4o3B1kypQpADz11FNVlDB5fMrmOE6q8FW2lGAdRTt06ABk+3M+/fTTRp/f6iHHLS/rKWYlKJzaY4XerrvuOiBaNc0tHwKRRdTULaM4tZqylWSXicj3ReRNEXlDRB4WkR1FZB8RmSciy0Rkuoj4fMNxmgE2ZSvlkTT1Wkixim+HqOoWEZlBUPFtBPALVZ0mIr8BJgB3JS5hjbDuEJXCUgcg8h3Zr7BTeyw9yFJ9zDKaOXMmAHfccUdm7AsvvFBd4apAqi0koopvbQgqvq0GhgMzw+P3A+cmL57jOLUgwfIjZVGvhaSqH4qIVXzbAvwBWABsUFXL+lsF9Cz0/rCC3ESIIpIdx0kvqe46UqjiG3B6qRdQ1cmE5QYGDhxYmbX6Joh1qICoqmTPnoFOt7SSulpIp4FevXoBUbBnpYNVK4WFeljTRoDRo4M69OeeGxj+5sR+7bXXgKjTDOQHTzYH0rzsn6n4BiAis4AhQGcRaRNaSb2ADysnpuM41STNgZHFKr7NBUYB04BxwOOVErI58oc/RHXO99lnHyD6pY0HTaYZm4JbXahjjz22luI0GPscw4YNy+wzy8gSp2fMmAHAM888A9Sm71u1SNI/JCIHAtNju/YF/llVbys0vhQfUrGKb08D00Tkp+G+KY2U3XGclJDUlE1V3wb6A4hIa4KZ1GPFxpcUGFmk4ttyYFDDxHQsFQGiIMl27doBUeXJfffdF4jqcacNq35oNcXNwrj88sszYx544AEg+QTZJLC65z/4wQ+AyCqCKB3E+udNmzatytLVlgpN2U4G3lXVFcUGeKS24zhZVHCVbTTwcF0DXCFVmW7dugEwfvz4zD4r+GZpK2ZNHHbYYUCUxgBRwGYaLA5LILbATuvOGy8+Z6tVZkVZgnItGTNmDJC/kmb+IoCf//znQFQ075e//GU1Raw5ZVhI3UQk3kVkcriynnu+tsA5wC25x+K4QnIcJ48yfEh1NoqMcQawUFXrjI1whVQlBg0K3G0XXHABkB0kal1Hfve73wGNK61aF7179wZg5cqViZ7XEpCvvfZaINt6O+64oCegJStb55aNGzcmKkMp2L2/+OKLgfzCanE/0UsvvVRl6dJDhaKwL6ae6Rq4QnIcpwBJBkaKSAfgVGBSfWNdITmOk0eSFpKqfgHsWspYV0hVxpzab7zxRmafpYhUaqpmJD1Vy8Uy4HfbbbfMPnMYW2iDpcxYSIM10IQokz5J4l1jLrnkEiCaqlk6yKOPPgrA9OnTaQyldDOpRVvsckl1LpvjOC2PNKeOOAmwfv16AObMmQNkt1dubqxbty6zbf3LzJk9fPhwIAp1iFfhTDI598QTTwSioEeIkmfNif3ww4GP9ZFHHmn09aC4ZWThG5BdKTTNuEJyHCcVeCvtFkBa0z8qjdWZtnQYK7XSr18/IEqXgci/ZOVALFC0HMaOHQvATTfdBGSXFHn88SD/23xGSVlG9REPbD3wwAMLjtlpp50A2LJlS1Vkqg9XSI7jpIY010NynEazdu1aICqxYl2A473ozN9kq3QWTFlKfXNbOTMLqa50kBdffLGBn6JhxP2FZhnmYquvacEtJMdxUoE3inRaDLllXi0eCSILyVbgLMWjf//+QJRiE8dKiFiycu5Kmj1D9S2jQliXYvMrWaG3s88+G4g+DzQ+LqoxuIXkOE5qcIXkOE5qcIXktEji4RBnnnkmEE3jrHHm559/DkDnzp2Bwt1BbJ8t7VulyviULQ1MnTo169l48sknATjooIOqLFE+7kNyHCdVuIXktHiefvppIOr3duWVVwLRUrn1rTv++OMz7ylW0yhtllF9WLqNWYm1xhWS4zipwRVSI4nfQAvP/+STT4DsZE8n/Xz00UdZry3Z9oQTTgAKdwexAMhaLpU3hkqXnimHWuay1cZz5ThOqjGlVN+jxHN1FpGZIrJERBaLSNGOolW1kBYsWECrVq3Yvn17Yue01ZV4Fw/DVlycpoX9fVh/N/uOC6WDvPzyy4B/10mT8Crb7cBzqjoq7D7SvtjAZjNlcxwnORJspd0JOBEYD6Cq3wDfFBtfVYU0YMAA5s+fX//AMrACX1a+AWDIkCFZxxpD/JciScvOKY6ljFipklzLyPrBQZSke/rppwN1p5lUGiv72pieefGedlbauNqU6UOqry/bPsA64D4ROQJYANwQ1tnOwy0kx3HyKEMh1deXrQ1wFHCdqs4TkduBm4GfFBrsTm3HcfJI0Km9ClilqvPC1zMJFFRBmryFZA39LK0AopbORx99NADnn38+EFUKLAefplUPy/a3gEibqtnS/hNPPAFEFSXjWEjAzjvvDJRXSykpkmhvXqtpWi5JObVVdY2IrBSRA1X1beBk4K1i45u8QnIcJ1kqEId0HfBQuMK2HLi82MBmo5A2bNiQ2bbazH369AEiS8kSF5csWVJd4ZyijBs3LrM9YcIEIN+JPWPGDCDqEhL/9d5zzz2BKIUkt5ZS3JpqSI3upEnC8V0NEm4UuQioy8+UodkoJMdxksNTRxLEfA3WSfSMM84A0t0ttKUxZswYAEaNGpXZl5soO2XKFCDqXGIU8utZUqr5D4855hggO20oyb5vDSXtlpHhCslxnNTgCqkCWMJi7969Adi8eXMtxUmE9u2DqHv7bDvssAMAX3/9dc1kKgWzhMyCueCCC4C6E2VzLaO6sNIlVtzNOpccfvjhmTG2z2SZOXNmmZ+iZVDLAm0lXbVQcpyIdBWR2SKyNHzuUmlhHcepDq1atSrpkTSlWkiFkuNuBf6kqj8TkZsJoi9/nLiECbBy5cpai5AYX375Za1FaBDffBOkLx133HFAlDAbT5Q1i+Whhx5q8HWsJO5PfhIEAltRN4isyDlz5jT4/C2F1JYfiSXHTYEgOU5VNwAjgfvDYfcD5xY+g+M4TYlSo7QrobRKsbniyXGvicg9ItIB6KGqq8Mxa4Aehd4sIhNFZL6IzPdCaY7TNKiVQiplylYsOS6DqqqIFFxLDTN/JwMMHDiwduutzRSrP71x40YgqpYJJF5ZoSFYgGJubSOrX/Tqq69mxjZmqpbL5MlBwrk5zyGoNgFRNYhOnToB0b1zItLs1C6WHPexiOwBED6vrYyIjuNUm9RaSHUkx70FjAN+Fj57yb4qYPVy1q4N9L/92luw4Mknn5wZa8GCtiReLS699NLMttU0yg16vO+++wBo27ZtRWSwlt3du3fP7LNAWUspsrbVRxxxBAB///vfKyJLU6OWNbVLXWUrlBzXCpghIhOAFcCFlRHRcZxqk2qFVEdy3MkF9jkVpFh5CguYNIsJov5lkyZNAqLUGUvJSBpLlI2ng+SWELFEWUvvqTRmSUJU3sQScK26pJUoscRXaDopHpUi1QrJcZyWhSskp1FYwOQNN9yQ2WdpJVZ2ZenSpQB07doVSKbmOMCwYcMAuO6664DsdBALfLTieFZCpBZYKoqlkHTr1g2AQw45BICxY8fWRrCUISJZ1mI1cYXkOE4eSVpIIvI+sBnYBmytqwa3K6Qasfvuu2e216xZk3WsTZvga2lIuZTbb789s20WgK0mmWVgpT/i/qZXXnml7GtddtllQGSVmWU0a9aszBiLN3rwwQfLPn+lsADda6+9Foh8R8ceG/UvtBQXi5OqZcmSWlCBKdswVV1f3yBXSI7j5OE+pBZGrlUUJ6lCcuvXBz9Ip556atb+gw8+GIDVq1dn9llkbilNDYoV4zd/0a9+9avM2Llz5zZI9mpwxx13AFEslDWDgKgkckuzjCDxvmwACvwhzOa4u8DxDK6QHMfJI8G+bADHq+qHItIdmC0iS1T1xUIDvS+b4zh5JFkPSVU/DJ/XAo8Bg4qNdQupBTB79mwg6l1nU614Rw4LarSW5Fu2bMk6h6WhxN+fO1Wzpf00T9MKYbWaDjvssMw+u1eWvLxq1arqC1ZDkvIhhZVBWqnq5nD7fwH/Vmy8KyTHcbJIuIRtD+CxUMG1AX6nqs8VG+wKqQVhjlqzhuIW0uDBg4HIMrIQgUMPPRSAG2+8MTM2Nx2kWHeQpsbrr79eaxFSQ1IWkqouB44odbwrJMdx8vBlf6dq3H9/UHnYkkwBvve97wFRDWqzoixBt1A6yD333ANUv7yJU1lq2XXEFZLjOHm4heRUnXhgZL9+/YDIl2TBj7kraQC33XYbAC+88EI1xHRqgCskx3FSgyskp6bYituIESOAfMvo5Zdfzox98803qyydU21cITmOkwqaQk1tx3FaEF6grZlhtYgs4z6NnHbaaZltW/bPrWn0zDPPAFEPM4g6mxRLM3GaPm4hOY6TCnzK1gxJs2VkS/pmFUG+E9vSQVasWAFE/dUgCg0wC6mcWkpO08ADIx3HSQ1uITVz0uBvsYqIV1xxBVA4HeSuu+4C4Pnnn896bzzN5Lvf/S4QdS8577zzgKhGd0PqczvpwhWS4zipwHPZWgC1tIyspvbVV18NwHe+8x0guzvIvffeC+RbRkY8zcQSb61EydChQwF4++23gchyguR6vznVpVYKyUvYOo6Tha2ylfIo8XytReQ1Eam3YJZbSM2Y8ePHA/mWkRVWe+ihhzJjyymuZuVLrMyr9Xmz2KvRo0dnxk6YMAGIVu3SRO/evQFYuXJljSVJHwn7kG4AFgMd6xvoFpLjOHkkZSGJSC/gTOCeUq7rFpLjOFmISDmpI/X1ZbsN+BGwSyknc4XUzLBpGcDYsWOz9tlU7c477wSibiQNxWp05zai3H///TPbS5YsadQ1KolP1YqTRF82ETkLWKuqC0RkaCknc4XkOE4eCfmQhgDniMgIYEego4g8qKqXFnuDK6RmgiXKTpo0KbMv1zJ6/PHHgcZbRrnY+cypbc50gD59+gBRXzevv900SEIhqeotwC3h+YYCP6xLGYErJMdxcvDASKdk7A+lXbt2AFxyySUAXHXVVUC2D8kCH3/7298CkaVUKSyh+IYbbsjs+/bbbwE46aSTABg4MHA3zJ8/Hye9JJ06oqovAC/UN65kNZgb3CQi+4jIPBFZJiLTRaRtg6V1HCdVtGrVqqRH0pRjIeUGN/0n8AtVnSYivwEmAHclLJ+Tww477ABEFsc555wDwMiRI4FsK+juu+8GiqeDVIrbb789s92+fXsATjjhBCBKL3HSSy2nbCVdNTe4SQJ7bjgwMxxyP3Bu4Xc7jtPUSDJ1pBxKtZByg5t2BTao6tbw9SqgZ6E3ishEYCLAXnvt1XBJHQAuuOACAEaNGgVElpGtoMVTQKptGRXiyy+/BOCMM84AskvhQuQLA/j666+rJ5hTJ7UqP1KvhRQPbmrIBVR1sqoOVNWBlh3uOE66SbOFlBfcBNwOdBaRNqGV1Av4MHHpHMepCakt0FYkuGmMiDwCjAKmAeOAxysoZyJYSsPSpUtrLEl52DQNosz63BrYv/nNbwD485//nBmbpgx7qyK5adOmrP0WFuCkhzJz2RKlMa70HwM3icgyAp9Sev76HcdpFGmesmWIBzep6nJgUOISVYCOHYNIBav93FSw5Fh7Bjj77LOByDKaOTNY6Jw7dy6QXouje/fuBffvuOOOVZYkH7MGtm3bVmNJ0kNqp2yO47QsPHWkwpjfoqms8g0fPhyA6667DoisIoAnn3wSiKo9PvLIIwA8+OCD1RSxbJYtW1Zwv4UF1JIOHTrUWoTU4RaS4zipwRVSFVi3bl2tRShI3759ATjxxBOByDLKLR8S3zbLyGk8w4YNA2DffffN7Fu+fHmtxEkFrpAcx0kFlVpBKwVXSCng6KOPBqI0kNxE2V/96leZsXPmzKmydKXTpk3w57R169Z6RqaLgw46CIDjjjsus8/Kufzxj38EivvAmiuukBzHSQ1JKSQR2RF4EWhHoG9mquq/FBvvCslxnDwStJC+Boar6ucisgPwsog8q6p/KTTYFVKNsOx3gIkTJwL5mfu2xJ/maVqcpjZVs6BMu/8bN27MHLNQgPPPPx+AY445BoBevXoBsOeee2bGWt2pb775psISV4+kFJKqKvB5+HKH8KHFxnujSMdxsiizlXY3EZkfe0wscL7WIrIIWAvMVtV5xa7tFlI97L333pntFStWNPp8lihrTlPId2LPmDEDgL/97W+Nvp6Tj4VXWD1y+45ff/31zJh584L/mQEDBgDw2muvAVH78MMPPzwz9vLLLweiel8ffPBBxWSvFkn0ZTNUdRvQX0Q6A4+JSD9VfaPQWLeQHMfJoxLJtaq6AZgLnF5sjFtI9dBQqyh3Cdx6lVn5ELOKIPIZTZ4cdCB+9tlnG3TNWrP77rsDsGbNmhpLUje2zN+vXz8gsmjicr/33ntAVLLG/EP2Gffbb7/M2J49g2KpgwYFueb9+/cHYNGiRZX5AFUgwVW23YBvVXWDiOwEnEpQj78grpAcx8ki4eTaPYD7RaQ1wYxshqo+VWywK6RGYKs0X331Vd6x448/HojSEq6//nogv7AaRImyTdUyMtJuGQ0ZMgSIkpcXL14MRGk41leuLuwzHnDAAZl9Vt/czmvP1oMuntRtfytWLiatJLjK9g/gyFLHuw/JcZzU4BZSIyhkGRn2a2yrNLmJsuY3gtolyu60006Z7S1bttREhmqyevVqIL8bSymWUS7vvPNOZrtPnz5A5G8yK/iII44AssubPP3002VfqxZ46ojjOKnBFZLjOKnBFVITxILkzMEZr6dz0UUXAdFUbdasWUCUuZ8Gp2ZLmKbFqVSNo/fffx+Atm3bAlHbcPt7iHe5effddysiQ5J4CVvHcVKFW0hNCAt6vOmmm4Doy7METMh3Yi9YEDT+DXINo3NAupJSu3XrBjTM0dtSOeywwwA49NBDAejSpQsACxcuBKJUIICpU6dWV7gG4grJcZzU4AqpCWEWzT/90z8B0dJ+vO+b+Yzs13HatGnVFLHBuGVUPvGkXIChQ4fANMkZAAALjklEQVQCsHbtWiAdnVWaCq6QHMfJwmtqNzGshMjFF18MRJaRWUUQla9o6d0rWhI9evQAosBIS94thCX4LlmypOTzW4dd6wJsgZ6VwFfZHMdJDW4hlYj1MKtFFwhLkLXCXrkxRraSBtFqWjzFAOpOyHWaJuPGjQPgwgsvBKJVtrpizT799NOyr7Nt27YGSNcwXCE5jpMKaulD8mx/x3FSQ5OxkKymzNixY4GojrE5BV999dWKXNdSQOLbuUGPDz/8MJCdtV+saaJP1ZofZk2YU9sqRcan8LnEu5akkaSc2iLSG3gA6EHQbWSyqt5ebHyTUUiO4zRJtgI/UNWFIrILsEBEZqvqW4UGNxmFdNRRRwGR5WEVGc0CsSVRSMb5d+qppwJwzTXXZPbZcq45sV944QWgcD2jNKWDOMlhdbOt1hFEqSMW4jF79myg7oDItNfbTrBi5Gpgdbi9WUQWAz2Bpq2QHMepHmUopG4iMj/2erKqTi5yzj4E5Wybfl82q/JnnUOvvPJKAHr37g1EviUoHKhYKpdeeikQWUZmFUFUB3v69OlZz43F+oIl0fetOWL+jO3bt9dYEujatSuQbSFZnW3rfBvvgNsUKXOVrd6+bOE5dwYeBW5U1U3FxtXruRKR3iIyV0TeEpE3ReSGcH9XEZktIkvD5y6lfgLHcVoOIrIDgTJ6SFXrtBJKsZAKOqWA8cCfVPVnInIzcDPw48aJXj+rVq0C4IorrgBgjz32AODYY4/NjLHVDasZXUohstNPD3rXWUfZQt1Bfv3rXwORjyAp3DKqmzRYRsZLL70ERMXYIKqTXc3AxUqT4CqbAFOAxar683qvW98AVV2tqgvD7c2AOaVGAveHw+4Hzi18BsdxWjBDgMuA4SKyKHyMKDa4LB9SjlOqR+hBB1hDEGdQ6D0TgYkQ9T5PgnvvvReILKS4D8mKjFnckK2C5JaJALjssssAmDRpEpBvGc2cOTMzNmnLyGl6fPHFF0Dk94PmZRkZCa6yvQyUfLKS7bK6nFIaJG5pEYEmq+pAVR0Yb5jnOE56Mcd2fY+kKUkhFXFKfSwie4TH9wDWJi6d4zhVp1RlVAmFVO+UrQ6n1BPAOOBn4fPjBd5ecawmTHzKtvvuuwORo9vSNaxLyIknnpgZO2HCBABGjhwJROkgd999NwDPPfdcxWR3mi6+EFEZSvEhmVPqdRGx8NJbCRTRDBGZAKwALqyMiI7jVJvUFmirxyl1crLiNJwHHnggs22tjc1qsr5p5ogcPHhwZqxZRtba2oIp3TJyWjJefsRxnBZPk0kdKQfrJDpx4kQgKvVgfdOsfAhEPqP77rsPgCeeeKJaYjpOavGKkY7jpALvOlIhPvroIwBGjAgCQ3PLh0DUHeTFF1+ssnSlE4/fOvPMMwF45ZVXgOy+8U0RW/mEKKDVSsyU05HDSRZXSI7jpAZXSAkyZswYICpRkpsO8o9//CMztl27dkCUXFtXmkmtWLduXWa7Y8eOAGzaVLSCQ5Nil112yWzbvTdf3/nnnw/Ao48+Wn3BWji+yuY4TounWVpIjuM0Dp+yNRILcISoI0nuVO2ee+4Bsjs+WJrJsGHDgKiRYzm1lKpJc5mqGStXrsxs2723KqBHHnkkEH23VosoXj89Pp11ksFX2RzHSRWukBqI1cA2qwjyLSPrCvLUU0/lvd/STKwNcs+ePYEo7cTqc0PDanQ7pWNJ0Oeccw4QObxPOeUUIKpnXakefE5EUgpJRO4FzgLWqmq/+sa7U9txnEoyFTi91MFN1kLK7ZtWqDuIpYNY4mwhLM3ELCKrQDlgwAAg+9fYfBfNsUJgmrD0HQuatJAM8+u9/fbbtRGsBZFgxcgXw0qzJeEWkuM4qaHJWUjm67n66quBwt1BrA52XZZRLla+xCyk3K4mAJdccgkQFX5zX0Zl2bBhAwAnnHACEPmQgorJTqUoc5Wt5EaRpdDkFJLjOJUn6UaRpZJ6hdSjR9DMxKyTiy++GIhKiFj5kDvvvDPznsZ0B7GSuGYhxTulDB06FIiSP53qYPFHacX+ed1yazzuQ3IcJ4+kivyLyMPAq8CBIrIqLHldFP+pdxynYqjqxeWMr6lCsto+a9asAaJs77iD2jK+zbGZO1V7+OGHgeSbOFojyl69emX2WRUBc6727dsXgGXLliV6badp0Rynah6p7ThOamiRCunpp58GoG3btkCUTBnvm3bWWWcBkWVk6Rvm6JwxY0ZFZVy1alVm+7TTTgNg4cKFgCd2Ok7SuIXkOE4WLT7bv3///kCU6Gq+Jcj3GZlVZYmyv/jFL6olJs8//3zVruU4LRFf9nccJzWkwkI66qijADj00EOBuvumWXcQSytwHCd5WvSUzXGcdNEiFZKlgYwePRqISpWaVQTw5ptvAtC9e3cgu8yI4zjNC7eQHMfJw9sgOY7T4qmJhWRTtNypmtUvii+vWxDiokWLgCi9xHGcyuEWkuM4LZ6qWkgrVqzgyiuvzFhGudUep0+fDkQJs4WIB006jpM8LT5S23GcdNEiFFKnTp0YMWJEnmU0bdq0rOe6sNQRx3GaH43yIYnI6SLytogsE5GbkxLKcZzaklTFyPBcJeuJBltIItIa+DVwKrAK+JuIPKGqbxV7T+fOnTnvvPMyJUSeeeYZoDTLyHFatQp+P7dv315jSZxSKVdPNMZCGgQsU9XlqvoNMA0Y2YjzOY6TEhK0kMrSE43xIfUEVsZerwKOyR0kIhOBieHLr0XkjdwxU6ZMaYQYFaUbsL7WQpRBi5C3Vg5Xmsb93buxJ1iwYMHzItKtxOE71tOXrSQ9YVTcqR0KNxlAROYn2cOp0ri8lcXlTSeqenqtrt2YKduHQO/Y617hPsdxHKMsPdEYhfQ3YH8R2UdE2gKjgScacT7HcZofZemJBk/ZVHWriFwLPA+0Bu5V1TfreVuDe37XCJe3sri8zZxy9YQ0x55SjuM0TTy51nGc1OAKyXGc1FAVhZT2FBMR6S0ic0XkLRF5U0RuCPd3FZHZIrI0fO5Sa1njiEhrEXlNRJ4KX+8jIvPC+zw9dCKmAhHpLCIzRWSJiCwWkWPTfH9F5Pvh38IbIvKwiOyY5vvbXKi4QoqFjp8BHAJcLCKHVPq6ZbIV+IGqHgIMBq4JZbwZ+JOq7g/8KXydJm4AFsde/yfwC1XtC3wGTKiJVIW5HXhOVQ8CjiCQO5X3V0R6AtcDA1W1H4EzdjTpvr/NgmpYSKlPMVHV1aq6MNzeTPDP0pNAzvvDYfcDqekwICK9gDOBe8LXAgwHZoZDUiOviHQCTgSmAKjqN6q6gRTfX4IV6J1EpA3QHlhNSu9vc6IaCqlQ6HjPKly3QYhIH+BIYB7QQ1VXh4fWAD1qJFYhbgN+BFim6a7ABlXdGr5O033eB1gH3BdOMe8RkQ6k9P6q6ofAfwEfECiijcAC0nt/mw3u1I4hIjsDjwI3quqm+DEN4iNSESMhImcBa1V1Qa1lKZE2wFHAXap6JPAFOdOzlN3fLgTW2z7AnkAHoGbpFC2JaiikJpFiIiI7ECijh1R1Vrj7YxHZIzy+B7C2VvLlMAQ4R0TeJ5gCDyfw0XQOpxiQrvu8ClilqvPC1zMJFFRa7+8pwHuquk5VvwVmEdzztN7fZkM1FFLqU0xC/8sUYLGq/jx26AlgXLg9Dni82rIVQlVvUdVeqtqH4H7OUdUxwFxgVDgsTfKuAVaKyIHhrpOBt0jp/SWYqg0Wkfbh34bJm8r725yoSqS2iIwg8HlY6Pi/V/yiZSAixwMvAa8T+WRuJfAjzQD2AlYAF6rqpzURsggiMhT4oaqeJSL7ElhMXYHXgEtV9etaymeISH8CB3xbYDlwOcEPYirvr4j8K3ARwQrsa8CVBD6jVN7f5oKnjjiOkxrcqe04TmpwheQ4TmpwheQ4TmpwheQ4TmpwheQ4TmpwheQ4TmpwheQ4Tmr4/1J0vLsEopCjAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.pcolor(dist_matrix, cmap='Greys')\n", "plt.title('C-alpha distance map')\n", "plt.gca().set_aspect('equal')\n", "plt.colorbar();" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "spark.stop()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.6.13" } }, "nbformat": 4, "nbformat_minor": 4 }