{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains material from [PyRosetta](https://RosettaCommons.github.io/PyRosetta.notebooks);\n", "content is available [on Github](https://github.com/RosettaCommons/PyRosetta.notebooks.git).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Examples Using the `dask` Module](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.04-dask.delayed-Via-Slurm.ipynb) | [Contents](toc.ipynb) | [Index](index.ipynb) | [PyRosettaCluster Tutorial 1A. Simple protocol](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.06-PyRosettaCluster-Simple-protocol.ipynb) >

\"Open" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part I: Parallelized Global Ligand Docking with `pyrosetta.distributed`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Warning*: This notebook uses `pyrosetta.distributed.viewer` code, which runs in `jupyter notebook` and might not run if you're using `jupyterlab`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Note:* This Jupyter notebook uses parallelization and is **not** meant to be executed within a Google Colab environment." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Note:* This Jupyter notebook requires the PyRosetta distributed layer which is obtained by building PyRosetta with the `--serialization` flag or installing PyRosetta from the RosettaCommons conda channel\n", "\n", "**Please see the setup instructions in Chapter 16.00**" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import logging\n", "logging.basicConfig(level=logging.INFO)\n", "import json\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "import numpy as np\n", "import os\n", "import pandas as pd\n", "import pyrosetta\n", "import pyrosetta.distributed.dask\n", "import pyrosetta.distributed.io as io\n", "import pyrosetta.distributed.packed_pose as packed_pose\n", "import pyrosetta.distributed.tasks.rosetta_scripts as rosetta_scripts\n", "import pyrosetta.distributed.tasks.score as score\n", "import pyrosetta.distributed.viewer as viewer\n", "import seaborn\n", "seaborn.set()\n", "import sys\n", "\n", "from dask_jobqueue import SLURMCluster\n", "from dask.distributed import Client, progress, as_completed\n", "from IPython import display\n", "\n", "if 'google.colab' in sys.modules:\n", " print(\"This Jupyter notebook uses parallelization and is therefore not set up for the Google Colab environment.\")\n", " sys.exit(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Setup PyRosetta command line flags:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:pyrosetta.distributed:maybe_init performing pyrosetta initialization: {'extra_options': '-extra_res_fa inputs/TPA.am1-bcc.fa.params -ignore_unrecognized_res 1 -out:level 200', 'silent': True}\n", "INFO:pyrosetta.rosetta:Found rosetta database at: /home/klimaj/anaconda3/envs/PyRosetta.notebooks/lib/python3.7/site-packages/pyrosetta/database; using it....\n", "INFO:pyrosetta.rosetta:PyRosetta-4 2020 [Rosetta PyRosetta4.conda.linux.CentOS.python37.Release 2020.02+release.22ef835b4a2647af94fcd6421a85720f07eddf12 2020-01-05T17:31:56] retrieved from: http://www.pyrosetta.org\n", "(C) Copyright Rosetta Commons Member Institutions. Created in JHU by Sergey Lyskov and PyRosetta Team.\n" ] } ], "source": [ "ligand_params = \"inputs/TPA.am1-bcc.fa.params\"\n", "flags = f\"\"\"\n", "-extra_res_fa {ligand_params}\n", "-ignore_unrecognized_res 1\n", "-out:level 200\n", "\"\"\"\n", "pyrosetta.distributed.init(flags)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Setup `dask` workers to run ligand docking simulations:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "if not os.getenv(\"DEBUG\"):\n", " scratch_dir = os.path.join(\"/net/scratch\", os.environ[\"USER\"]) # Change to your scratch directory\n", " cluster = SLURMCluster(cores=1,\n", " processes=1,\n", " job_cpu=1,\n", " memory=\"3GB\",\n", " queue=\"short\",\n", " walltime=\"02:59:00\",\n", " local_directory=scratch_dir,\n", " job_extra=[\"-o {}\".format(os.path.join(scratch_dir, \"slurm-%j.out\"))],\n", " extra=pyrosetta.distributed.dask.worker_extra(init_flags=flags))\n", " n_workers = 20\n", " cluster.scale(n_workers)\n", " client = Client(cluster)\n", "else:\n", " cluster, client = None, None" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "

Client

\n", "\n", "
\n", "

Cluster

\n", "
    \n", "
  • Workers: 0
  • \n", "
  • Cores: 0
  • \n", "
  • Memory: 0 B
  • \n", "
\n", "
" ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "client" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Setup global ligand docking RosettaScripts protocol within `pyrosetta.distributed`:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "xml = \"\"\"\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\"\"\"\n", "xml_obj = rosetta_scripts.SingleoutputRosettaScriptsTask(xml)\n", "xml_obj.setup()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Setup input pose as `PackedPose` object:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "pose_obj = io.pose_from_file(filename=\"inputs/test_lig.pdb\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Submit 100 global ligand docking trajectories, very similar to using command line `-nstruct` flag:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "if not os.getenv(\"DEBUG\"):\n", " futures = [client.submit(xml_obj, pose_obj) for i in range(100)]\n", " results = [future.result() for future in futures]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As results accumulate, you may wish to keep an eye on the progress bar in the `dask` dashboard.\n", "\n", "The called `future.result()` transfers the `PackedPose` objects back to this Jupyter session, so we can inspect the scores in memory!" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "

\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
interfErmsd_chXfa_atrfa_repfa_solfa_intra_repfa_intra_sol_xover4lk_ball_wtdfa_elecpro_close...hbond_scdslf_fa13omegafa_dunp_aa_ppyhh_planarityreframa_preprototal_scorepickled_pose
0-4.31001110.997455-2130.4213641372.8302261342.0915231567.15913292.416371-46.938660-480.84376273.297583...-20.2819510.018.0539922857.865936-84.7976140.88819081.74634121.0924901519.496943gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...
1-8.1955943.577211-2135.9100441318.8392501335.1309591547.84157789.528559-46.535040-494.360305112.373971...-26.9927280.035.8741932796.785539-82.0618730.45968581.74634121.5796021464.965851gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...
2-11.78060010.575939-2108.0915271427.8925841315.4351271569.00946791.189021-47.187082-477.39644373.368136...-20.4038770.09.3132652937.585191-82.6309850.18214681.74634122.9423221598.446543gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...
3-0.48804910.196235-2133.2538571308.8529511330.6670921569.55046690.640954-48.087869-487.68316190.501048...-26.7720070.016.7215232877.101694-81.7738720.76889481.74634118.7144931486.058971gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...
4-9.6466548.200747-2141.0884561355.0539891350.1359261555.03638095.491082-49.469960-495.744410112.964123...-24.8947570.024.4394692848.390589-84.2451720.65325781.74634122.3174731527.550166gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...
5-28.0495200.410507-2139.8441631340.9953501340.5593761486.96660490.701248-49.300368-512.86117792.580508...-27.2596180.028.2767162812.418716-83.2259660.57704181.74634119.8822651436.749142gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...
6-5.6901347.620458-2130.5951161354.9243021334.4729491557.50841891.275502-50.127856-501.49455790.156339...-22.1139470.020.8921612836.642389-80.5921240.40890481.74634122.7756801480.337855gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...
714.10846110.286517-2126.8830651448.3450601340.9297371557.85854191.888944-50.352979-473.366614100.846834...-17.9725570.012.7399682954.099768-81.4982490.31801981.74634126.2087851672.480828gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...
87.06829612.266051-2120.1102361440.7879691334.5093761561.36290888.834847-46.673847-472.05217573.222180...-21.7233780.011.7272132931.140423-84.0097790.88195281.74634124.7301971613.066484gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...
9-16.5414984.480207-2138.5686761526.7697081334.1179401558.40590391.668703-50.730091-478.99570090.225311...-23.0884100.019.3196792872.540493-83.0135270.14592481.74634121.2000311613.064400gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...
\n", "

10 rows × 23 columns

\n", "
" ], "text/plain": [ " interfE rmsd_chX fa_atr fa_rep fa_sol fa_intra_rep \\\n", "0 -4.310011 10.997455 -2130.421364 1372.830226 1342.091523 1567.159132 \n", "1 -8.195594 3.577211 -2135.910044 1318.839250 1335.130959 1547.841577 \n", "2 -11.780600 10.575939 -2108.091527 1427.892584 1315.435127 1569.009467 \n", "3 -0.488049 10.196235 -2133.253857 1308.852951 1330.667092 1569.550466 \n", "4 -9.646654 8.200747 -2141.088456 1355.053989 1350.135926 1555.036380 \n", "5 -28.049520 0.410507 -2139.844163 1340.995350 1340.559376 1486.966604 \n", "6 -5.690134 7.620458 -2130.595116 1354.924302 1334.472949 1557.508418 \n", "7 14.108461 10.286517 -2126.883065 1448.345060 1340.929737 1557.858541 \n", "8 7.068296 12.266051 -2120.110236 1440.787969 1334.509376 1561.362908 \n", "9 -16.541498 4.480207 -2138.568676 1526.769708 1334.117940 1558.405903 \n", "\n", " fa_intra_sol_xover4 lk_ball_wtd fa_elec pro_close ... hbond_sc \\\n", "0 92.416371 -46.938660 -480.843762 73.297583 ... -20.281951 \n", "1 89.528559 -46.535040 -494.360305 112.373971 ... -26.992728 \n", "2 91.189021 -47.187082 -477.396443 73.368136 ... -20.403877 \n", "3 90.640954 -48.087869 -487.683161 90.501048 ... -26.772007 \n", "4 95.491082 -49.469960 -495.744410 112.964123 ... -24.894757 \n", "5 90.701248 -49.300368 -512.861177 92.580508 ... -27.259618 \n", "6 91.275502 -50.127856 -501.494557 90.156339 ... -22.113947 \n", "7 91.888944 -50.352979 -473.366614 100.846834 ... -17.972557 \n", "8 88.834847 -46.673847 -472.052175 73.222180 ... -21.723378 \n", "9 91.668703 -50.730091 -478.995700 90.225311 ... -23.088410 \n", "\n", " dslf_fa13 omega fa_dun p_aa_pp yhh_planarity ref \\\n", "0 0.0 18.053992 2857.865936 -84.797614 0.888190 81.74634 \n", "1 0.0 35.874193 2796.785539 -82.061873 0.459685 81.74634 \n", "2 0.0 9.313265 2937.585191 -82.630985 0.182146 81.74634 \n", "3 0.0 16.721523 2877.101694 -81.773872 0.768894 81.74634 \n", "4 0.0 24.439469 2848.390589 -84.245172 0.653257 81.74634 \n", "5 0.0 28.276716 2812.418716 -83.225966 0.577041 81.74634 \n", "6 0.0 20.892161 2836.642389 -80.592124 0.408904 81.74634 \n", "7 0.0 12.739968 2954.099768 -81.498249 0.318019 81.74634 \n", "8 0.0 11.727213 2931.140423 -84.009779 0.881952 81.74634 \n", "9 0.0 19.319679 2872.540493 -83.013527 0.145924 81.74634 \n", "\n", " rama_prepro total_score pickled_pose \n", "0 121.092490 1519.496943 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... \n", "1 121.579602 1464.965851 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... \n", "2 122.942322 1598.446543 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... \n", "3 118.714493 1486.058971 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... \n", "4 122.317473 1527.550166 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... \n", "5 119.882265 1436.749142 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... \n", "6 122.775680 1480.337855 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... \n", "7 126.208785 1672.480828 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... \n", "8 124.730197 1613.066484 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... \n", "9 121.200031 1613.064400 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... \n", "\n", "[10 rows x 23 columns]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "if not os.getenv(\"DEBUG\"):\n", " df = pd.DataFrame.from_records(packed_pose.to_dict(results))\n", "else:\n", " df = pd.DataFrame()\n", "df.head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now plot the ligand binding energy landscape:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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AADEAJmvQDr3d3sytqXE4ccBAABQ2gjdBZTp705IkuPJCbkeAAAAFAbtJQAAAEDACN0AAABAwAjdAAAAQMAI3QAAAEDACN0AAABAwAjdAAAAQMAI3QAAAEDACN0AAABAwAjdAAAAQMAI3QAAAEDACN0AAABAwAjdAAAAQMAI3QAAAEDACN0AAABAwBJhF1Aotm1F6nXihDHzjzHzjzHzjzHzjzHzjzHzjzHzLypj1lMdlud5XgFrAQAAAGKH9hIAAAAgYIRuAAAAIGCEbgAAACBghG4AAAAgYIRuAAAAIGCEbgAAACBghG4AAAAgYIRuAAAAIGCEbgAAACBghG4AAAAgYImwC4iarVu3asmSJfrss880bNgwrVy5UmPHju30HMdxdOedd+q1116TZVm65pprdPnll4dTcMhSqZRuuukmffTRRxowYIA+//nPa/ny5Ro+fHin5y1ZskQbN25UMpmUJE2fPl3f/e53wyg5Es477zwNGDBAAwcOlCQtWrRIX/3qVzs9p62tTUuXLtV7770nY4wWL16sadOmhVFu6D755BNdd9112a/37dun/fv3q7GxsdPzHnzwQf3sZz9TVVWVJOkrX/mKbr311oLWGqaVK1fqhRde0Pbt27V27VqdfPLJknKb16R4zm1djVmu85oUz7mtu+Msl3lNiufc1tWY5TqvSfGb23r6Hfzv//5vLVu2TAcPHtSYMWP0D//wDxoxYsQxrxHJ48xDJ1dccYX3zDPPeJ7nec8884x3xRVXHPOcNWvWeFdddZXnOI7X0tLiffWrX/U+/vjjQpcaCalUynvzzTezX991113e0qVLj3ne4sWLvUcffbSQpUXatGnTvPfff7/H5zz44INeXV2d53met3XrVu+ss87y9u/fX4jyIu/OO+/0br/99mMef+CBB7y77rorhIqi4e233/aampqOOb5ymdc8L55zW1djluu85nnxnNu6O85ymdc8L55zW3djdqTu5jXPi9/c1t3voOu63vnnn++9/fbbnud53kMPPeQtWbKky9eI4nFGe8kRWlpatHnzZs2YMUOSNGPGDG3evFl79uzp9LznnntOl19+uWzb1vDhw3X++efrF7/4RRglh27YsGGaMmVK9uvTTjtNTU1NIVZUOp5//nnNnj1bkjR27FhNmDBBr776ashVha+9vV1r167VZZddFnYpkTNp0iRVV1d3eizXeU2K59zW1Zgxr/WsqzHzI45zW29jxrzWWXe/g5s2bdLAgQM1adIkSdLs2bO7naOieJwRuo+wY8cOjRo1SsYYSZIxRlVVVdqxY8cxzxs9enT26+rqau3cubOgtUaR67p6/PHHdd5553X5/UceeUQzZ85UbW2tPvjggwJXFz2LFi3SzJkzddttt2nv3r3HfL+pqUljxozJfs1xdsjLL7+sUaNG6ctf/nKX31+/fr1mzpypq666Sr/85S8LXF305DqvZZ7L3NZZb/OaxNx2pN7mNYm5rSu9zWtSfOe2I38Hj56jhg8fLtd19dlnnx3z96J4nBG6kTd33HGHKioqNHfu3GO+d+ONN+rFF1/U2rVr9Y1vfEPz58+X4zghVBkNjz32mJ599lk9/fTT8jxPy5cvD7ukovH00093uxo0e/ZsvfTSS1q7dq2uvvpq1dbWKpVKFbhClJKe5jWJue1IzGt919O8JsV7buvtd7CYELqPUF1drV27dmUnTMdx1NzcfMxHQtXV1Z0+atyxY4dOOOGEgtYaNStXrtSHH36o++67T7Z97GE1atSo7OOXXHKJWltbQz/jDFPmmBowYIDmzJmjd99995jnjB49Wtu3b89+zXEm7dq1S2+//bZmzpzZ5fcrKytVVlYmSZo6daqqq6v129/+tpAlRk6u81rmucxtf9TbvCYxtx0pl3lNYm47Wm/zmhTfue3o38Gj56g9e/bIsiwNGzbsmL8bxeOM0H2EESNGaPz48Vq3bp0kad26dRo/fvwxV6xPnz5dTz31lFzX1Z49e/Tv//7vuvDCC8MoORLuvfde/c///I8eeughDRgwoMvn7Nq1K/vn1157TbZta9SoUYUqMVJaW1u1b98+SZLneXruuec0fvz4Y543ffp0Pfnkk5Kkbdu2adOmTV3uBBAna9as0bnnnpvdKeJoRx5nW7Zs0fbt2/WFL3yhUOVFUq7zmsTcdqRc5jWJuS0j13lNYm47Wm/zmhTPua2r38EJEybowIEDeueddyRJTzzxhL75zW92+fejeJxZnud5oVYQMR988IGWLFmivXv36rjjjtPKlSv1J3/yJ1qwYIEWLlyoiRMnynEcLV++XK+//rokacGCBZo1a1bIlYfjt7/9rWbMmKGxY8dq0KBBkqTPfe5zeuihh3TxxRdr9erVGjVqlObNm6eWlhZZlqUhQ4bopptu0mmnnRZy9eH4+OOP9Td/8zdyHEeu62rcuHG65ZZbVFVV1WnMWltbtWTJEm3ZskW2bev73/++zj///LDLD9WFF16om2++Weecc072sSN/NxcvXqz33ntPtm2rrKxMCxcu1LnnnhtixYV15513asOGDdq9e7eSyaSGDRum9evXdzuvSYr93NbVmN13333dzmuSYj+3dTVm//zP/9ztvCYp9nNbd7+bUtfzmhTvua2nbPHuu+/q1ltv7bRl4MiRIyVF/zgjdAMAAAABo70EAAAACBihGwAAAAgYoRsAAAAIGKEbAAAACBihGwAAAAgYoRsAAAAIGKEbAJD14IMPatGiRX3++0uWLNG9996bx4oAoDQQugEABbFz505Nnjw5ezc56dCtmSdPnqxf/epXIVYGAMEjdANAkUmn02GX0CcnnHCCFi1apFtuuUUHDx6UJC1btkx//ud/rlNPPTXk6gAgWIRuACgC5513nlavXq2ZM2fqtNNO0znnnKMf/ehH2a/r6uq0e/duzZ8/X6effrrmzZun3//+95KkgwcPatGiRZoyZYomTZqkyy67TLt375Ykffzxx5o7d65OP/10XXnllUqlUjnV884772j27NmaNGmSzj33XP3rv/5r9nt79+7VNddco9NPP12XX365Pvroo+z3/vIv/1KVlZX6p3/6J61Zs0Zbt27V3/7t3+ZxpAAgmgjdAFAk1q9fr9WrV+udd95RIpHQhg0b9Mgjj+iFF17QK6+8ogULFuh73/ue3nrrLbmuq0cffVSStGbNGu3fv1//8R//obfeeku33367Bg0aJElatGiRvvzlL+utt95SbW2t1qxZ02sdTU1NWrBggebOnas33nhDzzzzjMaPH9+pzuuvv15vv/22TjzxxE493pZl6Qc/+IF+9rOfqb6+XnfccYfKy8vzPFIAED2EbgAoEldccYWqq6uzgXnu3LkaOXKkRo0apUmTJumUU07Rn/3Zn2nAgAG64IILtHnzZklSIpHQZ599pg8//FDGGE2YMEFDhgxRU1OTNm3apBtuuEEDBgzQ5MmTdd555/Vax9q1a3XWWWdpxowZKisrUzKZ7BS6L7jgAp1yyilKJBK66KKLtGXLlk5/f/To0aqqqtKQIUM0efLkPI4QAEQXoRsAikR1dXWnr0eOHJn988CBAzt9PWjQILW2tkqSLr74Yp199tn63ve+p7PPPlt33323Ojo61NzcrOOOO04VFRXZvzd69Ohe69ixY4dOPPHEbr/fXR0Zq1ev1rBhwzR8+HD9+Mc/7vXfA4BSkAi7AABAbizL6tPfKysr0/XXX6/rr79en3zyia655hp94Qtf0FlnnaW9e/eqtbU1G7ybmpp6/Xeqq6v161//uk+1/O53v9PDDz+sn//85+ro6NCcOXP0jW98Q2PHju3T6wFAsWClGwBK3Jtvvqn3339fjuNoyJAhSiQSMsZozJgxmjBhgh588EG1t7frnXfe0SuvvNLr682cOVMbN27Uc889p3Q6rVQqdUwLSVdc19XNN9+s+fPna9y4cfrSl76kK664Qn//938vz/Py8aMCQGQRugGgxO3evVsLFy7UGWecoW9961uqqanRRRddJEm655579Ktf/UpTpkzRQw89pEsuuaTX1xs9erT+5V/+RY888ohqamp0ySWX6De/+U2vf++nP/2p2traNH/+/Oxj1113nXbv3q2nnnqq7z8gABQBy2N5AQAAAAgUK90AAABAwLiQEgBwjGeffVa33nrrMY+PHj1a69evD6EiAChutJcAAAAAAaO9BAAAAAgYoRsAAAAIGKEbAAAACBihGwAAAAjY/wedvoxqithArwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "if not os.getenv(\"DEBUG\"):\n", " matplotlib.rcParams['figure.figsize'] = [12.0, 8.0]\n", " seaborn.scatterplot(x=\"rmsd_chX\", y=\"interfE\", data=df)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at the lowest energy model according to `interfE`!" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "application/3dmoljs_load.v0": "
\n

You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n jupyter labextension install jupyterlab_3dmol

\n
\n", "text/html": [ "
\n", "

You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
\n", " jupyter labextension install jupyterlab_3dmol

\n", "
\n", "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "if not os.getenv(\"DEBUG\"):\n", " lowest_energy_df = df[\"interfE\"].sort_values()\n", " lowest_energy_index = lowest_energy_df.index[-1]\n", " lowest_energy_pose = results[lowest_energy_index]\n", "\n", " view = viewer.init(lowest_energy_pose)\n", " view.add(viewer.setStyle())\n", " view.add(viewer.setStyle(command=({\"hetflag\": True}, {\"stick\": {\"colorscheme\": \"brownCarbon\", \"radius\": 0.2}})))\n", " view.add(viewer.setHydrogenBonds())\n", " view.add(viewer.setZoomTo(residue_selector=pyrosetta.rosetta.core.select.residue_selector.ChainSelector(\"X\")))\n", " view()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "View the five lowest energy poses according to `interfE`:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0d37d570d89f41bab5fb0ee2d02c3bc2", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=0, continuous_update=False, description='Decoys', max=4), Output()), _do…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "if not os.getenv(\"DEBUG\"):\n", " lowest_energy_poses = list(packed_pose.dict_to_pose(df.sort_values(by=\"interfE\").head(5).to_dict()).values())\n", " view = viewer.init(lowest_energy_poses)\n", " view.add(viewer.setStyle())\n", " view.add(viewer.setStyle(command=({\"hetflag\": True}, {\"stick\": {\"colorscheme\": \"brownCarbon\", \"radius\": 0.2}})))\n", " view.add(viewer.setHydrogenBonds())\n", " view.add(viewer.setZoomTo(residue_selector=pyrosetta.rosetta.core.select.residue_selector.ChainSelector(\"X\")))\n", " view()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you wish to save any `PackedPose` objects as `.pdb` files:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "# for i, p in enumerate(results):\n", "# with open(\"outputs/RESULT_%i.pdb\" % i, \"w\") as f:\n", "# f.write(io.to_pdbstring(p))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you wish to save a scorefile:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# with open(os.path.join(\"outputs\", \"ligand_docking_scores.fasc\"), \"w\") as f:\n", "# for result in results:\n", "# json.dump(result.scores, f)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part II: Parallelized Global Ligand Docking with `dask.distributed.as_completed` and `pyrosetta.distributed`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Example using `dask.distributed.as_completed()` function:\n", "\n", "\"Give me at least 5 global ligand docks where the ligand RMSD is at least 0.4 Angstroms from the input ligand coordinates.\":" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "After 160 dock(s), the lowest rmsd_chX is 0.39600881934165955\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from IPython import display\n", "import matplotlib.pyplot as plt\n", "if not os.getenv(\"DEBUG\"):\n", " with seaborn.color_palette(\"Blues_d\", n_colors=1):\n", " nstruct = n_workers\n", " futures = [client.submit(xml_obj, pose_obj) for j in range(nstruct)]\n", " seq = as_completed(futures, with_results=True)\n", "\n", " results = []\n", " for i, (future, result) in enumerate(seq, start=1):\n", "\n", " # Update dataset\n", " results.append(result)\n", " df = pd.DataFrame.from_records(packed_pose.to_dict(results))\n", " lowest_rmsd_chX = df[\"rmsd_chX\"].sort_values().values[0]\n", "\n", " # Update display\n", " display.clear_output(wait=True)\n", " print(f\"After {i} dock(s), the lowest rmsd_chX is {lowest_rmsd_chX}\")\n", " seaborn.scatterplot(x=\"rmsd_chX\", y=\"interfE\", data=df)\n", " display.display(plt.gcf())\n", "\n", " # Submit more futures if condition is not met\n", " if (i >= nstruct) and (not lowest_rmsd_chX <= 0.4):\n", " nstruct += n_workers\n", " for j in range(n_workers):\n", " seq.add(client.submit(xml_obj, pose_obj))\n", "else:\n", " df = pd.DataFrame()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "View resulting scores in the order they completed:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
dslf_fa13fa_atrfa_dunfa_elecfa_intra_repfa_intra_sol_xover4fa_repfa_solhbond_bb_schbond_lr_bb...lk_ball_wtdomegap_aa_pppickled_posepro_closerama_preprorefrmsd_chXtotal_scoreyhh_planarity
00.0-2109.6186772987.532787-460.8048891559.39266489.3388301458.6164961311.399444-44.488264-47.474618...-47.8486022.151970-82.041905gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...77.684772126.41210581.7463414.9024321671.0679960.001560
10.0-2105.3053113030.807182-473.2056981565.13019288.8354171466.7773581306.459782-44.193357-47.478300...-47.1212032.086357-83.405589gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...107.356720125.15833981.7463413.5380951727.3362870.034064
20.0-2091.3607012920.175148-458.8268121549.39486389.4536791414.4428401290.735470-43.107482-48.027345...-45.1372323.902656-85.342361gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...60.624014125.86572081.7463414.1286141577.8310180.003817
30.0-2112.8346143042.513417-473.4046571571.41035291.1885461438.9149761316.596837-46.476363-48.967521...-45.2765090.378058-84.547864gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...90.257290116.53394981.7463411.3053351695.6188780.317765
40.0-2109.3287792972.604335-465.3246641566.72169490.8435501464.7557651309.718084-45.480755-48.664992...-48.8832642.703349-81.230578gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...69.661009127.68028681.7463412.9241601646.9335910.568650
50.0-2105.8751063005.359107-469.4235031566.75044490.9327321431.7060801307.627006-46.425932-47.498704...-49.1780751.584126-81.226150gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...73.785812116.67825881.7463413.5188681646.7804150.318403
60.0-2098.2654442999.853778-480.0177851566.49463791.1579081434.6748321305.641416-47.730424-47.898621...-46.7822563.223878-83.081812gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...73.755589117.29158681.7463412.7832461641.0407650.432204
70.0-2110.6984652869.381021-460.0491691567.18649892.6883031441.3972981310.055850-45.114707-48.420000...-46.9530261.985867-82.933240gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...68.282715117.97060181.7463416.5232891562.1306490.005626
80.0-2112.5570273006.368632-482.3428781583.02667991.8405791435.4165311325.239038-46.112840-47.094844...-47.1205044.112792-81.840670gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...73.961269118.71066181.7463418.3898351651.3099110.525410
90.0-2140.9517892815.279697-499.2135431492.17394791.5689871395.5121361341.710954-49.993331-48.131888...-47.49336914.691859-79.592624gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.802109121.50681181.746343.0469771509.8399410.175492
100.0-2125.2024182899.647079-490.6011521577.84233794.0884601364.3606451321.908084-48.402136-48.807028...-52.66366711.696737-83.983555gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...91.684185117.75404681.746344.8037231528.7847030.579358
110.0-2155.3499822866.573512-499.2506851564.64064893.2486571372.8090501366.323752-52.773522-48.771073...-45.40296412.095227-81.154449gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...113.188497120.65728881.746344.4382061543.7291050.273438
120.0-2143.6955762870.783085-508.3169961553.96103491.3114211333.4131171345.722553-51.085523-50.438284...-49.63318819.001951-85.718842gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...91.863679109.42764181.746340.5717451470.2101820.712728
130.0-2138.7603252883.528075-507.6751061555.30230491.4257031342.5060431346.710152-52.357046-50.791051...-47.23254320.972475-85.407315gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...91.121341117.04481181.746340.4581641492.0280970.265234
140.0-2141.4939982875.760396-507.7330811554.01697190.5500861358.8627371346.042027-52.412001-48.918483...-47.66176718.668030-84.522635gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...92.281822110.26677081.746340.5232771491.8220230.559944
150.0-2134.8533202891.884801-500.0870961561.37240395.8319071397.2092191347.606185-50.128969-48.672139...-50.2277239.610174-81.519870gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...113.027827128.18162981.746347.7442151578.8987890.234016
160.0-2130.4276482881.176233-496.1312311570.84335491.8980121339.7812891337.382302-45.748851-48.195453...-47.4848417.367173-86.249748gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...89.905552105.72005681.746349.5343761493.7881420.458969
170.0-2143.6028142822.606888-516.1178641553.94502690.8132751349.4337351347.903526-52.802795-49.483066...-48.69412315.371134-84.446278gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...91.337428115.29108981.746340.5510911436.9302090.516437
180.0-2134.2591232881.342369-485.5921461564.43033892.4381961389.1686571339.053392-45.521617-48.479279...-49.9046009.005801-83.414992gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...91.612744118.62664481.746348.6276291545.7652370.477236
190.0-2126.6367972841.377136-477.6995661546.36152688.2019961359.3876371331.322346-49.295576-47.120713...-46.8665532.950709-85.684841gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...83.539327116.44619481.746349.9112601496.6311960.358909
200.0-2099.8765773053.322166-459.9115511561.67008489.2502941487.1012821300.466035-44.590540-47.492736...-48.1520312.074202-79.725613gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.613937128.14702581.7463418.6098291781.3417250.000542
210.0-2104.8578792967.536299-475.2256311547.76835789.8050571401.7630811310.761519-44.628433-48.130686...-46.4360556.419433-82.970515gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...75.474255124.36515781.7463413.0079851611.0212940.000835
220.0-2109.1733242977.394968-473.4010981552.68864888.5792771470.8420031306.794087-45.728224-47.767174...-47.9488954.079821-83.241786gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...91.383545124.78757381.7463413.7120201664.8798560.000420
230.0-2101.3930522971.352950-464.0458101573.50226490.9050071410.0554491303.956990-42.918329-47.492736...-46.7863481.875207-81.089453gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.708610123.97633981.7463422.7449991675.1953540.000087
240.0-2105.6524402956.671354-474.0407241556.54366791.8558921427.4506971304.386599-45.245211-48.259940...-48.9436412.931243-79.980137gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...89.802055119.13418681.7463413.4050771623.9148080.248590
250.0-2085.4136802929.150908-465.7504611480.79537990.0095201436.6272261285.343302-44.190242-48.220168...-48.9518171.052240-85.199877gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...115.206491119.98465181.7463413.4760921650.6597760.012628
260.0-2101.6286612971.976524-474.4118071566.46759790.4897911399.7676341312.757199-44.722650-47.365084...-45.2634383.017197-83.739637gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...73.968443113.44386181.7463414.5590411612.8570070.411724
270.0-2118.6438162996.024222-489.9795781570.58148391.7659521420.6752621327.652560-47.387580-47.044725...-48.9769152.541301-81.951286gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...90.022492115.86767681.7463410.8672411637.7507480.349443
280.0-2107.0798583003.622174-490.4726941563.47581689.9615611433.0078131316.154141-45.870439-47.509188...-45.673606-0.025740-81.813110gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...74.074750116.51334681.7463414.3400941631.8021490.500080
290.0-2126.5229383034.914502-464.3125731586.97958691.6331911430.3019921329.961156-46.781839-47.583167...-51.0849241.860717-83.669307gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...89.410144121.51098381.7463411.9656591697.0510100.129238
..................................................................
1300.0-2144.2477672874.821828-486.2374341562.93735392.5047531395.0420991356.419704-49.583866-52.326697...-51.6880197.829886-86.784765gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.776218108.66683781.746347.5106621561.2871900.211556
1310.0-2108.6237613015.873114-470.2834591568.46407892.7008841455.0753321310.351722-47.000685-47.495473...-46.9026283.249567-82.596549gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...91.245910128.10409781.7463413.8829041695.7738770.008729
1320.0-2147.3315782802.445830-478.4524131487.32684693.9195181395.6530061355.038940-49.448565-48.912378...-48.65626916.500387-86.895370gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.768683109.32122481.746347.4209381525.6566620.249148
1330.0-2106.2555202934.031255-482.5774831563.10027192.2309461399.8498261319.494447-45.299200-47.533875...-49.6791665.361302-81.586007gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...71.868096115.84393781.7463415.1960311575.9595190.519367
1340.0-2122.1921392854.128944-486.2354761558.70452089.6955431332.7817391330.520349-49.524705-47.519634...-49.9320887.083149-80.914587gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...89.907381113.51624881.7463410.1523691489.7678490.425513
1350.0-2137.6930082880.027282-514.3227991554.17186690.7601421340.8743791344.047156-53.767339-48.577084...-46.73623416.448148-84.167860gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...91.114415111.37774781.746340.4894561475.2888920.221439
1360.0-2126.1826102873.203731-484.9962251561.49332590.7990411404.7174191333.117035-45.096734-48.530084...-49.0449559.338754-83.552379gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.961193118.68317481.746348.9924391575.4518400.611699
1370.0-2126.9693282852.784259-492.5510611560.83951491.4866831366.9532291337.166167-46.348315-48.135581...-48.7195575.676320-82.403045gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...74.124990112.91716081.746346.3330911477.0845820.328078
1380.0-2143.6658962860.508577-517.3042661556.33235191.0971301337.1762401348.637250-51.219139-50.750459...-47.32961015.380754-83.311322gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...90.375868114.52105581.746340.5173231453.5650340.419099
1390.0-2133.7924502801.508040-479.1267631573.26129990.8759841331.2294441330.838429-47.463442-48.296040...-49.6204617.701313-79.752192gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.891746120.48330781.746346.6010251476.8959860.235007
1400.0-2090.9572592928.147676-461.3037311523.71518789.5061571403.5986361283.312769-43.544720-47.758117...-48.8724912.065291-82.291367gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...115.206491124.39057681.7463415.5956611639.2668490.014259
1410.0-2110.0320233006.100929-489.5552661560.46236090.6825031450.3980071317.864595-47.006041-47.844067...-48.0138852.084970-80.596617gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...90.144134120.26434981.7463412.0448571661.9014650.234651
1420.0-2113.5213942999.112155-472.5089951554.81713289.6339941463.9476631314.773482-49.315623-48.684258...-46.4416287.139928-83.631649gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...113.083494126.28595481.7463410.2164021709.8175680.000746
1430.0-2097.0055182937.948356-464.9173741566.55880995.6684531432.8369431304.714259-47.001855-47.867360...-47.7291511.091405-84.224396gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...75.292368124.67825881.7463414.7402251620.1821800.038664
1440.0-2124.9131782944.514831-493.7830121573.53065588.9899921407.5983081344.928613-49.961994-48.568667...-44.8671625.069023-81.610190gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...73.807503117.40089481.7463411.5822641579.3282880.348630
1450.0-2130.0885612870.161785-489.1301221492.69830889.3440451411.6182211333.232092-47.261742-48.705428...-49.3003838.348099-84.118442gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.378684109.40461481.746349.1344581557.5127700.460359
1460.0-2125.1271982850.554976-473.9681781561.44025391.0149901382.3909721330.658495-46.276677-48.726469...-50.3887156.165901-83.264292gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...73.912396111.07122581.746346.2862981507.3352580.416813
1470.0-2132.0530312898.781949-495.7853381573.29140593.7407351344.4458711331.943941-47.832939-47.929045...-48.96446811.452339-82.866998gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...74.032834108.79806181.7463410.2784201490.4164640.620342
1480.0-2139.8264482841.177077-484.1212591548.64006391.3865111363.2207081343.080905-51.723530-47.995901...-47.80235012.742675-81.557880gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.866188121.58921281.746346.0459251527.9181700.200723
1490.0-2143.3820342897.265992-514.9523901560.48740991.3688631343.9536461348.323361-51.508157-50.565540...-47.39424517.041907-83.387448gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...91.992981117.48755481.746340.4298131489.8072090.382470
1500.0-2120.7411112809.449008-475.4704572467.572674113.5631041375.9596001322.874806-46.658919-51.433403...-52.00917311.170164-86.872222gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...115.206491115.68580081.746346.6700571541.4633550.166151
1510.0-2136.3251782884.628860-513.9204561559.87887092.3880431334.3336871338.505606-51.686538-49.118018...-47.82119815.070663-84.282077gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...91.376807112.59556081.746340.6321041471.1357820.358777
1520.0-2133.7971782853.978348-484.1456371567.66863491.3376561322.5157701332.110312-48.348268-49.988059...-48.0394416.949739-82.454699gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.928183114.04034581.746349.9343151506.5797520.236804
1530.0-2128.4546532851.394925-487.3288311555.15701092.2421131324.6653681324.336250-51.016076-47.300948...-48.05929313.992234-78.853827gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.912418124.45665681.746345.4361191508.8907030.478339
1540.0-2139.3683302936.076321-483.4498181550.78387991.8006791345.1990751348.714499-50.549542-46.956615...-47.6096424.619060-80.734718gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...89.821609118.73350181.746349.6390021560.8392000.342402
1550.0-2137.5556432795.451017-499.6444071484.42496191.7361921402.2624531343.911470-49.831555-47.649349...-46.52805514.005410-83.143630gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.776401117.55613581.746343.3446271505.4888120.149157
1560.0-2128.2847302796.317148-492.1573281520.32980389.3423171342.2621611335.670777-48.167967-50.223889...-48.7757167.738594-84.801371gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...78.839587105.63060181.746348.6822341418.6476690.552394
1570.0-2147.8047222850.778752-514.7517811549.53315390.7993321349.9724991353.027955-52.763912-48.775347...-48.10279915.068571-83.769684gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...92.271461112.44237881.746340.3960091462.0948420.572291
1580.0-2149.8136112861.453420-497.1790591554.64088291.7336471343.4363911365.364092-49.025013-48.886184...-46.04730214.037734-81.954909gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.953796111.88816681.746345.7575471527.6012230.190742
1590.0-2124.7451772812.671157-493.3828371558.49850789.9701931301.2569171329.799382-47.415557-47.226482...-45.76653412.734397-81.703491gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...90.459127110.83978381.746348.0808121441.0608190.230237
\n", "

160 rows × 23 columns

\n", "
" ], "text/plain": [ " dslf_fa13 fa_atr fa_dun fa_elec fa_intra_rep \\\n", "0 0.0 -2109.618677 2987.532787 -460.804889 1559.392664 \n", "1 0.0 -2105.305311 3030.807182 -473.205698 1565.130192 \n", "2 0.0 -2091.360701 2920.175148 -458.826812 1549.394863 \n", "3 0.0 -2112.834614 3042.513417 -473.404657 1571.410352 \n", "4 0.0 -2109.328779 2972.604335 -465.324664 1566.721694 \n", "5 0.0 -2105.875106 3005.359107 -469.423503 1566.750444 \n", "6 0.0 -2098.265444 2999.853778 -480.017785 1566.494637 \n", "7 0.0 -2110.698465 2869.381021 -460.049169 1567.186498 \n", "8 0.0 -2112.557027 3006.368632 -482.342878 1583.026679 \n", "9 0.0 -2140.951789 2815.279697 -499.213543 1492.173947 \n", "10 0.0 -2125.202418 2899.647079 -490.601152 1577.842337 \n", "11 0.0 -2155.349982 2866.573512 -499.250685 1564.640648 \n", "12 0.0 -2143.695576 2870.783085 -508.316996 1553.961034 \n", "13 0.0 -2138.760325 2883.528075 -507.675106 1555.302304 \n", "14 0.0 -2141.493998 2875.760396 -507.733081 1554.016971 \n", "15 0.0 -2134.853320 2891.884801 -500.087096 1561.372403 \n", "16 0.0 -2130.427648 2881.176233 -496.131231 1570.843354 \n", "17 0.0 -2143.602814 2822.606888 -516.117864 1553.945026 \n", "18 0.0 -2134.259123 2881.342369 -485.592146 1564.430338 \n", "19 0.0 -2126.636797 2841.377136 -477.699566 1546.361526 \n", "20 0.0 -2099.876577 3053.322166 -459.911551 1561.670084 \n", "21 0.0 -2104.857879 2967.536299 -475.225631 1547.768357 \n", "22 0.0 -2109.173324 2977.394968 -473.401098 1552.688648 \n", "23 0.0 -2101.393052 2971.352950 -464.045810 1573.502264 \n", "24 0.0 -2105.652440 2956.671354 -474.040724 1556.543667 \n", "25 0.0 -2085.413680 2929.150908 -465.750461 1480.795379 \n", "26 0.0 -2101.628661 2971.976524 -474.411807 1566.467597 \n", "27 0.0 -2118.643816 2996.024222 -489.979578 1570.581483 \n", "28 0.0 -2107.079858 3003.622174 -490.472694 1563.475816 \n", "29 0.0 -2126.522938 3034.914502 -464.312573 1586.979586 \n", ".. ... ... ... ... ... \n", "130 0.0 -2144.247767 2874.821828 -486.237434 1562.937353 \n", "131 0.0 -2108.623761 3015.873114 -470.283459 1568.464078 \n", "132 0.0 -2147.331578 2802.445830 -478.452413 1487.326846 \n", "133 0.0 -2106.255520 2934.031255 -482.577483 1563.100271 \n", "134 0.0 -2122.192139 2854.128944 -486.235476 1558.704520 \n", "135 0.0 -2137.693008 2880.027282 -514.322799 1554.171866 \n", "136 0.0 -2126.182610 2873.203731 -484.996225 1561.493325 \n", "137 0.0 -2126.969328 2852.784259 -492.551061 1560.839514 \n", "138 0.0 -2143.665896 2860.508577 -517.304266 1556.332351 \n", "139 0.0 -2133.792450 2801.508040 -479.126763 1573.261299 \n", "140 0.0 -2090.957259 2928.147676 -461.303731 1523.715187 \n", "141 0.0 -2110.032023 3006.100929 -489.555266 1560.462360 \n", "142 0.0 -2113.521394 2999.112155 -472.508995 1554.817132 \n", "143 0.0 -2097.005518 2937.948356 -464.917374 1566.558809 \n", "144 0.0 -2124.913178 2944.514831 -493.783012 1573.530655 \n", "145 0.0 -2130.088561 2870.161785 -489.130122 1492.698308 \n", "146 0.0 -2125.127198 2850.554976 -473.968178 1561.440253 \n", "147 0.0 -2132.053031 2898.781949 -495.785338 1573.291405 \n", "148 0.0 -2139.826448 2841.177077 -484.121259 1548.640063 \n", "149 0.0 -2143.382034 2897.265992 -514.952390 1560.487409 \n", "150 0.0 -2120.741111 2809.449008 -475.470457 2467.572674 \n", "151 0.0 -2136.325178 2884.628860 -513.920456 1559.878870 \n", "152 0.0 -2133.797178 2853.978348 -484.145637 1567.668634 \n", "153 0.0 -2128.454653 2851.394925 -487.328831 1555.157010 \n", "154 0.0 -2139.368330 2936.076321 -483.449818 1550.783879 \n", "155 0.0 -2137.555643 2795.451017 -499.644407 1484.424961 \n", "156 0.0 -2128.284730 2796.317148 -492.157328 1520.329803 \n", "157 0.0 -2147.804722 2850.778752 -514.751781 1549.533153 \n", "158 0.0 -2149.813611 2861.453420 -497.179059 1554.640882 \n", "159 0.0 -2124.745177 2812.671157 -493.382837 1558.498507 \n", "\n", " fa_intra_sol_xover4 fa_rep fa_sol hbond_bb_sc hbond_lr_bb \\\n", "0 89.338830 1458.616496 1311.399444 -44.488264 -47.474618 \n", "1 88.835417 1466.777358 1306.459782 -44.193357 -47.478300 \n", "2 89.453679 1414.442840 1290.735470 -43.107482 -48.027345 \n", "3 91.188546 1438.914976 1316.596837 -46.476363 -48.967521 \n", "4 90.843550 1464.755765 1309.718084 -45.480755 -48.664992 \n", "5 90.932732 1431.706080 1307.627006 -46.425932 -47.498704 \n", "6 91.157908 1434.674832 1305.641416 -47.730424 -47.898621 \n", "7 92.688303 1441.397298 1310.055850 -45.114707 -48.420000 \n", "8 91.840579 1435.416531 1325.239038 -46.112840 -47.094844 \n", "9 91.568987 1395.512136 1341.710954 -49.993331 -48.131888 \n", "10 94.088460 1364.360645 1321.908084 -48.402136 -48.807028 \n", "11 93.248657 1372.809050 1366.323752 -52.773522 -48.771073 \n", "12 91.311421 1333.413117 1345.722553 -51.085523 -50.438284 \n", "13 91.425703 1342.506043 1346.710152 -52.357046 -50.791051 \n", "14 90.550086 1358.862737 1346.042027 -52.412001 -48.918483 \n", "15 95.831907 1397.209219 1347.606185 -50.128969 -48.672139 \n", "16 91.898012 1339.781289 1337.382302 -45.748851 -48.195453 \n", "17 90.813275 1349.433735 1347.903526 -52.802795 -49.483066 \n", "18 92.438196 1389.168657 1339.053392 -45.521617 -48.479279 \n", "19 88.201996 1359.387637 1331.322346 -49.295576 -47.120713 \n", "20 89.250294 1487.101282 1300.466035 -44.590540 -47.492736 \n", "21 89.805057 1401.763081 1310.761519 -44.628433 -48.130686 \n", "22 88.579277 1470.842003 1306.794087 -45.728224 -47.767174 \n", "23 90.905007 1410.055449 1303.956990 -42.918329 -47.492736 \n", "24 91.855892 1427.450697 1304.386599 -45.245211 -48.259940 \n", "25 90.009520 1436.627226 1285.343302 -44.190242 -48.220168 \n", "26 90.489791 1399.767634 1312.757199 -44.722650 -47.365084 \n", "27 91.765952 1420.675262 1327.652560 -47.387580 -47.044725 \n", "28 89.961561 1433.007813 1316.154141 -45.870439 -47.509188 \n", "29 91.633191 1430.301992 1329.961156 -46.781839 -47.583167 \n", ".. ... ... ... ... ... \n", "130 92.504753 1395.042099 1356.419704 -49.583866 -52.326697 \n", "131 92.700884 1455.075332 1310.351722 -47.000685 -47.495473 \n", "132 93.919518 1395.653006 1355.038940 -49.448565 -48.912378 \n", "133 92.230946 1399.849826 1319.494447 -45.299200 -47.533875 \n", "134 89.695543 1332.781739 1330.520349 -49.524705 -47.519634 \n", "135 90.760142 1340.874379 1344.047156 -53.767339 -48.577084 \n", "136 90.799041 1404.717419 1333.117035 -45.096734 -48.530084 \n", "137 91.486683 1366.953229 1337.166167 -46.348315 -48.135581 \n", "138 91.097130 1337.176240 1348.637250 -51.219139 -50.750459 \n", "139 90.875984 1331.229444 1330.838429 -47.463442 -48.296040 \n", "140 89.506157 1403.598636 1283.312769 -43.544720 -47.758117 \n", "141 90.682503 1450.398007 1317.864595 -47.006041 -47.844067 \n", "142 89.633994 1463.947663 1314.773482 -49.315623 -48.684258 \n", "143 95.668453 1432.836943 1304.714259 -47.001855 -47.867360 \n", "144 88.989992 1407.598308 1344.928613 -49.961994 -48.568667 \n", "145 89.344045 1411.618221 1333.232092 -47.261742 -48.705428 \n", "146 91.014990 1382.390972 1330.658495 -46.276677 -48.726469 \n", "147 93.740735 1344.445871 1331.943941 -47.832939 -47.929045 \n", "148 91.386511 1363.220708 1343.080905 -51.723530 -47.995901 \n", "149 91.368863 1343.953646 1348.323361 -51.508157 -50.565540 \n", "150 113.563104 1375.959600 1322.874806 -46.658919 -51.433403 \n", "151 92.388043 1334.333687 1338.505606 -51.686538 -49.118018 \n", "152 91.337656 1322.515770 1332.110312 -48.348268 -49.988059 \n", "153 92.242113 1324.665368 1324.336250 -51.016076 -47.300948 \n", "154 91.800679 1345.199075 1348.714499 -50.549542 -46.956615 \n", "155 91.736192 1402.262453 1343.911470 -49.831555 -47.649349 \n", "156 89.342317 1342.262161 1335.670777 -48.167967 -50.223889 \n", "157 90.799332 1349.972499 1353.027955 -52.763912 -48.775347 \n", "158 91.733647 1343.436391 1365.364092 -49.025013 -48.886184 \n", "159 89.970193 1301.256917 1329.799382 -47.415557 -47.226482 \n", "\n", " ... lk_ball_wtd omega p_aa_pp \\\n", "0 ... -47.848602 2.151970 -82.041905 \n", "1 ... -47.121203 2.086357 -83.405589 \n", "2 ... -45.137232 3.902656 -85.342361 \n", "3 ... -45.276509 0.378058 -84.547864 \n", "4 ... -48.883264 2.703349 -81.230578 \n", "5 ... -49.178075 1.584126 -81.226150 \n", "6 ... -46.782256 3.223878 -83.081812 \n", "7 ... -46.953026 1.985867 -82.933240 \n", "8 ... -47.120504 4.112792 -81.840670 \n", "9 ... -47.493369 14.691859 -79.592624 \n", "10 ... -52.663667 11.696737 -83.983555 \n", "11 ... -45.402964 12.095227 -81.154449 \n", "12 ... -49.633188 19.001951 -85.718842 \n", "13 ... -47.232543 20.972475 -85.407315 \n", "14 ... -47.661767 18.668030 -84.522635 \n", "15 ... -50.227723 9.610174 -81.519870 \n", "16 ... -47.484841 7.367173 -86.249748 \n", "17 ... -48.694123 15.371134 -84.446278 \n", "18 ... -49.904600 9.005801 -83.414992 \n", "19 ... -46.866553 2.950709 -85.684841 \n", "20 ... -48.152031 2.074202 -79.725613 \n", "21 ... -46.436055 6.419433 -82.970515 \n", "22 ... -47.948895 4.079821 -83.241786 \n", "23 ... -46.786348 1.875207 -81.089453 \n", "24 ... -48.943641 2.931243 -79.980137 \n", "25 ... -48.951817 1.052240 -85.199877 \n", "26 ... -45.263438 3.017197 -83.739637 \n", "27 ... -48.976915 2.541301 -81.951286 \n", "28 ... -45.673606 -0.025740 -81.813110 \n", "29 ... -51.084924 1.860717 -83.669307 \n", ".. ... ... ... ... \n", "130 ... -51.688019 7.829886 -86.784765 \n", "131 ... -46.902628 3.249567 -82.596549 \n", "132 ... -48.656269 16.500387 -86.895370 \n", "133 ... -49.679166 5.361302 -81.586007 \n", "134 ... -49.932088 7.083149 -80.914587 \n", "135 ... -46.736234 16.448148 -84.167860 \n", "136 ... -49.044955 9.338754 -83.552379 \n", "137 ... -48.719557 5.676320 -82.403045 \n", "138 ... -47.329610 15.380754 -83.311322 \n", "139 ... -49.620461 7.701313 -79.752192 \n", "140 ... -48.872491 2.065291 -82.291367 \n", "141 ... -48.013885 2.084970 -80.596617 \n", "142 ... -46.441628 7.139928 -83.631649 \n", "143 ... -47.729151 1.091405 -84.224396 \n", "144 ... -44.867162 5.069023 -81.610190 \n", "145 ... -49.300383 8.348099 -84.118442 \n", "146 ... -50.388715 6.165901 -83.264292 \n", "147 ... -48.964468 11.452339 -82.866998 \n", "148 ... -47.802350 12.742675 -81.557880 \n", "149 ... -47.394245 17.041907 -83.387448 \n", "150 ... -52.009173 11.170164 -86.872222 \n", "151 ... -47.821198 15.070663 -84.282077 \n", "152 ... -48.039441 6.949739 -82.454699 \n", "153 ... -48.059293 13.992234 -78.853827 \n", "154 ... -47.609642 4.619060 -80.734718 \n", "155 ... -46.528055 14.005410 -83.143630 \n", "156 ... -48.775716 7.738594 -84.801371 \n", "157 ... -48.102799 15.068571 -83.769684 \n", "158 ... -46.047302 14.037734 -81.954909 \n", "159 ... -45.766534 12.734397 -81.703491 \n", "\n", " pickled_pose pro_close \\\n", "0 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 77.684772 \n", "1 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 107.356720 \n", "2 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 60.624014 \n", "3 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 90.257290 \n", "4 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 69.661009 \n", "5 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 73.785812 \n", "6 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 73.755589 \n", "7 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 68.282715 \n", "8 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 73.961269 \n", "9 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.802109 \n", "10 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 91.684185 \n", "11 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 113.188497 \n", "12 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 91.863679 \n", "13 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 91.121341 \n", "14 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 92.281822 \n", "15 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 113.027827 \n", "16 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 89.905552 \n", "17 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 91.337428 \n", "18 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 91.612744 \n", "19 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 83.539327 \n", "20 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.613937 \n", "21 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 75.474255 \n", "22 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 91.383545 \n", "23 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.708610 \n", "24 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 89.802055 \n", "25 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 115.206491 \n", "26 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 73.968443 \n", "27 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 90.022492 \n", "28 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 74.074750 \n", "29 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 89.410144 \n", ".. ... ... \n", "130 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.776218 \n", "131 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 91.245910 \n", "132 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.768683 \n", "133 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 71.868096 \n", "134 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 89.907381 \n", "135 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 91.114415 \n", "136 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.961193 \n", "137 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 74.124990 \n", "138 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 90.375868 \n", "139 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.891746 \n", "140 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 115.206491 \n", "141 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 90.144134 \n", "142 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 113.083494 \n", "143 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 75.292368 \n", "144 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 73.807503 \n", "145 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.378684 \n", "146 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 73.912396 \n", "147 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 74.032834 \n", "148 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.866188 \n", "149 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 91.992981 \n", "150 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 115.206491 \n", "151 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 91.376807 \n", "152 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.928183 \n", "153 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.912418 \n", "154 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 89.821609 \n", "155 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.776401 \n", "156 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 78.839587 \n", "157 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 92.271461 \n", "158 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.953796 \n", "159 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 90.459127 \n", "\n", " rama_prepro ref rmsd_chX total_score yhh_planarity \n", "0 126.412105 81.74634 14.902432 1671.067996 0.001560 \n", "1 125.158339 81.74634 13.538095 1727.336287 0.034064 \n", "2 125.865720 81.74634 14.128614 1577.831018 0.003817 \n", "3 116.533949 81.74634 11.305335 1695.618878 0.317765 \n", "4 127.680286 81.74634 12.924160 1646.933591 0.568650 \n", "5 116.678258 81.74634 13.518868 1646.780415 0.318403 \n", "6 117.291586 81.74634 12.783246 1641.040765 0.432204 \n", "7 117.970601 81.74634 16.523289 1562.130649 0.005626 \n", "8 118.710661 81.74634 18.389835 1651.309911 0.525410 \n", "9 121.506811 81.74634 3.046977 1509.839941 0.175492 \n", "10 117.754046 81.74634 4.803723 1528.784703 0.579358 \n", "11 120.657288 81.74634 4.438206 1543.729105 0.273438 \n", "12 109.427641 81.74634 0.571745 1470.210182 0.712728 \n", "13 117.044811 81.74634 0.458164 1492.028097 0.265234 \n", "14 110.266770 81.74634 0.523277 1491.822023 0.559944 \n", "15 128.181629 81.74634 7.744215 1578.898789 0.234016 \n", "16 105.720056 81.74634 9.534376 1493.788142 0.458969 \n", "17 115.291089 81.74634 0.551091 1436.930209 0.516437 \n", "18 118.626644 81.74634 8.627629 1545.765237 0.477236 \n", "19 116.446194 81.74634 9.911260 1496.631196 0.358909 \n", "20 128.147025 81.74634 18.609829 1781.341725 0.000542 \n", "21 124.365157 81.74634 13.007985 1611.021294 0.000835 \n", "22 124.787573 81.74634 13.712020 1664.879856 0.000420 \n", "23 123.976339 81.74634 22.744999 1675.195354 0.000087 \n", "24 119.134186 81.74634 13.405077 1623.914808 0.248590 \n", "25 119.984651 81.74634 13.476092 1650.659776 0.012628 \n", "26 113.443861 81.74634 14.559041 1612.857007 0.411724 \n", "27 115.867676 81.74634 10.867241 1637.750748 0.349443 \n", "28 116.513346 81.74634 14.340094 1631.802149 0.500080 \n", "29 121.510983 81.74634 11.965659 1697.051010 0.129238 \n", ".. ... ... ... ... ... \n", "130 108.666837 81.74634 7.510662 1561.287190 0.211556 \n", "131 128.104097 81.74634 13.882904 1695.773877 0.008729 \n", "132 109.321224 81.74634 7.420938 1525.656662 0.249148 \n", "133 115.843937 81.74634 15.196031 1575.959519 0.519367 \n", "134 113.516248 81.74634 10.152369 1489.767849 0.425513 \n", "135 111.377747 81.74634 0.489456 1475.288892 0.221439 \n", "136 118.683174 81.74634 8.992439 1575.451840 0.611699 \n", "137 112.917160 81.74634 6.333091 1477.084582 0.328078 \n", "138 114.521055 81.74634 0.517323 1453.565034 0.419099 \n", "139 120.483307 81.74634 6.601025 1476.895986 0.235007 \n", "140 124.390576 81.74634 15.595661 1639.266849 0.014259 \n", "141 120.264349 81.74634 12.044857 1661.901465 0.234651 \n", "142 126.285954 81.74634 10.216402 1709.817568 0.000746 \n", "143 124.678258 81.74634 14.740225 1620.182180 0.038664 \n", "144 117.400894 81.74634 11.582264 1579.328288 0.348630 \n", "145 109.404614 81.74634 9.134458 1557.512770 0.460359 \n", "146 111.071225 81.74634 6.286298 1507.335258 0.416813 \n", "147 108.798061 81.74634 10.278420 1490.416464 0.620342 \n", "148 121.589212 81.74634 6.045925 1527.918170 0.200723 \n", "149 117.487554 81.74634 0.429813 1489.807209 0.382470 \n", "150 115.685800 81.74634 6.670057 1541.463355 0.166151 \n", "151 112.595560 81.74634 0.632104 1471.135782 0.358777 \n", "152 114.040345 81.74634 9.934315 1506.579752 0.236804 \n", "153 124.456656 81.74634 5.436119 1508.890703 0.478339 \n", "154 118.733501 81.74634 9.639002 1560.839200 0.342402 \n", "155 117.556135 81.74634 3.344627 1505.488812 0.149157 \n", "156 105.630601 81.74634 8.682234 1418.647669 0.552394 \n", "157 112.442378 81.74634 0.396009 1462.094842 0.572291 \n", "158 111.888166 81.74634 5.757547 1527.601223 0.190742 \n", "159 110.839783 81.74634 8.080812 1441.060819 0.230237 \n", "\n", "[160 rows x 23 columns]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Examples Using the `dask` Module](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.04-dask.delayed-Via-Slurm.ipynb) | [Contents](toc.ipynb) | [Index](index.ipynb) | [PyRosettaCluster Tutorial 1A. Simple protocol](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.06-PyRosettaCluster-Simple-protocol.ipynb) >

\"Open" ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:PyRosetta.notebooks]", "language": "python", "name": "conda-env-PyRosetta.notebooks-py" }, "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.7.6" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }