{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains material from [PyRosetta](https://RosettaCommons.github.io/PyRosetta);\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/15.04-dask.delayed-Via-Slurm.ipynb) | [Contents](toc.ipynb) | [Index](index.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 15.00**" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "/home/klimaj/anaconda3/envs/test_dask/lib/python3.6/site-packages/dask/config.py:168: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.\n", " data = yaml.load(f.read()) or {}\n", "/home/klimaj/anaconda3/envs/test_dask/lib/python3.6/site-packages/dask_jobqueue/config.py:12: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.\n", " defaults = yaml.load(f)\n", "/home/klimaj/anaconda3/envs/test_dask/lib/python3.6/site-packages/distributed/config.py:20: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.\n", " defaults = yaml.load(f)\n" ] } ], "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/test_dask/lib/python3.6/site-packages/pyrosetta/database; using it....\n", "INFO:pyrosetta.rosetta:PyRosetta-4 2019 [Rosetta PyRosetta4.conda.linux.CentOS.python36.Release 2019.44+release.5aed75f2e796a33ab71515b6c1daa321eb2294a2 2019-10-29T08:37:43] 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": 9, "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", "
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-2132.5240192840.627152-482.3620861561.97688990.1499171421.1988101333.515804-44.195073-50.121019...-49.2217737.347747-86.884281gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...101.054893125.70357881.746346.5457141545.9355093.462497e-01
10.0-2126.1165292926.201629-491.9200011564.12625891.1052021385.0704951335.118156-48.533113-49.088925...-49.6349547.437842-82.260013gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...74.119128106.82925281.7463410.5584081534.9175083.366702e-01
20.0-2130.1231672924.648487-487.6678711567.20928791.9049371422.2660201344.298437-46.183076-48.711305...-47.6450324.663247-82.436664gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.202315115.96146381.7463410.3613881625.7419801.649556e-01
30.0-2137.3912232906.380115-490.8004491569.72380093.9144901378.9176981354.223277-46.421510-49.566291...-48.4630106.174959-85.540259gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.196592115.72598681.746348.7281131587.6026114.280736e-01
40.0-2122.5427772919.427592-489.4019471564.12662891.9962601374.6026251334.485654-46.727732-49.560444...-49.8331205.327450-82.024932gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...89.880797116.31119781.746349.4387741563.9415022.674752e-01
50.0-2140.9783672844.861010-508.5661291549.37694091.2890111344.5980391345.015301-53.345207-50.088087...-48.07865715.534245-84.222234gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...92.322767117.02502381.746340.5197351463.1116565.407168e-01
60.0-2144.5278562800.509248-489.8877491550.31233790.9938001357.8249911346.409041-51.460467-49.161952...-46.36445120.606902-84.362292gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.864346113.03383381.746348.9709911488.6333021.724846e-01
70.0-2134.4581272847.561975-500.7742981554.95471993.6037231363.9399751334.390218-48.767453-47.394004...-48.49497012.650259-84.204158gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...92.835996110.81304281.746344.4787151482.3277851.019284e+00
80.0-2101.7888762953.687268-463.5081091554.93230489.8487951456.4632831304.417298-44.706814-47.567703...-48.8176850.566248-79.915062gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...76.294680117.11459681.7463415.3333371635.6212311.275152e-02
90.0-2102.9249732979.615368-465.1213571560.15320193.2640231525.6160431305.784897-43.606602-47.492736...-45.1789311.720344-79.685943gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2...112.841262128.12136081.7463419.8686851756.1569083.744963e-08
\n", "

10 rows × 23 columns

\n", "
" ], "text/plain": [ " dslf_fa13 fa_atr fa_dun fa_elec fa_intra_rep \\\n", "0 0.0 -2132.524019 2840.627152 -482.362086 1561.976889 \n", "1 0.0 -2126.116529 2926.201629 -491.920001 1564.126258 \n", "2 0.0 -2130.123167 2924.648487 -487.667871 1567.209287 \n", "3 0.0 -2137.391223 2906.380115 -490.800449 1569.723800 \n", "4 0.0 -2122.542777 2919.427592 -489.401947 1564.126628 \n", "5 0.0 -2140.978367 2844.861010 -508.566129 1549.376940 \n", "6 0.0 -2144.527856 2800.509248 -489.887749 1550.312337 \n", "7 0.0 -2134.458127 2847.561975 -500.774298 1554.954719 \n", "8 0.0 -2101.788876 2953.687268 -463.508109 1554.932304 \n", "9 0.0 -2102.924973 2979.615368 -465.121357 1560.153201 \n", "\n", " fa_intra_sol_xover4 fa_rep fa_sol hbond_bb_sc hbond_lr_bb \\\n", "0 90.149917 1421.198810 1333.515804 -44.195073 -50.121019 \n", "1 91.105202 1385.070495 1335.118156 -48.533113 -49.088925 \n", "2 91.904937 1422.266020 1344.298437 -46.183076 -48.711305 \n", "3 93.914490 1378.917698 1354.223277 -46.421510 -49.566291 \n", "4 91.996260 1374.602625 1334.485654 -46.727732 -49.560444 \n", "5 91.289011 1344.598039 1345.015301 -53.345207 -50.088087 \n", "6 90.993800 1357.824991 1346.409041 -51.460467 -49.161952 \n", "7 93.603723 1363.939975 1334.390218 -48.767453 -47.394004 \n", "8 89.848795 1456.463283 1304.417298 -44.706814 -47.567703 \n", "9 93.264023 1525.616043 1305.784897 -43.606602 -47.492736 \n", "\n", " ... lk_ball_wtd omega p_aa_pp \\\n", "0 ... -49.221773 7.347747 -86.884281 \n", "1 ... -49.634954 7.437842 -82.260013 \n", "2 ... -47.645032 4.663247 -82.436664 \n", "3 ... -48.463010 6.174959 -85.540259 \n", "4 ... -49.833120 5.327450 -82.024932 \n", "5 ... -48.078657 15.534245 -84.222234 \n", "6 ... -46.364451 20.606902 -84.362292 \n", "7 ... -48.494970 12.650259 -84.204158 \n", "8 ... -48.817685 0.566248 -79.915062 \n", "9 ... -45.178931 1.720344 -79.685943 \n", "\n", " pickled_pose pro_close rama_prepro \\\n", "0 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 101.054893 125.703578 \n", "1 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 74.119128 106.829252 \n", "2 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.202315 115.961463 \n", "3 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.196592 115.725986 \n", "4 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 89.880797 116.311197 \n", "5 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 92.322767 117.025023 \n", "6 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.864346 113.033833 \n", "7 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 92.835996 110.813042 \n", "8 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 76.294680 117.114596 \n", "9 gANjcHlyb3NldHRhLnJvc2V0dGEuY29yZS5wb3NlClBvc2... 112.841262 128.121360 \n", "\n", " ref rmsd_chX total_score yhh_planarity \n", "0 81.74634 6.545714 1545.935509 3.462497e-01 \n", "1 81.74634 10.558408 1534.917508 3.366702e-01 \n", "2 81.74634 10.361388 1625.741980 1.649556e-01 \n", "3 81.74634 8.728113 1587.602611 4.280736e-01 \n", "4 81.74634 9.438774 1563.941502 2.674752e-01 \n", "5 81.74634 0.519735 1463.111656 5.407168e-01 \n", "6 81.74634 8.970991 1488.633302 1.724846e-01 \n", "7 81.74634 4.478715 1482.327785 1.019284e+00 \n", "8 81.74634 15.333337 1635.621231 1.275152e-02 \n", "9 81.74634 19.868685 1756.156908 3.744963e-08 \n", "\n", "[10 rows x 23 columns]" ] }, "execution_count": 9, "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": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "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": 17, "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": "9438f2816d4c47669be1f2be90a53cd0", "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" }, { "data": { "text/plain": [ ".view(i=0)>" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "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/15.04-dask.delayed-Via-Slurm.ipynb) | [Contents](toc.ipynb) | [Index](index.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 }