- {
- “cells”: [
- {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“<a href="https://colab.research.google.com/github/yuxuanzhuang/ENPMDA/blob/main/docs/source/examples/examples.ipynb" target="_parent"><img src=https://colab.research.google.com/assets/colab-badge.svg>n”, “n”, “[open in colab](https://colab.research.google.com/github/yuxuanzhuang/ENPMDA/blob/main/docs/source/examples/examples.ipynb)”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“# ENPMDA Usage”
]
}, {
“cell_type”: “code”, “execution_count”: 1, “metadata”: {}, “outputs”: [], “source”: [
“# uncomment these lines if the package is not installed.n”, “# !pip install -e "git+https://github.com/yuxuanzhuang/enpmda"n”, “# !pip install -e "git+https://github.com/yuxuanzhuang/enpmda#subdirectory=tests"n”, “# !pip install IProgressn”, “# !pip install seaborn”
]
}, {
“cell_type”: “code”, “execution_count”: 2, “metadata”: {}, “outputs”: [
- {
“name”: “stderr”, “output_type”: “stream”, “text”: [
- <<<<<<< Updated upstream
“2022-08-29 16:22:29,145 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-dt_sn5od’, purgingn”, “2022-08-29 16:22:29,156 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-fkkm3fnq’, purgingn”, “2022-08-29 16:22:29,159 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-tqj_fir1’, purgingn”, “2022-08-29 16:22:29,163 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-5ui0js5s’, purgingn”, “2022-08-29 16:22:29,166 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-hjqkdj1u’, purgingn”, “2022-08-29 16:22:29,170 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-5kxkrjpn’, purgingn”, “2022-08-29 16:22:29,173 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-_nmtljse’, purgingn”, “2022-08-29 16:22:29,176 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-cwlixcgu’, purgingn”, “2022-08-29 16:22:29,189 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-ukz1chin’, purgingn”, “2022-08-29 16:22:29,194 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-n3760isf’, purgingn”, “2022-08-29 16:22:29,202 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-t6fiifkt’, purgingn”, “2022-08-29 16:22:29,211 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-3o5n6757’, purgingn”, “2022-08-29 16:22:29,215 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-g5_6iceu’, purgingn”, “2022-08-29 16:22:29,218 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-7209fnum’, purgingn”, “2022-08-29 16:22:29,222 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-q1_13v0w’, purgingn”, “2022-08-29 16:22:29,226 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-3s9r7dj8’, purgingn”
“2022-08-29 16:41:12,493 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-rao74j06’, purgingn”, “2022-08-29 16:41:12,499 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-bzq9etnb’, purgingn”, “2022-08-29 16:41:12,503 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-polf1gt2’, purgingn”, “2022-08-29 16:41:12,506 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-hj55aw15’, purgingn”, “2022-08-29 16:41:12,509 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-x2povnv2’, purgingn”, “2022-08-29 16:41:12,513 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-dtrel_gv’, purgingn”, “2022-08-29 16:41:12,516 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-r0duvih8’, purgingn”, “2022-08-29 16:41:12,519 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-v2r__3o7’, purgingn”, “2022-08-29 16:41:12,522 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-_sj30_dt’, purgingn”, “2022-08-29 16:41:12,526 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-4lqa1sbp’, purgingn”, “2022-08-29 16:41:12,530 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-w3_xaj_s’, purgingn”, “2022-08-29 16:41:12,535 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-146kj9mb’, purgingn”, “2022-08-29 16:41:12,538 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-30lcubwi’, purgingn”, “2022-08-29 16:41:12,541 - distributed.diskutils - INFO - Found stale lock file and directory ‘/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-b0lts667’, purgingn”
- >>>>>>> Stashed changes
]
}, {
- “data”: {
- “text/html”: [
“<div>n”, ” <div style="width: 24px; height: 24px; background-color: #e1e1e1; border: 3px solid #9D9D9D; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <h3 style="margin-bottom: 0px;">Client</h3>n”,
- <<<<<<< Updated upstream
” <p style="color: #9D9D9D; margin-bottom: 0px;">Client-03e7a201-27a6-11ed-b761-0c42a1359150</p>n”,
” <table style="width: 100%; text-align: left;">n”, “n”, ” <tr>n”, ” n”, ” <td style="text-align: left;"><strong>Connection method:</strong> Cluster object</td>n”, ” <td style="text-align: left;"><strong>Cluster type:</strong> distributed.LocalCluster</td>n”, ” n”, ” </tr>n”, “n”, ” n”, ” <tr>n”, ” <td style="text-align: left;">n”, ” <strong>Dashboard: </strong> <a href="http://127.0.0.1:8787/status" target="_blank">http://127.0.0.1:8787/status</a>n”, ” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” n”, “n”, ” </table>n”, “n”, ” n”, ” <details>n”, ” <summary style="margin-bottom: 20px;"><h3 style="display: inline;">Cluster Info</h3></summary>n”, ” <div class="jp-RenderedHTMLCommon jp-RenderedHTML jp-mod-trusted jp-OutputArea-output">n”, ” <div style="width: 24px; height: 24px; background-color: #e1e1e1; border: 3px solid #9D9D9D; border-radius: 5px; position: absolute;">n”, ” </div>n”, ” <div style="margin-left: 48px;">n”, ” <h3 style="margin-bottom: 0px; margin-top: 0px;">LocalCluster</h3>n”,
- <<<<<<< Updated upstream
” <p style="color: #9D9D9D; margin-bottom: 0px;">994ead78</p>n”,
” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”, ” <strong>Dashboard:</strong> <a href="http://127.0.0.1:8787/status" target="_blank">http://127.0.0.1:8787/status</a>n”, ” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Workers:</strong> 16n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads:</strong> 64n”, ” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total memory:</strong> 125.78 GiBn”, ” </td>n”, ” </tr>n”, ” n”, ” <tr>n”, ” <td style="text-align: left;"><strong>Status:</strong> running</td>n”, ” <td style="text-align: left;"><strong>Using processes:</strong> True</td>n”, “</tr>n”, “n”, ” n”, ” </table>n”, “n”, ” <details>n”, ” <summary style="margin-bottom: 20px;">n”, ” <h3 style="display: inline;">Scheduler Info</h3>n”, ” </summary>n”, “n”, ” <div style="">n”, ” <div>n”, ” <div style="width: 24px; height: 24px; background-color: #FFF7E5; border: 3px solid #FF6132; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <h3 style="margin-bottom: 0px;">Scheduler</h3>n”,
- <<<<<<< Updated upstream
” <p style="color: #9D9D9D; margin-bottom: 0px;">Scheduler-f5f34c45-d499-4dde-ac1e-a4ceda610cb5</p>n”,
” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”, ” <strong>Comm:</strong> tcp://127.0.0.1:8785n”, ” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Workers:</strong> 16n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”, ” <strong>Dashboard:</strong> <a href="http://127.0.0.1:8787/status" target="_blank">http://127.0.0.1:8787/status</a>n”, ” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads:</strong> 64n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”, ” <strong>Started:</strong> Just nown”, ” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total memory:</strong> 125.78 GiBn”, ” </td>n”, ” </tr>n”, ” </table>n”, ” </div>n”, ” </div>n”, “n”, ” <details style="margin-left: 48px;">n”, ” <summary style="margin-bottom: 20px;">n”, ” <h3 style="display: inline;">Workers</h3>n”, ” </summary>n”, “n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 0</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:36379n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:36759/status" target="_blank">http://127.0.0.1:36759/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:39937n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-qecl18cyn”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 1</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:40555n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:36721/status" target="_blank">http://127.0.0.1:36721/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:46505n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-kmsroj2pn”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 2</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:35867n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:40973/status" target="_blank">http://127.0.0.1:40973/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:36185n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-fc475v3rn”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 3</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:39029n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:41333/status" target="_blank">http://127.0.0.1:41333/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:33097n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-fux9k203n”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 4</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:34431n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:38631/status" target="_blank">http://127.0.0.1:38631/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:37371n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-o6m5igr6n”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 5</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:37051n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:33613/status" target="_blank">http://127.0.0.1:33613/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:43293n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-1p9l_sm3n”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 6</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:41169n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:42543/status" target="_blank">http://127.0.0.1:42543/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:41267n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-8i4srekqn”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 7</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:44259n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:35559/status" target="_blank">http://127.0.0.1:35559/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:46297n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-ubhrc2ndn”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 8</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:39357n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:45161/status" target="_blank">http://127.0.0.1:45161/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:38233n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-aemk9l4on”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 9</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:42441n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:41287/status" target="_blank">http://127.0.0.1:41287/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:39123n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-re8mposyn”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 10</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:33297n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:32783/status" target="_blank">http://127.0.0.1:32783/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:41533n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-wny0v8crn”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 11</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:38863n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:35761/status" target="_blank">http://127.0.0.1:35761/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:39209n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-da1l_8nnn”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 12</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:41513n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:46779/status" target="_blank">http://127.0.0.1:46779/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:33475n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-9oc1ccz0n”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 13</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:44643n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:42593/status" target="_blank">http://127.0.0.1:42593/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:44787n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-73bv8ea7n”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 14</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:46387n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:36431/status" target="_blank">http://127.0.0.1:36431/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:46545n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-9g88lpexn”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, ” <div style="margin-bottom: 20px;">n”, ” <div style="width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;"> </div>n”, ” <div style="margin-left: 48px;">n”, ” <details>n”, ” <summary>n”, ” <h4 style="margin-bottom: 0px; display: inline;">Worker: 15</h4>n”, ” </summary>n”, ” <table style="width: 100%; text-align: left;">n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Comm: </strong> tcp://127.0.0.1:32941n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Total threads: </strong> 4n”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Dashboard: </strong> <a href="http://127.0.0.1:37201/status" target="_blank">http://127.0.0.1:37201/status</a>n”,
” </td>n”, ” <td style="text-align: left;">n”, ” <strong>Memory: </strong> 7.86 GiBn”, ” </td>n”, ” </tr>n”, ” <tr>n”, ” <td style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Nanny: </strong> tcp://127.0.0.1:33771n”,
” </td>n”, ” <td style="text-align: left;"></td>n”, ” </tr>n”, ” <tr>n”, ” <td colspan="2" style="text-align: left;">n”,
- <<<<<<< Updated upstream
” <strong>Local directory: </strong> /nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/dask-worker-space/worker-w1d2o13jn”,
” </td>n”, ” </tr>n”, “n”, ” n”, “n”, ” n”, “n”, ” </table>n”, ” </details>n”, ” </div>n”, ” </div>n”, ” n”, “n”, ” </details>n”, “</div>n”, “n”, ” </details>n”, ” </div>n”, “</div>n”, ” </details>n”, ” n”, “n”, ” </div>n”, “</div>”
], “text/plain”: [
“<Client: ‘tcp://127.0.0.1:8785’ processes=16 threads=64, memory=125.78 GiB>”
]
}, “execution_count”: 2, “metadata”: {}, “output_type”: “execute_result”
}
], “source”: [
“# In colab, only two cores are available.n”, “# To run the examples, you need to use your local runtime:n”, “n”, “import numpy as npn”, “n”, “import daskn”, “from dask.distributed import Client, LocalClustern”, “n”, “cluster = LocalCluster(n_workers=16, scheduler_port=8785,n”, ” memory_limit=’auto’)n”, “client = Client(cluster)n”, “client”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“## Construct trajectory ensemble”
]
}, {
“cell_type”: “code”, “execution_count”: 3, “metadata”: {}, “outputs”: [], “source”: [
“from ENPMDA import MDDataFramen”, “from ENPMDA.preprocessing import TrajectoryEnsemblen”, “from ENPMDATests.datafiles import (n”, ” ensemble_ala_bonded,n”, ” ensemble_ala_traj,n”, ” ensemble_ala_topn”, “)”
]
}, {
“cell_type”: “code”, “execution_count”: 4, “metadata”: {}, “outputs”: [], “source”: [
“# add tmp folder to path for testingn”, “import tempfilen”, “tempdir = tempfile.mkdtemp()”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“If only_raw is set to False, preprocessed trajectories for both protein and system will be written in the same directory of the raw trajectory. Define skip to skip frames in the written trajectories.n”, “n”, “If only_raw is set to True, no trajectories for protein and system will be extracted and saved. This is good for a quick inspection of on-going raw trajectories. It could also be useful if you already have preprocessed trajectories that need no further coordinate transformations. Note skip will be ignored in these cases; define stride instead later on when you add_traj_ensemble to the dataframe.n”, “n”, “n”, “Note the speed of on-the-fly transformations is really slow for large systems and In”, “recommend patching https://github.com/MDAnalysis/mdanalysis/pull/3169n”, “to your MDAnalysis installation.”
]
}, {
“cell_type”: “code”, “execution_count”: 5, “metadata”: {}, “outputs”: [
{
- <<<<<<< Updated upstream
“ename”: “NameError”, “evalue”: “name ‘TrajectoryEnsemble’ is not defined”, “output_type”: “error”, “traceback”: [
“u001b[0;31m—————————————————————————u001b[0m”, “u001b[0;31mNameErroru001b[0m Traceback (most recent call last)”, “u001b[1;32m/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/examples.ipynb Cell 9u001b[0m in u001b[0;36m<cell line: 1>u001b[0;34m()u001b[0mnu001b[0;32m—-> <a href=’vscode-notebook-cell://ssh-remote%2Bgpu46/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/examples.ipynb#ch0000008vscode-remote?line=0’>1</a>u001b[0m traj_ensemble u001b[39m=u001b[39m TrajectoryEnsemble(ensemble_nameu001b[39m=u001b[39mtempdir u001b[39m+u001b[39m u001b[39m’u001b[39mu001b[39m/test_ensembleu001b[39mu001b[39m’u001b[39m,nu001b[1;32m <a href=’vscode-notebook-cell://ssh-remote%2Bgpu46/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/examples.ipynb#ch0000008vscode-remote?line=1’>2</a>u001b[0m topology_listu001b[39m=u001b[39mensemble_ala_top,nu001b[1;32m <a href=’vscode-notebook-cell://ssh-remote%2Bgpu46/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/examples.ipynb#ch0000008vscode-remote?line=2’>3</a>u001b[0m trajectory_listu001b[39m=u001b[39mensemble_ala_traj,nu001b[1;32m <a href=’vscode-notebook-cell://ssh-remote%2Bgpu46/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/examples.ipynb#ch0000008vscode-remote?line=3’>4</a>u001b[0m bonded_topology_listu001b[39m=u001b[39mensemble_ala_bonded,nu001b[1;32m <a href=’vscode-notebook-cell://ssh-remote%2Bgpu46/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/examples.ipynb#ch0000008vscode-remote?line=4’>5</a>u001b[0m skipu001b[39m=u001b[39mu001b[39m1u001b[39m,nu001b[1;32m <a href=’vscode-notebook-cell://ssh-remote%2Bgpu46/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/examples.ipynb#ch0000008vscode-remote?line=5’>6</a>u001b[0m updatingu001b[39m=u001b[39mu001b[39mFalseu001b[39;00m,nu001b[1;32m <a href=’vscode-notebook-cell://ssh-remote%2Bgpu46/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/examples.ipynb#ch0000008vscode-remote?line=6’>7</a>u001b[0m only_rawu001b[39m=u001b[39mu001b[39mFalseu001b[39;00m)nu001b[1;32m <a href=’vscode-notebook-cell://ssh-remote%2Bgpu46/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/examples.ipynb#ch0000008vscode-remote?line=7’>8</a>u001b[0m traj_ensembleu001b[39m.u001b[39mload_ensemble()n”, “u001b[0;31mNameErroru001b[0m: name ‘TrajectoryEnsemble’ is not defined”
- “text”: [
“/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDATests/datafile/ensemble_AlaDipeptide/rep1/md.xtc newn”, “/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDATests/datafile/ensemble_AlaDipeptide/rep2/md.xtc newn”, “/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDATests/datafile/ensemble_AlaDipeptide/rep3/md.xtc newn”, “/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDATests/datafile/ensemble_AlaDipeptide/rep4/md.xtc newn”, “/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDATests/datafile/ensemble_AlaDipeptide/rep5/md.xtc newn”, “/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDATests/datafile/ensemble_AlaDipeptide/rep6/md.xtc newn”, “/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDATests/datafile/ensemble_AlaDipeptide/rep7/md.xtc newn”, “/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDATests/datafile/ensemble_AlaDipeptide/rep8/md.xtc newn”, “dask finishedn”, “pickle raw_traj universe donen”, “dask finishedn”, “pickle traj protein universe donen”, “dask finishedn”, “pickle traj system universe donen”
- >>>>>>> Stashed changes
]
}
], “source”: [
“traj_ensemble = TrajectoryEnsemble(ensemble_name=tempdir + ‘/test_ensemble’,n”, ” topology_list=ensemble_ala_top,n”, ” trajectory_list=ensemble_ala_traj,n”, ” bonded_topology_list=ensemble_ala_bonded,n”, ” skip=1,n”, ” updating=False,n”, ” only_raw=False)n”, “traj_ensemble.load_ensemble()”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“Both loading and saving can be done in parallel.”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“## Construct ENPMDA dataframe”
]
}, {
“cell_type”: “code”, “execution_count”: 6, “metadata”: {}, “outputs”: [], “source”: [
“md_dataframe = MDDataFrame(dataframe_name=tempdir + ‘/test_dataframe’)”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“npartitions defined how many blocks you want to split your whole ensemble. It could be set to the number of cores you have.n”, “stride is the frame interval between two consecutive frames to be analyzed.”
]
}, {
“cell_type”: “code”, “execution_count”: 7, “metadata”: {}, “outputs”: [
- {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“Dask dataframe generated with 16 partitionsn”
]
}
], “source”: [
“md_dataframe.add_traj_ensemble(traj_ensemble,n”, ” npartitions=16,n”, ” stride=1)”
]
}, {
“cell_type”: “code”, “execution_count”: 8, “metadata”: {}, “outputs”: [], “source”: [
“from ENPMDA.analysis import (n”, ” DaskChunkMdanalysis,n”, ” get_rmsd_init,n”, ” get_backbonetorsion,n”, ” get_atomic_position,n”, ” get_protein_hydration,n”, “)”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“The custom analysis should subclass DaskChunkMdanalysis and define set_feature_info and run_analysis. (Read the documentation of DaskChunkMdanalysis for more details.)n”, “n”, “The analysis can be a very simple wrapper of the default MDAnalysis analysis, e.g.”
]
}, {
“cell_type”: “code”, “execution_count”: 9, “metadata”: {}, “outputs”: [], “source”: [
“from MDAnalysis.analysis.rms import RMSDn”, “n”, “class get_rmsd_init(DaskChunkMdanalysis):n”, ” name = ‘rmsd_to_init’n”, “n”, ” def set_feature_info(self, universe):n”, ” return [‘rmsd_to_init’]n”, “n”, ” def run_analysis(self, universe, start, stop, step):n”, “n”, ” name_backbone = universe.select_atoms(‘backbone’)n”, ” rmsd = RMSD(name_backbone, name_backbone).run(start, stop, step)n”, ” return rmsd.results[‘rmsd’].T[2]”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“A sanity check will be performed to ensure that the analysis raises no error.n”, “n”, “The parallel analysis will be actively done in the background so one can still coding in the notebook.n”, “n”, “The name for extracting features later on will be printed.”
]
}, {
“cell_type”: “code”, “execution_count”: 10, “metadata”: {}, “outputs”: [
- {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“Analysis rmsd_to_init addedn”, “Analysis torsion addedn”, “Analysis at_position addedn”, “Analysis protein_hydration addedn”
]
}
], “source”: [
“md_dataframe.add_analysis(get_rmsd_init)n”, “md_dataframe.add_analysis(get_backbonetorsion)n”, “md_dataframe.add_analysis(get_atomic_position)n”, “md_dataframe.add_analysis(get_protein_hydration)”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“All the analysis can be run in parallel.”
]
}, {
“cell_type”: “code”, “execution_count”: null, “metadata”: {}, “outputs”: [], “source”: []
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“Optionally, you would like to refactor all the analysis result files based on system index by sort_analysis_result.”
]
}, {
“cell_type”: “code”, “execution_count”: 26, “metadata”: {}, “outputs”: [
- {
- “data”: {
- “text/plain”: [
“<Array [[-0.979, 0.206, … -0.454, -0.891]] type=’22 * var * float64’>”
]
}, “execution_count”: 26, “metadata”: {}, “output_type”: “execute_result”
}
], “source”: [
“np.concatenate(builder)”
]
}, {
“cell_type”: “code”, “execution_count”: 20, “metadata”: {}, “outputs”: [
- {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“0n”, “1n”, “2n”, “3n”, “4n”, “5n”, “6n”, “7n”
]
}
], “source”: [
“import awkward as akn”, “n”, “builder = ak.ArrayBuilder()n”, “n”, “n”, “builder.append(np.load(‘/tmp/tmpbqp60ck6/test_dataframe//analysis_results/20220829-164117/torsion_00b1821a33cb4a409cfd477b31093e0d.npy’, allow_pickle=True))n”, “builder.append(np.load(‘/tmp/tmpbqp60ck6/test_dataframe//analysis_results/20220829-164117/torsion_024288e326214c828c4f894fc49a5997.npy’, allow_pickle=True))n”, “n”, “raw_data = builder.snapshot()n”, “for sys, df in md_dataframe.dataframe.groupby([‘system’]):n”, ” print(sys)”
]
}, {
“cell_type”: “code”, “execution_count”: 11, “metadata”: {}, “outputs”: [
- {
“name”: “stdout”, “output_type”: “stream”, “text”: [
“start to sort rmsd_to_init.n”
]
}, {
“ename”: “RecursionError”, “evalue”: “maximum recursion depth exceeded in comparison”, “output_type”: “error”, “traceback”: [
“u001b[0;31m—————————————————————————u001b[0m”, “u001b[0;31mRecursionErroru001b[0m Traceback (most recent call last)”, “u001b[1;32m/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/examples.ipynb Cell 24u001b[0m in u001b[0;36m<cell line: 1>u001b[0;34m()u001b[0mnu001b[0;32m—-> <a href=’vscode-notebook-cell://ssh-remote%2Bgpu46/nethome/yzhuang/git_repo/ENPMDA/docs/source/examples/examples.ipynb#ch0000023vscode-remote?line=0’>1</a>u001b[0m md_dataframeu001b[39m.u001b[39;49msort_analysis_result()n”, “File u001b[0;32m~/git_repo/ENPMDA/ENPMDA/ENPMDA.py:406u001b[0m, in u001b[0;36mMDDataFrame.sort_analysis_resultu001b[0;34m(self)u001b[0mnu001b[1;32m 404u001b[0m u001b[39mforu001b[39;00m sys, df u001b[39minu001b[39;00m u001b[39mselfu001b[39mu001b[39m.u001b[39mdataframeu001b[39m.u001b[39mgroupby([u001b[39m’u001b[39mu001b[39msystemu001b[39mu001b[39m’u001b[39m]):nu001b[1;32m 405u001b[0m sys_data u001b[39m=u001b[39m raw_data[dfu001b[39m.u001b[39mindex[u001b[39m0u001b[39m]:dfu001b[39m.u001b[39mindex[u001b[39m-u001b[39mu001b[39m1u001b[39m]u001b[39m+u001b[39mu001b[39m1u001b[39m]nu001b[0;32m–> 406u001b[0m npu001b[39m.u001b[39;49msave(u001b[39mfu001b[39;49mu001b[39m"u001b[39;49mu001b[39m{u001b[39;49;00mu001b[39mselfu001b[39;49mu001b[39m.u001b[39;49manalysis_resultsu001b[39m.u001b[39;49mfilenameu001b[39m}u001b[39;49;00mu001b[39m{u001b[39;49;00mfeatureu001b[39m}u001b[39;49;00mu001b[39m_u001b[39;49mu001b[39m{u001b[39;49;00msysu001b[39m}u001b[39;49;00mu001b[39m.npyu001b[39;49mu001b[39m"u001b[39;49m, sys_data)nu001b[1;32m 407u001b[0m reordered_feat_locu001b[39m.u001b[39mappend([u001b[39mfu001b[39mu001b[39m"u001b[39mu001b[39m{u001b[39;00mu001b[39mselfu001b[39mu001b[39m.u001b[39manalysis_resultsu001b[39m.u001b[39mfilenameu001b[39m}u001b[39;00mu001b[39m{u001b[39;00mfeatureu001b[39m}u001b[39;00mu001b[39m_u001b[39mu001b[39m{u001b[39;00msysu001b[39m}u001b[39;00mu001b[39m.npyu001b[39mu001b[39m"u001b[39m] u001b[39m*u001b[39m u001b[39mlenu001b[39m(df))nu001b[1;32m 409u001b[0m u001b[39mselfu001b[39mu001b[39m.u001b[39mdataframe[feature] u001b[39m=u001b[39m npu001b[39m.u001b[39mconcatenate(reordered_feat_loc)n”, “File u001b[0;32m<__array_function__ internals>:180u001b[0m, in u001b[0;36msaveu001b[0;34m(args, **kwargs)u001b[0mn”, “File u001b[0;32m~/anaconda3/envs/deeplearning/lib/python3.9/site-packages/awkward/highlevel.py:1434u001b[0m, in u001b[0;36mArray.__array_function__u001b[0;34m(self, func, types, args, kwargs)u001b[0mnu001b[1;32m 1417u001b[0m u001b[39mdefu001b[39;00m u001b[39m__array_function__u001b[39m(u001b[39mselfu001b[39m, func, types, args, kwargs):nu001b[1;32m 1418u001b[0m u001b[39m"""u001b[39;00mnu001b[1;32m 1419u001b[0m u001b[39m Intercepts attempts to pass this Array to those NumPy functions otheru001b[39;00mnu001b[1;32m 1420u001b[0m u001b[39m than universal functions that have an Awkward equivalent.u001b[39;00mnu001b[0;32m (…)u001b[0mnu001b[1;32m 1432u001b[0m u001b[39m See also #__array_ufunc__.u001b[39;00mnu001b[1;32m 1433u001b[0m u001b[39m """u001b[39;00mnu001b[0;32m-> 1434u001b[0m u001b[39mreturnu001b[39;00m aku001b[39m.u001b[39;49m_connectu001b[39m.u001b[39;49m_numpyu001b[39m.u001b[39;49marray_function(func, types, args, kwargs)n”, “File u001b[0;32m~/anaconda3/envs/deeplearning/lib/python3.9/site-packages/awkward/_connect/_numpy.py:34u001b[0m, in u001b[0;36marray_functionu001b[0;34m(func, types, args, kwargs)u001b[0mnu001b[1;32m 32u001b[0m function u001b[39m=u001b[39m implementedu001b[39m.u001b[39mget(func)nu001b[1;32m 33u001b[0m u001b[39mifu001b[39;00m function u001b[39misu001b[39;00m u001b[39mNoneu001b[39;00m:nu001b[0;32m—> 34u001b[0m args u001b[39m=u001b[39m u001b[39mtupleu001b[39;49m(_to_rectilinear(x) u001b[39mforu001b[39;49;00m x u001b[39minu001b[39;49;00m args)nu001b[1;32m 35u001b[0m kwargs u001b[39m=u001b[39m {k: _to_rectilinear(v) u001b[39mforu001b[39;00m k, v u001b[39minu001b[39;00m kwargsu001b[39m.u001b[39mitems()}nu001b[1;32m 36u001b[0m out u001b[39m=u001b[39m func(u001b[39mu001b[39margs, u001b[39m*u001b[39mu001b[39m*u001b[39mkwargs)n”, “File u001b[0;32m~/anaconda3/envs/deeplearning/lib/python3.9/site-packages/awkward/_connect/_numpy.py:34u001b[0m, in u001b[0;36m<genexpr>u001b[0;34m(.0)u001b[0mnu001b[1;32m 32u001b[0m function u001b[39m=u001b[39m implementedu001b[39m.u001b[39mget(func)nu001b[1;32m 33u001b[0m u001b[39mifu001b[39;00m function u001b[39misu001b[39;00m u001b[39mNoneu001b[39;00m:nu001b[0;32m—> 34u001b[0m args u001b[39m=u001b[39m u001b[39mtupleu001b[39m(_to_rectilinear(x) u001b[39mforu001b[39;00m x u001b[39minu001b[39;00m args)nu001b[1;32m 35u001b[0m kwargs u001b[39m=u001b[39m {k: _to_rectilinear(v) u001b[39mforu001b[39;00m k, v u001b[39minu001b[39;00m kwargsu001b[39m.u001b[39mitems()}nu001b[1;32m 36u001b[0m out u001b[39m=u001b[39m func(u001b[39m*u001b[39margs, u001b[39m*u001b[39mu001b[39m*u001b[39mkwargs)n”, “File u001b[0;32m~/anaconda3/envs/deeplearning/lib/python3.9/site-packages/awkward/_connect/_numpy.py:26u001b[0m, in u001b[0;36m_to_rectilinearu001b[0;34m(arg)u001b[0mnu001b[1;32m 24u001b[0m u001b[39mifu001b[39;00m u001b[39misinstanceu001b[39m(arg, Iterable):nu001b[1;32m 25u001b[0m nplike u001b[39m=u001b[39m aku001b[39m.u001b[39mnplikeu001b[39m.u001b[39mof(arg)nu001b[0;32m—> 26u001b[0m u001b[39mreturnu001b[39;00m nplikeu001b[39m.u001b[39;49mto_rectilinear(arg, allow_missingu001b[39m=u001b[39;49mu001b[39mFalseu001b[39;49;00m)nu001b[1;32m 27u001b[0m u001b[39melseu001b[39;00m:nu001b[1;32m 28u001b[0m u001b[39mreturnu001b[39;00m argn”, “File u001b[0;32m~/anaconda3/envs/deeplearning/lib/python3.9/site-packages/awkward/nplike.py:446u001b[0m, in u001b[0;36mNumpy.to_rectilinearu001b[0;34m(self, array, args, **kwargs)u001b[0mnu001b[1;32m 443u001b[0m u001b[39mreturnu001b[39;00m aku001b[39m.u001b[39moperationsu001b[39m.u001b[39mconvertu001b[39m.u001b[39mto_numpy(array, u001b[39mu001b[39margs, u001b[39m*u001b[39mu001b[39m*u001b[39mkwargs)nu001b[1;32m 445u001b[0m u001b[39melifu001b[39;00m u001b[39misinstanceu001b[39m(array, Iterable):nu001b[0;32m–> 446u001b[0m u001b[39mreturnu001b[39;00m [u001b[39mselfu001b[39mu001b[39m.u001b[39mto_rectilinear(x, u001b[39m*u001b[39margs, u001b[39m*u001b[39mu001b[39m*u001b[39mkwargs) u001b[39mforu001b[39;00m x u001b[39minu001b[39;00m array]nu001b[1;32m 448u001b[0m u001b[39melseu001b[39;00m:nu001b[1;32m 449u001b[0m u001b[39mraiseu001b[39;00m u001b[39mTypeErroru001b[39;00m(u001b[39m"u001b[39mu001b[39mto_rectilinear argument must be iterableu001b[39mu001b[39m"u001b[39m)n”, “File u001b[0;32m~/anaconda3/envs/deeplearning/lib/python3.9/site-packages/awkward/nplike.py:446u001b[0m, in u001b[0;36m<listcomp>u001b[0;34m(.0)u001b[0mnu001b[1;32m 443u001b[0m u001b[39mreturnu001b[39;00m aku001b[39m.u001b[39moperationsu001b[39m.u001b[39mconvertu001b[39m.u001b[39mto_numpy(array, u001b[39m*u001b[39margs, u001b[39m*u001b[39mu001b[39m*u001b[39mkwargs)nu001b[1;32m 445u001b[0m u001b[39melifu001b[39;00m u001b[39misinstanceu001b[39m(array, Iterable):nu001b[0;32m–> 446u001b[0m u001b[39mreturnu001b[39;00m [u001b[39mselfu001b[39;49mu001b[39m.u001b[39;49mto_rectilinear(x, u001b[39m*u001b[39;49margs, u001b[39m*u001b[39;49mu001b[39m*u001b[39;49mkwargs) u001b[39mforu001b[39;00m x u001b[39minu001b[39;00m array]nu001b[1;32m 448u001b[0m u001b[39melseu001b[39;00m:nu001b[1;32m 449u001b[0m u001b[39mraiseu001b[39;00m u001b[39mTypeErroru001b[39;00m(u001b[39m"u001b[39mu001b[39mto_rectilinear argument must be iterableu001b[39mu001b[39m"u001b[39m)n”, “File u001b[0;32m~/anaconda3/envs/deeplearning/lib/python3.9/site-packages/awkward/nplike.py:446u001b[0m, in u001b[0;36mNumpy.to_rectilinearu001b[0;34m(self, array, args, **kwargs)u001b[0mnu001b[1;32m 443u001b[0m u001b[39mreturnu001b[39;00m aku001b[39m.u001b[39moperationsu001b[39m.u001b[39mconvertu001b[39m.u001b[39mto_numpy(array, u001b[39mu001b[39margs, u001b[39m*u001b[39mu001b[39m*u001b[39mkwargs)nu001b[1;32m 445u001b[0m u001b[39melifu001b[39;00m u001b[39misinstanceu001b[39m(array, Iterable):nu001b[0;32m–> 446u001b[0m u001b[39mreturnu001b[39;00m [u001b[39mselfu001b[39mu001b[39m.u001b[39mto_rectilinear(x, u001b[39m*u001b[39margs, u001b[39m*u001b[39mu001b[39m*u001b[39mkwargs) u001b[39mforu001b[39;00m x u001b[39minu001b[39;00m array]nu001b[1;32m 448u001b[0m u001b[39melseu001b[39;00m:nu001b[1;32m 449u001b[0m u001b[39mraiseu001b[39;00m u001b[39mTypeErroru001b[39;00m(u001b[39m"u001b[39mu001b[39mto_rectilinear argument must be iterableu001b[39mu001b[39m"u001b[39m)n”, “File u001b[0;32m~/anaconda3/envs/deeplearning/lib/python3.9/site-packages/awkward/nplike.py:446u001b[0m, in u001b[0;36m<listcomp>u001b[0;34m(.0)u001b[0mnu001b[1;32m 443u001b[0m u001b[39mreturnu001b[39;00m aku001b[39m.u001b[39moperationsu001b[39m.u001b[39mconvertu001b[39m.u001b[39mto_numpy(array, u001b[39m*u001b[39margs, u001b[39m*u001b[39mu001b[39m*u001b[39mkwargs)nu001b[1;32m 445u001b[0m u001b[39melifu001b[39;00m u001b[39misinstanceu001b[39m(array, Iterable):nu001b[0;32m–> 446u001b[0m u001b[39mreturnu001b[39;00m [u001b[39mselfu001b[39;49mu001b[39m.u001b[39;49mto_rectilinear(x, u001b[39m*u001b[39;49margs, u001b[39m*u001b[39;49mu001b[39m*u001b[39;49mkwargs) u001b[39mforu001b[39;00m x u001b[39minu001b[39;00m array]nu001b[1;32m 448u001b[0m u001b[39melseu001b[39;00m:nu001b[1;32m 449u001b[0m u001b[39mraiseu001b[39;00m u001b[39mTypeErroru001b[39;00m(u001b[39m"u001b[39mu001b[39mto_rectilinear argument must be iterableu001b[39mu001b[39m"u001b[39m)n”, ” u001b[0;31m[… skipping similar frames: <listcomp> at line 446 (1477 times), Numpy.to_rectilinear at line 446 (1477 times)]u001b[0mn”, “File u001b[0;32m~/anaconda3/envs/deeplearning/lib/python3.9/site-packages/awkward/nplike.py:446u001b[0m, in u001b[0;36mNumpy.to_rectilinearu001b[0;34m(self, array, args, **kwargs)u001b[0mnu001b[1;32m 443u001b[0m u001b[39mreturnu001b[39;00m aku001b[39m.u001b[39moperationsu001b[39m.u001b[39mconvertu001b[39m.u001b[39mto_numpy(array, u001b[39mu001b[39margs, u001b[39m*u001b[39mu001b[39m*u001b[39mkwargs)nu001b[1;32m 445u001b[0m u001b[39melifu001b[39;00m u001b[39misinstanceu001b[39m(array, Iterable):nu001b[0;32m–> 446u001b[0m u001b[39mreturnu001b[39;00m [u001b[39mselfu001b[39mu001b[39m.u001b[39mto_rectilinear(x, u001b[39m*u001b[39margs, u001b[39m*u001b[39mu001b[39m*u001b[39mkwargs) u001b[39mforu001b[39;00m x u001b[39minu001b[39;00m array]nu001b[1;32m 448u001b[0m u001b[39melseu001b[39;00m:nu001b[1;32m 449u001b[0m u001b[39mraiseu001b[39;00m u001b[39mTypeErroru001b[39;00m(u001b[39m"u001b[39mu001b[39mto_rectilinear argument must be iterableu001b[39mu001b[39m"u001b[39m)n”, “File u001b[0;32m~/anaconda3/envs/deeplearning/lib/python3.9/site-packages/awkward/nplike.py:446u001b[0m, in u001b[0;36m<listcomp>u001b[0;34m(.0)u001b[0mnu001b[1;32m 443u001b[0m u001b[39mreturnu001b[39;00m aku001b[39m.u001b[39moperationsu001b[39m.u001b[39mconvertu001b[39m.u001b[39mto_numpy(array, u001b[39m*u001b[39margs, u001b[39m*u001b[39mu001b[39m*u001b[39mkwargs)nu001b[1;32m 445u001b[0m u001b[39melifu001b[39;00m u001b[39misinstanceu001b[39m(array, Iterable):nu001b[0;32m–> 446u001b[0m u001b[39mreturnu001b[39;00m [u001b[39mselfu001b[39;49mu001b[39m.u001b[39;49mto_rectilinear(x, u001b[39m*u001b[39;49margs, u001b[39m*u001b[39;49mu001b[39m*u001b[39;49mkwargs) u001b[39mforu001b[39;00m x u001b[39minu001b[39;00m array]nu001b[1;32m 448u001b[0m u001b[39melseu001b[39;00m:nu001b[1;32m 449u001b[0m u001b[39mraiseu001b[39;00m u001b[39mTypeErroru001b[39;00m(u001b[39m"u001b[39mu001b[39mto_rectilinear argument must be iterableu001b[39mu001b[39m"u001b[39m)n”, “File u001b[0;32m~/anaconda3/envs/deeplearning/lib/python3.9/site-packages/awkward/nplike.py:430u001b[0m, in u001b[0;36mNumpy.to_rectilinearu001b[0;34m(self, array, args, **kwargs)u001b[0mnu001b[1;32m 427u001b[0m u001b[39mifu001b[39;00m u001b[39misinstanceu001b[39m(array, numpyu001b[39m.u001b[39mndarray):nu001b[1;32m 428u001b[0m u001b[39mreturnu001b[39;00m arraynu001b[0;32m–> 430u001b[0m u001b[39melifu001b[39;00m u001b[39misinstanceu001b[39;49m(nu001b[1;32m 431u001b[0m array,nu001b[1;32m 432u001b[0m (nu001b[1;32m 433u001b[0m aku001b[39m.u001b[39;49mArray,nu001b[1;32m 434u001b[0m aku001b[39m.u001b[39;49mRecord,nu001b[1;32m 435u001b[0m aku001b[39m.u001b[39;49mArrayBuilder,nu001b[1;32m 436u001b[0m aku001b[39m.u001b[39;49mlayoutu001b[39m.u001b[39;49mContent,nu001b[1;32m 437u001b[0m aku001b[39m.u001b[39;49mlayoutu001b[39m.u001b[39;49mRecord,nu001b[1;32m 438u001b[0m aku001b[39m.u001b[39;49mlayoutu001b[39m.u001b[39;49mArrayBuilder,nu001b[1;32m 439u001b[0m aku001b[39m.u001b[39;49mlayoutu001b[39m.u001b[39;49mLayoutBuilder32,nu001b[1;32m 440u001b[0m aku001b[39m.u001b[39;49mlayoutu001b[39m.u001b[39;49mLayoutBuilder64,nu001b[1;32m 441u001b[0m ),nu001b[1;32m 442u001b[0m ):nu001b[1;32m 443u001b[0m u001b[39mreturnu001b[39;00m aku001b[39m.u001b[39moperationsu001b[39m.u001b[39mconvertu001b[39m.u001b[39mto_numpy(array, u001b[39mu001b[39margs, u001b[39m*u001b[39mu001b[39m*u001b[39mkwargs)nu001b[1;32m 445u001b[0m u001b[39melifu001b[39;00m u001b[39misinstanceu001b[39m(array, Iterable):n”, “File u001b[0;32m~/anaconda3/envs/deeplearning/lib/python3.9/abc.py:98u001b[0m, in u001b[0;36mABCMeta.__instancecheck__u001b[0;34m(cls, instance)u001b[0mnu001b[1;32m 96u001b[0m u001b[39mdefu001b[39;00m u001b[39m__instancecheck__u001b[39m(u001b[39mclsu001b[39m, instance):nu001b[1;32m 97u001b[0m u001b[39m"""Override for isinstance(instance, cls)."""u001b[39;00mnu001b[0;32m—> 98u001b[0m u001b[39mreturnu001b[39;00m _abc_instancecheck(u001b[39mclsu001b[39;49m, instance)n”, “u001b[0;31mRecursionErroru001b[0m: maximum recursion depth exceeded in comparison”
]
}
], “source”: [
“md_dataframe.sort_analysis_result()”
]
}, {
“cell_type”: “code”, “execution_count”: 12, “metadata”: {}, “outputs”: [], “source”: [
“md_dataframe.save(‘test_analysis’)”
]
}, {
“cell_type”: “markdown”, “metadata”: {}, “source”: [
“All the features will be stored in npy files.n”, “n”, “It can be accessed by get_feature function.n”, “n”, “It should be used with caution because all the features will be loaded into memory.”
]
}, {
“cell_type”: “code”, “execution_count”: 17, “metadata”: {}, “outputs”: [], “source”: [
“feature_dataframe = md_dataframe.get_feature([n”, ” ‘torsion’,n”, ” ‘protein_hydration’n”, ” ])”
]
}, {
“cell_type”: “code”, “execution_count”: 18, “metadata”: {}, “outputs”: [
- {
- “data”: {
- “text/html”: [
“<div>n”, “<style scoped>n”, ” .dataframe tbody tr th:only-of-type {n”, ” vertical-align: middle;n”, ” }n”, “n”, ” .dataframe tbody tr th {n”, ” vertical-align: top;n”, ” }n”, “n”, ” .dataframe thead th {n”, ” text-align: right;n”, ” }n”, “</style>n”, “<table border="1" class="dataframe">n”, ” <thead>n”, ” <tr style="text-align: right;">n”, ” <th></th>n”, ” <th>system</th>n”, ” <th>traj_name</th>n”, ” <th>frame</th>n”, ” <th>traj_time</th>n”, ” <th>0_phi_cos</th>n”, ” <th>0_phi_sin</th>n”, ” <th>1_psi_cos</th>n”, ” <th>1_psi_sin</th>n”, ” <th>protein_hydration</th>n”, ” </tr>n”, ” </thead>n”, ” <tbody>n”, ” <tr>n”, ” <th>0</th>n”, ” <td>0</td>n”, ” <td>/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT…</td>n”, ” <td>0</td>n”, ” <td>0.0</td>n”, ” <td>-0.972585</td>n”, ” <td>0.232546</td>n”, ” <td>-0.850531</td>n”, ” <td>-0.525925</td>n”, ” <td>89</td>n”, ” </tr>n”, ” <tr>n”, ” <th>1</th>n”, ” <td>0</td>n”, ” <td>/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT…</td>n”, ” <td>1</td>n”, ” <td>2.0</td>n”, ” <td>-0.930982</td>n”, ” <td>0.365066</td>n”, ” <td>-0.182160</td>n”, ” <td>-0.983269</td>n”, ” <td>88</td>n”, ” </tr>n”, ” <tr>n”, ” <th>2</th>n”, ” <td>0</td>n”, ” <td>/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT…</td>n”, ” <td>2</td>n”, ” <td>4.0</td>n”, ” <td>-0.921595</td>n”, ” <td>0.388153</td>n”, ” <td>-0.672957</td>n”, ” <td>-0.739681</td>n”, ” <td>93</td>n”, ” </tr>n”, ” <tr>n”, ” <th>3</th>n”, ” <td>0</td>n”, ” <td>/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT…</td>n”, ” <td>3</td>n”, ” <td>6.0</td>n”, ” <td>-0.891143</td>n”, ” <td>0.453722</td>n”, ” <td>0.298339</td>n”, ” <td>-0.954460</td>n”, ” <td>94</td>n”, ” </tr>n”, ” <tr>n”, ” <th>4</th>n”, ” <td>0</td>n”, ” <td>/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT…</td>n”, ” <td>4</td>n”, ” <td>8.0</td>n”, ” <td>-0.774034</td>n”, ” <td>0.633144</td>n”, ” <td>0.010315</td>n”, ” <td>-0.999947</td>n”, ” <td>102</td>n”, ” </tr>n”, ” <tr>n”, ” <th>…</th>n”, ” <td>…</td>n”, ” <td>…</td>n”, ” <td>…</td>n”, ” <td>…</td>n”, ” <td>…</td>n”, ” <td>…</td>n”, ” <td>…</td>n”, ” <td>…</td>n”, ” <td>…</td>n”, ” </tr>n”, ” <tr>n”, ” <th>163</th>n”, ” <td>7</td>n”, ” <td>/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT…</td>n”, ” <td>16</td>n”, ” <td>32.0</td>n”, ” <td>-0.849980</td>n”, ” <td>0.526815</td>n”, ” <td>0.599313</td>n”, ” <td>-0.800515</td>n”, ” <td>97</td>n”, ” </tr>n”, ” <tr>n”, ” <th>164</th>n”, ” <td>7</td>n”, ” <td>/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT…</td>n”, ” <td>17</td>n”, ” <td>34.0</td>n”, ” <td>-0.828825</td>n”, ” <td>0.559508</td>n”, ” <td>0.511923</td>n”, ” <td>-0.859032</td>n”, ” <td>102</td>n”, ” </tr>n”, ” <tr>n”, ” <th>165</th>n”, ” <td>7</td>n”, ” <td>/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT…</td>n”, ” <td>18</td>n”, ” <td>36.0</td>n”, ” <td>-0.943376</td>n”, ” <td>0.331726</td>n”, ” <td>0.449359</td>n”, ” <td>-0.893351</td>n”, ” <td>91</td>n”, ” </tr>n”, ” <tr>n”, ” <th>166</th>n”, ” <td>7</td>n”, ” <td>/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT…</td>n”, ” <td>19</td>n”, ” <td>38.0</td>n”, ” <td>-0.335371</td>n”, ” <td>0.942086</td>n”, ” <td>0.311771</td>n”, ” <td>-0.950157</td>n”, ” <td>95</td>n”, ” </tr>n”, ” <tr>n”, ” <th>167</th>n”, ” <td>7</td>n”, ” <td>/nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT…</td>n”, ” <td>20</td>n”, ” <td>40.0</td>n”, ” <td>-0.985048</td>n”, ” <td>-0.172282</td>n”, ” <td>-0.737555</td>n”, ” <td>-0.675287</td>n”, ” <td>114</td>n”, ” </tr>n”, ” </tbody>n”, “</table>n”, “<p>168 rows × 9 columns</p>n”, “</div>”
], “text/plain”: [
” system traj_name frame \n”, “0 0 /nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT… 0 n”, “1 0 /nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT… 1 n”, “2 0 /nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT… 2 n”, “3 0 /nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT… 3 n”, “4 0 /nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT… 4 n”, “.. … … … n”, “163 7 /nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT… 16 n”, “164 7 /nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT… 17 n”, “165 7 /nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT… 18 n”, “166 7 /nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT… 19 n”, “167 7 /nethome/yzhuang/git_repo/ENPMDA/tests/ENPMDAT… 20 n”, “n”, ” traj_time 0_phi_cos 0_phi_sin 1_psi_cos 1_psi_sin protein_hydration n”, “0 0.0 -0.972585 0.232546 -0.850531 -0.525925 89 n”, “1 2.0 -0.930982 0.365066 -0.182160 -0.983269 88 n”, “2 4.0 -0.921595 0.388153 -0.672957 -0.739681 93 n”, “3 6.0 -0.891143 0.453722 0.298339 -0.954460 94 n”, “4 8.0 -0.774034 0.633144 0.010315 -0.999947 102 n”, “.. … … … … … … n”, “163 32.0 -0.849980 0.526815 0.599313 -0.800515 97 n”, “164 34.0 -0.828825 0.559508 0.511923 -0.859032 102 n”, “165 36.0 -0.943376 0.331726 0.449359 -0.893351 91 n”, “166 38.0 -0.335371 0.942086 0.311771 -0.950157 95 n”, “167 40.0 -0.985048 -0.172282 -0.737555 -0.675287 114 n”, “n”, “[168 rows x 9 columns]”
]
}, “execution_count”: 18, “metadata”: {}, “output_type”: “execute_result”
}
], “source”: [
“feature_dataframe”
]
}, {
“cell_type”: “code”, “execution_count”: 15, “metadata”: {}, “outputs”: [
- {
- “data”: {
“image/png”: “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”, “text/plain”: [
“<Figure size 432x288 with 1 Axes>”
]
}, “metadata”: {
“needs_background”: “light”
}, “output_type”: “display_data”
}
], “source”: [
“import seaborn as snsn”, “import matplotlib.pyplot as pltn”, “n”, “sns.barplot(data=feature_dataframe,n”, ” x=’system’,n”, ” y=’protein_hydration’)n”, “plt.show()”
]
}, {
“cell_type”: “code”, “execution_count”: 19, “metadata”: {}, “outputs”: [
- {
- “data”: {
“image/png”: “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”, “text/plain”: [
“<Figure size 432x288 with 1 Axes>”
]
}, “metadata”: {
“needs_background”: “light”
}, “output_type”: “display_data”
}
], “source”: [
“sns.lineplot(data=feature_dataframe,n”, ” x=’traj_time’,n”, ” y=’0_phi_cos’,n”, ” hue=’system’)n”, “plt.show()”
]
}
], “metadata”: {
- “interpreter”: {
“hash”: “8ee8c53404dc23d51e7b542ee493e07a5c192c0c74b5268593435bad2c059391”
}, “kernelspec”: {
“display_name”: “Python 3.9.0 (‘deeplearning’: conda)”, “language”: “python”, “name”: “python3”
}, “language_info”: {
- “codemirror_mode”: {
“name”: “ipython”, “version”: 3
}, “file_extension”: “.py”, “mimetype”: “text/x-python”, “name”: “python”, “nbconvert_exporter”: “python”, “pygments_lexer”: “ipython3”, “version”: “3.9.0”
}, “orig_nbformat”: 4
}, “nbformat”: 4, “nbformat_minor”: 2
}