{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Comparing the geometric similarity of trajectories\n", "\n", "Here we compare the geometric similarity of trajectories using the following path metrics:\n", "\n", " - the Hausdorff distance\n", " - the discrete Fréchet\n", "\n", "**Last executed:** Feb 06, 2020 with MDAnalysis 0.20.2-dev0\n", "\n", "**Last updated:** January 2020\n", "\n", "**Minimum version of MDAnalysis:** 0.18.0\n", "\n", "**Packages required:**\n", " \n", "* MDAnalysis (Michaud-Agrawal *et al.*, 2011, Gowers *et al.*, 2016)\n", "* MDAnalysisTests\n", " \n", "**Optional packages for visualisation:**\n", "\n", "* [matplotlib](https://matplotlib.org)\n", "* [seaborn](https://seaborn.pydata.org)\n", "\n", "\n", "
\n", " \n", "**Note**\n", "\n", "The metrics and methods in the `psa` path similarity analysis module are from (Seyler *et al.*, 2015). Please cite them when using the ``MDAnalysis.analysis.psa`` module in published work.\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import MDAnalysis as mda\n", "from MDAnalysis.tests.datafiles import (PSF, DCD, DCD2, GRO, XTC, \n", " PSF_NAMD_GBIS, DCD_NAMD_GBIS,\n", " PDB_small, CRD)\n", "from MDAnalysis.analysis import psa\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Loading files" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The test files we will be working with here feature adenylate kinase (AdK), a phosophotransferase enzyme. (Beckstein *et al.*, 2009) " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "u1 = mda.Universe(PSF, DCD)\n", "u2 = mda.Universe(PSF, DCD2)\n", "u3 = mda.Universe(GRO, XTC)\n", "u4 = mda.Universe(PSF_NAMD_GBIS, DCD_NAMD_GBIS)\n", "u5 = mda.Universe(PDB_small, CRD, PDB_small, \n", " CRD, PDB_small, CRD, PDB_small)\n", "\n", "ref = mda.Universe(PDB_small)\n", "\n", "\n", "labels = ['DCD', 'DCD2', 'XTC', 'NAMD', 'mixed']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The trajectories can have different lengths, as seen below." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "98 102 10\n" ] } ], "source": [ "print(len(u1.trajectory), len(u2.trajectory), len(u3.trajectory))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Aligning trajectories" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We set up the PSAnalysis with our list of Universes and labels. While `path_select` determines which atoms to calculate the path similarities for, `ref_select` determines which atoms to use to align each Universe to `reference`." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "CORE_sel = 'name CA and (resid 1:29 or resid 60:121 or resid 160:214)'\n", "\n", "ps = psa.PSAnalysis([u1, u2, u3, u4, u5],\n", " labels=labels,\n", " reference=ref,\n", " ref_select=CORE_sel,\n", " path_select='name CA')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generating paths" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For each Universe, we will generate a transition path containing each conformation from a trajectory. \n", "\n", "\n", "First, we will do a mass-weighted alignment of each trajectory to the reference structure `reference`, along the atoms `ref_select`. To turn off the mass weighting, set `weights=None`. If your trajectories are already aligned, you can skip the alignment with `align=False`." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "ps.generate_paths(align=True, save=False, weights='mass')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hausdorff method" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can compute the similarity of each path. The default metric is to use the Hausdorff method. [[5]](#References) The Hausdorff distance between two conformation transition paths $P$ and $Q$ is:\n", "\n", "$$\\delta_H(P,Q) = \\max{(\\delta_h(P|Q), \\delta_h(Q|P))}$$\n", "\n", "$\\delta_h(P|Q)$ is the directed Hausdorff distance from $P$ to $Q$, and is defined as:\n", "\n", "$$\\delta_h(P|Q) = \\max_{p \\in P}\\min_{q \\in Q} d(p,q)$$\n", "\n", "The directed Hausdorff distance of $P$ to $Q$ is the distance between the two points, $p \\in P$ and its structural nearest neighbour $q \\in Q$, for the point $p$ where the distance is greatest. This is not commutative, i.e. the directed Hausdorff distance from $Q$ to $P$ is not the same. (See [scipy.spatial.distance.directed_hausdorff](https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.directed_hausdorff.html) for more information).\n", "\n", "In MDAnalysis, the Hausdorff distance is the RMSD between a pair of conformations in $P$ and $Q$, where the one of the conformations in the pair has the least similar nearest neighbour." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/lily/anaconda3/envs/mdanalysis/lib/python3.7/site-packages/MDAnalysis/analysis/psa.py:1556: DeprecationWarning: `save_result` is deprecated!\n", "`save_result` will be removed in release 1.0.0.\n", "You can save the distance matrix :attr:`D` to a numpy file with ``np.save(filename, PSAnalysis.D)``.\n", " self.save_result(filename=filename)\n" ] } ], "source": [ "ps.run(metric='hausdorff')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The distance matrix is saved in `ps.D`." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0. , 1.33312648, 22.37206002, 2.04737477, 7.55204678],\n", " [ 1.33312648, 0. , 22.3991666 , 2.07957562, 7.55032598],\n", " [22.37206002, 22.3991666 , 0. , 22.42282661, 25.74534554],\n", " [ 2.04737477, 2.07957562, 22.42282661, 0. , 7.67052252],\n", " [ 7.55204678, 7.55032598, 25.74534554, 7.67052252, 0. ]])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ps.D" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`psa.PSAnalysis` provides two convenience methods for plotting this data. The first is to plot a heat-map dendrogram from clustering the trajectories based on their path similarity. You can use any clustering method supported by [scipy.cluster.hierarchy.linkage](https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html); the default is 'ward'." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([[ 0. , 1. , 1.33312648, 2. ],\n", " [ 3. , 5. , 2.25503365, 3. ],\n", " [ 4. , 6. , 9.20452463, 4. ],\n", " [ 2. , 7. , 29.13448037, 5. ]]),\n", " {'icoord': [[35.0, 35.0, 45.0, 45.0],\n", " [25.0, 25.0, 40.0, 40.0],\n", " [15.0, 15.0, 32.5, 32.5],\n", " [5.0, 5.0, 23.75, 23.75]],\n", " 'dcoord': [[0.0, 1.3331264831939273, 1.3331264831939273, 0.0],\n", " [0.0, 2.2550336453918844, 2.2550336453918844, 1.3331264831939273],\n", " [0.0, 9.204524628710315, 9.204524628710315, 2.2550336453918844],\n", " [0.0, 29.134480368642226, 29.134480368642226, 9.204524628710315]],\n", " 'ivl': ['2', '4', '3', '0', '1'],\n", " 'leaves': [2, 4, 3, 0, 1],\n", " 'color_list': ['g', 'g', 'b', 'b']},\n", " array([[ 0. , 25.74534554, 22.42282661, 22.37206002, 22.3991666 ],\n", " [25.74534554, 0. , 7.67052252, 7.55204678, 7.55032598],\n", " [22.42282661, 7.67052252, 0. , 2.04737477, 2.07957562],\n", " [22.37206002, 7.55204678, 2.04737477, 0. , 1.33312648],\n", " [22.3991666 , 7.55032598, 2.07957562, 1.33312648, 0. ]]))" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "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": [ "ps.plot(linkage='ward')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The other is to plot a heatmap annotated with the distance values. Again, the trajectories are displayed in an arrangement that fits the clustering method.\n", "\n", "
\n", " \n", "**Note**\n", "\n", "You will need to install the data visualisation library [Seaborn](https://seaborn.pydata.org/installing.html) for this function.\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "(array([[ 0. , 1. , 1.33312648, 2. ],\n", " [ 3. , 5. , 2.04737477, 3. ],\n", " [ 4. , 6. , 7.55032598, 4. ],\n", " [ 2. , 7. , 22.37206002, 5. ]]),\n", " {'icoord': [[35.0, 35.0, 45.0, 45.0],\n", " [25.0, 25.0, 40.0, 40.0],\n", " [15.0, 15.0, 32.5, 32.5],\n", " [5.0, 5.0, 23.75, 23.75]],\n", " 'dcoord': [[0.0, 1.3331264831939273, 1.3331264831939273, 0.0],\n", " [0.0, 2.047374774767044, 2.047374774767044, 1.3331264831939273],\n", " [0.0, 7.550325981004795, 7.550325981004795, 2.047374774767044],\n", " [0.0, 22.372060021101248, 22.372060021101248, 7.550325981004795]],\n", " 'ivl': ['2', '4', '3', '0', '1'],\n", " 'leaves': [2, 4, 3, 0, 1],\n", " 'color_list': ['g', 'g', 'b', 'b']},\n", " array([[ 0. , 25.74534554, 22.42282661, 22.37206002, 22.3991666 ],\n", " [25.74534554, 0. , 7.67052252, 7.55204678, 7.55032598],\n", " [22.42282661, 7.67052252, 0. , 2.04737477, 2.07957562],\n", " [22.37206002, 7.55204678, 2.04737477, 0. , 1.33312648],\n", " [22.3991666 , 7.55032598, 2.07957562, 1.33312648, 0. ]]))" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "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": [ "ps.plot_annotated_heatmap(linkage='single')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Discrete Fréchet distances" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The discrete Fréchet distance between two conformation transition paths $P$ and $Q$ is:\n", "\n", "$$\\delta_{dF}(P,Q) = \\min_{C \\in \\Gamma_{P,Q}} \\|C\\|$$\n", "\n", "where $C$ is a coupling in the set of all couplings $\\Gamma_{P,Q}$ between $P$ and $Q$. A coupling $C(P,Q)$ is a sequence of pairs of conformations in $P$ and $Q$, where the first/last pairs are the first/last points of the respective paths, and for each successive pair, at least one point in $P$ or $Q$ must advance to the next frame.\n", "\n", "$$ C(P,Q) \\equiv (p_{a_1}, q_{b_1}), (p_{a_2}, q_{b_2}), ..., (p_{a_L}, q_{b_L}) $$\n", "\n", "The coupling distance $\\|C\\|$ is the largest distance between a pair of points in such a sequence.\n", "\n", "$$\\|C\\| \\equiv \\max_{i=1, ..., L} d(p_{a_i}, q_{b_i})$$\n", "\n", "\n", "In MDAnalysis, the discrete Fréchet distance is the lowest possible RMSD between a conformation from $P$ and a conformation from $Q$, where the two frames are at similar points along the trajectory, and they are the least structurally similar in that particular coupling sequence. [[6-9]](#References)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/lily/anaconda3/envs/mdanalysis/lib/python3.7/site-packages/MDAnalysis/analysis/psa.py:1556: DeprecationWarning: `save_result` is deprecated!\n", "`save_result` will be removed in release 1.0.0.\n", "You can save the distance matrix :attr:`D` to a numpy file with ``np.save(filename, PSAnalysis.D)``.\n", " self.save_result(filename=filename)\n" ] }, { "data": { "text/plain": [ "array([[ 0. , 1.33312649, 22.37205967, 2.04737475, 7.55204694],\n", " [ 1.33312649, 0. , 22.39916723, 2.07957565, 7.55032613],\n", " [22.37205967, 22.39916723, 0. , 22.42282569, 25.74534511],\n", " [ 2.04737475, 2.07957565, 22.42282569, 0. , 7.67052241],\n", " [ 7.55204694, 7.55032613, 25.74534511, 7.67052241, 0. ]])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ps.run(metric='discrete_frechet')\n", "ps.D" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([[ 0. , 1. , 1.33312649, 2. ],\n", " [ 3. , 5. , 2.25503365, 3. ],\n", " [ 4. , 6. , 9.20452471, 4. ],\n", " [ 2. , 7. , 29.13448001, 5. ]]),\n", " {'icoord': [[35.0, 35.0, 45.0, 45.0],\n", " [25.0, 25.0, 40.0, 40.0],\n", " [15.0, 15.0, 32.5, 32.5],\n", " [5.0, 5.0, 23.75, 23.75]],\n", " 'dcoord': [[0.0, 1.3331264917717554, 1.3331264917717554, 0.0],\n", " [0.0, 2.2550336465704057, 2.2550336465704057, 1.3331264917717554],\n", " [0.0, 9.204524708552725, 9.204524708552725, 2.2550336465704057],\n", " [0.0, 29.134480014437507, 29.134480014437507, 9.204524708552725]],\n", " 'ivl': ['2', '4', '3', '0', '1'],\n", " 'leaves': [2, 4, 3, 0, 1],\n", " 'color_list': ['g', 'g', 'b', 'b']},\n", " array([[ 0. , 25.74534511, 22.42282569, 22.37205967, 22.39916723],\n", " [25.74534511, 0. , 7.67052241, 7.55204694, 7.55032613],\n", " [22.42282569, 7.67052241, 0. , 2.04737475, 2.07957565],\n", " [22.37205967, 7.55204694, 2.04737475, 0. , 1.33312649],\n", " [22.39916723, 7.55032613, 2.07957565, 1.33312649, 0. ]]))" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAAEnCAYAAAA6kUN0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAYSklEQVR4nO3df7DddX3n8efrEiRKQEBsqvyKohT8sWJxV13dwqz4A7pd3aXdUVHo1M6yMplqt+uaYaDe+IOyO52266ow7kRBZOyiYrW4iDpKK9phTETdpiK1QoCB8EMQEyQJgff+cc5lL8m955zcz03OPXyfj8x3OOd7Pp/P952B4TWfz/dXqgpJkrpqatwFSJI0TgahJKnTDEJJUqcZhJKkTjMIJUmdZhBKkjrNIJQkdZpBKEkamyQHJFmXZFOSLUluTHJa/7dVSSrJ1lnbBQPG2rrL9miS/zmshmWL+ReSJGkPLQNuB04GbgNOB65M8uJZbQ6pqp3DBqqqFTOfkxwI3A18dlg/Z4SSpLGpqoeqarqqbq2qx6rqauAW4KTGoX8buAf41rCGBqEkaclIshI4Dtg4a/emJHck+WSSw0cc6mzgUzXCc0SzJ88aPfzww2vVqlUjt9fuNmzYcF9VPXPcdexrhx9+WK1addS4y2iy4eabx11Cm+X7jbsCPRls2U49/Ehm78rhK4odjw7os+3aqnrDsKGT7A9cA/xTVZ2TZAVwPPB94BnAR4GDqur1Q8Y5mt6s8nlVdcuw4+7ROcJVq1axfv36PemiXSTZNO4axmHVqqNYv/6acZfRJK87ddwlNMmxB4+7BD0J1Of/fvedjzwKr3zO/J2++qOhs7gkU8DlwA5gNUBVbQVmQufuJKuBu5IcXFW/GDDcWcD1o4QguDQqSVoMyfzb0K4JsA5YCZxRVY/M03RmCXPYoGcBl41auleNSpLaDc+7QS4GTgBOraqHHx8yeTnwc+AfgUOBDwPXVdWD85aR/EvgCEa4WnSGM0JJUrsFzgiTHAOcA5wIbJ51D+CZwHOBrwBbgL8HtgNvmdX3vCS7nnM5G7iqqraMWrozQklSuwXOCKtq05DenxnQ98I59p2zpzUYhJKkNgGm2tZGx8kglCS1m9wcNAglSa1Guzp0qTIIJUntJjcHDUJJUqNgEEqSOs6lUUlSp01uDhqEkqRF4IxQktRZniOUJHWeM0JJUqdN8JOrDUJJUrvJnRAahJKkRsGlUUlSx01uDhqEkqRWPmtUktR1k5uDBqEkaRE4I5QkdZY31EuSOm+CZ4QTfAukJGnJyIBtULfkgCTrkmxKsiXJjUlO6//2iiRfS3J/knuTfDbJswaMdUKSbyR5MMlPkvy7UUpvmhFedBFs29YygiTpSWHh06plwO3AycBtwOnAlUleDBwKfBy4FtgJfAT4JPCGXQdJsgz4InAJ8Nr+eH+d5KVVdfOwAhZs2zaYnm4ZoXvWrh13BZK0yBpuqK+qh4DpWbuuTnILcFJVff4Jh0k+AvzNPEMdDzwb+POqKuAbSb4NvB24YFANniOUJLVbpFOESVYCxwEb5/j5N+bZP18FAV407JieI5QktUvm30YeIvsDVwCXVdVNu/z2z4A/Bt4zT/ebgHuA9yTZP8nr6C2PPm3YcQ1CSVK7BV4s83j3ZAq4HNgBrN7lt+cB1wDvqqpvzdW/qh4B3gT8JrAZ+CPgSuCOYcd2aVSS1KjtEWtJAqwDVgKn90Nt5rdjgK8DH6iqyweNU1U/pDcLnOn7HeCyYcc3CCVJbdpvqL8YOAE4taoefnzY5AjgG8BHq+qSoWX0lk9vprfaeS7wLODSYf1cGpUkjU1/xncOcCKwOcnW/nYm8PvAc4H3zdq/dVbf85JcM2u4twN30TtX+BrgtVW1fVgNzgglSc0GrYzWgH5VtYnB88l5bzqrqgt3+f4e5r+YZl4GoSSpWQYk4aAgXAoMQklSswl+1KhBKElqE2BqQBI+uu9KWRCDUJLUZrJfUG8QSpLaTXAOGoSSpHaDLpZZ6gxCSVKzCc5Bg1CS1KbhLUxLgkEoSWrm0qgkqbu8alSS1G1xRihJ6rYJzkGDUJLUJkz2q4wMQklSM5dGJUmdNsE5aBBKkhp51ag03IabbyavO3XcZTSpr3593CU0ueHuL4+7hGaTvPz2ZHH2331wt329G+on99+NQShJajbBOWgQSpLaTfKMcJKveJUkLRHJ/Nvgfjkgybokm5JsSXJjktNm/f6aJDcl+WWSbyY5ZsBYhyX5QpKH+uO9dZTaDUJJUrMM2IZYBtwOnAw8HbgAuDLJqiSHA1f19x0GrAf+94CxPgrsAFYCZwIXJ3nhKAVIkrRgvZnfwpZGq+ohYHrWrquT3AKcBDwD2FhVn+0dJ9PAfUmOr6qbnlhDDgTOAF5UVVuB65N8CXg7sGZQDc4IJUnNFro0uvs4WQkcB2wEXgj8YOa3fmj+U3//ro4DHq2qm2ft+8E8bZ/AGaEkqdnUIlwrk2R/4Argsqq6KckK4N5dmj0IHDRH9xX930Zp+wQGoSSpUfvbJ5JMAZfTO8e3ur97K3DwLk0PBrbMMcSetH0Cl0YlSU1m3lC/0KXR9FJ0Hb2LXM6oqkf6P20EXjKr3YHAsf39u7oZWJbk+bP2vWSetk9gEEqS2vQvlplvG8HFwAnAb1XVw7P2fwF4UZIzkiwH/hj44a4XysDj5w+vAt6f5MAkrwLeSG+WOZBBKElq1nAf4THAOcCJwOYkW/vbmVV1L70rQT8EPAC8HHjzrL7nJblm1nDnAk8F7gE+A7yzqobOCD1HKElqttAzhFW1aVD3qvo6cPw8v124y/f7gTftaQ0GoSSp2SQ/Ys0glCQ1mblYZlIZhJKkNoEsxo2EY2IQSpKauTQqSeqw9hvqx8kglCQ1m+AcNAglSW16F8tMbhIahJKkNl4sI0nqOmeEkqROMwglSR3mVaOSpA5LIBP8CgeDUJLUzBnhk8RFF8G2beOuQpImj0H4JLFtG0xP791jrF27d8eXpLEwCCVJnRVnhJKkjvNiGUlSZ8XbJyRJXTfJQTjBk1lJ0pLQP0c43za0e7I6yfok25NcOmv/mUm2ztp+maSSnDTHGAckWZdkU5ItSW5Mctoo5RuEkqRmmcq82wjuBD4IfGL2zqq6oqpWzGzAucBPge/NMcYy4HbgZODpwAXAlUlWDTu4S6OSpEZt5wir6iqAJC8DjhzQ9GzgU1VVc4zxEDA9a9fVSW4BTgJuHXR8g1CS1KT3PsK9fIzkGOA3gN8bsf1K4Dhg47C2BqEkqc2+uY/wLOBbVXXL0HKS/YErgMuq6qZh7T1HKElq1nKxzIjOAi4boY4p4HJgB7B6lIGdEUqSmu3NN9QneRXwbOBzQ9oFWAesBE6vqkdGGd8glCS1aVwaTbKMXh7tB+yXZDmws6p29pucDXy+qrYMGepi4ATg1Kp6eNTjuzQqSWoyc7HMfNsIzgceBtYAb+t/Ph+gH4r/gTmWRZOcl+Sa/udjgHOAE4HNs+49PHPYwZ0RSpIaNd8+Mc0Tb32Y/ds24JB5frtw1udN9DJ5jxmEkqRme/Mc4d5mEEqS2vgaJklS5xmEkqQum+AcNAglSW0CTE1wEhqEkqRGvphXktRlcUYoSeowl0YlSZ1nEEqSOs1zhNIwy/cjxx487iqa3HD3l8ddQpOXr/zNcZfQbMdjd4y7hM572rKn7rYvhKmFPd1sSTAIJUnNJvgJawahJKmRj1iTJHWZV41KkjrPIJQkdZYzQklSx4V41agkqcsmeUY4Ne4CJEmTLf1njc63De+f1UnWJ9me5NJ52rwvSSU5dcA4n05yV5JfJLk5ye+PUr8zQklSs8YZ4Z3AB4HXA7vdsZ/kWOC3gbuGjPMnwDuqanuS44HrktxYVRsGdXJGKElqlsy/DVNVV1XVXwE/m6fJR4D3AjuGjLOxqrbPfO1vxw47vkEoSVqykvwOsKOq/s+I7T+W5JfATfRmkEP7GYSSpCYzt08s9BzhvOMmK4ALgXeP2qeqzgUOAv4VcBWwfXAPg1CS1Gz+EGw8d7gWuLyqbtmTTlX1aFVdDxwJvHNYe4NQktQsA/40eA3wB0k2J9kMHAVcmeS9I/ZfxgjnCL1qVJLUZOb2iYX3zzJ6ebQfsF+S5cBOekG4/6ym3wX+M3DNHGP8CvCvgauBh4FTgbcAbx12fGeEkqRmjUuj59MLrzXA2/qfz6+qn1XV5pkNeBR4oKq2AiQ5L8lMKBa9ZdA7gAeAPwXeXVVfHHZwZ4SSpCatzxqtqmlgeoR2q3b5fuGsz/cCJy/k+AahJKlRfB+hJKnbOvuG+uXLYXp6kSpZAm69ddwVSNLkCTDV1bdPrFmzWGUsDU+mUJekfabxqtFxc2lUktTMc4SSpM7yDfWSpI5rfpTaWBmEkqRmLo1qNxddfxHbdm4bdxmStNe1PmJt3AzCvWTbzm1MnzK92/61rN33xUjSXjbJz+s0CCVJzVwalSR1lleNSpI6r7OPWJMkifYX8I6VQShJauLSqCSp2+LSqCSp41walSR1lkujkqTOm+Sl0Ul+GIAkaYlIMu82Qt/VSdYn2Z7k0ln7n5Lkc0luTVJJThmxlucn2Zbk06O0NwglSU1CmBqwjeBO4IPAJ+b47XrgbcDmPSjpo8B3R23s0qgkqVnL0mhVXQWQ5GXAkbP27wD+ov/bo6OMleTNwM+B7wDPG6WPM0JJUpu0LY0uWhnJwcD7gT/ak37OCCVJTQKjLoHubR8A1lXV7XsSwAahJKnZuK8aTXIicCrw0j3taxBKkpotgdcwnQKsAm7r17IC2C/JC6rq1wd1NAglSU1ab6hPsoxeHu1HL7yWAzurameSA/qHAHhK/7ftVVW7DPNx4C9nff8v9ILxncOO78UykqRmUwO2EZwPPAysoXerxMP9fQA/7n8/Ari2//kYgCTnJbkGoKp+WVWbZzZgK7Ctqu4ddnBnhJKkRm1Xh1bVNDA9z2+rBvS7cMiYIzEIJUlNEp81KknquHFfNdrCIJQkNfM1TJKkzupdNTruKhbOIJQkNfMcodQBS+CG4SY7Hrtj3CU0e8rUkcMbLXE7H7t/3CU0mvuGCJdGJUmd5dKoJKnbEpdGJUndNsmnDgxCSVKT3muYJpdBKElq5tKoJKnTXBqVJHWWS6OSpM5zRihJ6i5vn5AkdVlggp8rYxBKkhaBS6OSpE6bmuA5oUE4y/LlMD29OGPdesgqOGVxxpKkpW6CJ4QG4Wxr1izeWNPX3bp4g0nSEtZ76PbCkzDJKuBjwCuB7cDngHdX1c452j4X+DBwcr/tJ6rqvy744Ez2rR+SpCUiA/6M4GPAPcCzgBPphdy5ux0jeQrwNeAbwK8CRwKfbq3dGaEkqVnj0uhzgI9U1TZgc5KvAC+co93vAndW1Z/N2vfDpiPjjFCS1CiEqQHbCP4H8OYkT0tyBHAa8JU52r0CuDXJNUnuS3Jdkhe31m8QSpLapHf7xHzbCP6G3gzwF8AdwHrgr+ZodyTwZnrnCJ8NfBn4Yn/JdMEMQklSs2T+bXC/TAHXAlcBBwKHA4cC/22O5g8D11fVNVW1A/hT4BnACS21G4SSpGYNS6OHAUfRO0e4vap+BnwSOH2Otj8EanErNwglSY3CwpdGq+o+4BbgnUmWJTkEOBv4wRzNPw28IsmpSfYD3g3cB/yopX6DUJLUbGrANoJ/D7wBuBf4CbAT+MMkRyfZmuRogKr6MfA24BLgAeCNwL/tL5MumLdPSJKatTxrtKq+z/zP4lqxS9ur6J1PXDQGoSSp0chXhy5JBqEkqYlvqNdAF11/Edt2bht3GZK098TXMGmAbTu3MX3K9OPf17J2fMVI0l4y4jNFlySDUJLUpPf2iXFXsXAGoSSpmTNCSVKntbyPcNwMQklSswnOQYNQktRmD17AuyQZhJKkZi6NSpI6bXJj0CCUJDVKnBFKkjrOJ8tIkjptcmPQIJQkNYtLo5Kk7gqT/WSZSX5zhiRJzZwRSpKaTfDKqEEoSWrn0qgkqdMy4M/Qvsl1SbYl2drffjxPu0tmtdmaZHuSLa21G4SSpDYZso1mdVWt6G+/NleDqvpPs9qsAD4DfLa1fJdGJUnN9vXSaJIDgTOAf9M6ljNCSVKTEJL5txH9SZL7knw7ySkjtD8DuBf424XWPcMglCQ1a1wZfS/wXOAI4OPAXyc5dkifs4FPVVUtrOL/zyCUJDVruVimqm6oqi1Vtb2qLgO+DZw+77GSo4CTgU8tRu2eI5QkNVvkh24XgyeTZwHfqaqfLsbBnBFKkpotdGk0ySFJXp9keZJlSc4EfgO4dkC3s4BL26vucUYoSWrS+KzR/YEPAscDjwI3AW+qqh8nORr4B+AFVXUbQJJXAkeyCLdNzDAI95Lly5Yzfd00t/781nGXIj1p7Hzs/nGX0GzZ1GHjLqFJ5omNhS6NVtW9wD+f57fbgBW77Ps74MAFHWweBuFesubVawCYvm56vIVI0j4wuQ9YMwglSc326H7BJccglCQ1m+SHbhuEkqQmk/5iXoNQktQmvo9QktRxzgglSZ1mEEqSOs2lUUlSh+3ZG3iXGoNQktQkLPpDt/cpg1CS1GxyY9AglCQtAi+WkSR1mkujkqTOmuxLZQxCSdIicGlUktRhvn1CktRxzgglSd3lQ7clSV026a9hmhp3AZKkJ4MM2Ab0Sg5Isi7JpiRbktyY5LQBbf88yZ1JHkjysST7t1ZuEEqSGoVenMy3DbQMuB04GXg6cAFwZZJVc7RdA7wMeBFwHPDrwPmt1RuEkqRmGfBnkKp6qKqmq+rWqnqsqq4GbgFOmqP5bwEfrqr7q+pe4MPA77XWbhBKkhbBwpZGdxslWUlvtrdxwEFmfz8yydMXUPDjDEJJ0iJY8NLo4/rn+64ALquqm+Zocg3wriTPTPKrwB/09z+toXCvGpUktWq/fyLJFHA5sANYPU+zDwGHAN8HtgP/C3gpcE/LsQ3CvWz5suVMXzc97jIkaa9quX0ivcfSrANWAqdX1SNztauqh+mF5Op+v/8IbKiqRxd8cAzCvW7Nq9c84fta1o6pEknam5rOtF0MnACc2g+7OSU5AijgLuDl9K4wfUfLgcFzhJKkRbHg+wiPAc4BTgQ2J9na385McnT/89H95scC3wEeAi4D1lTVV1srd0YoSWo0cx/hnquqTQxOyxWz2v4tsGpBBxrAIJQkNZvkR6wZhJKkRWAQSpI6a+FLo0uBQShJWgTOCCVJHRZnhJKkbnNGKEnqrMl+Rb1BKElaBC6NSpI6qvf8GGeEkqROMwglSZ3lfYSSpM5zRihJ6jDvI5Qkddjw1y0tZQahJGkRGISSpE5zaVSS1GHxyTKSpO6a7HOEkzuXlSQtIVMDtsGSHJbkC0keSrIpyVsHtP3DJJuTPJjkE0kOWIzKJUlqlAHbUB8FdgArgTOBi5O8cLcjJK8H1gCvAVYBzwXWtlZuEEqSGoUwNe82sGdyIHAGcEFVba2q64EvAW+fo/nZwLqq2lhVDwAfAH63tXqDUJK0CBY8IzwOeLSqbp617wfAbjPC/r4f7NJuZZJnLLBoYA8vltmwYcN9STa1HHAPHQ7ctw+Pty/82rgLGIt7H7qvLrlhX/63s+hefskN4y5BWgqO2XXHhg0/vDY54vABfQb9f3wF8OAu+x4EDhqh7czng4CfDTjGQHsUhFX1zIUeaCGSrK+ql+3LY+5tSdaPu4Zx2Nf/7Ujad6rqDQ3dtwIH77LvYGDLCG1nPs/VdmQujUqSxulmYFmS58/a9xJg4xxtN/Z/m93u7qpa8GwQDEJJ0hhV1UPAVcD7kxyY5FXAG4HL52j+KeAdSV6Q5FDgfODS1hqWehB+fNwF7AVPxr+TJLU4F3gqcA/wGeCdVbUxydFJtiY5GqCqvgL8d+CbwKb+9r7Wg6eqWseQJGliLfUZoSRJe9WSCMIkRyX5ZpIfJdmY5F39/Ycl+VqSf+z/89Bx17pQSd6Q5MdJfpJkzbjrkST1LIml0STPAp5VVd9LchCwAXgTvScG3F9VF/XD49Cqeu8YS12QJPvRuzLqtcAdwHeBt1TVP4y1MEnS0pgRVtVdVfW9/uctwI+AI+hdOXRZv9ll9MJxEv0L4CdV9dOq2gH8Jb2/myRpzJZEEM6WZBXwUuAGYGVV3QW9sAR+ZXyVNTkCuH3W9zv6+yRJY7akgjDJCuDzwLur6hfjrmcRzfWwvfGvSUuSlk4QJtmfXgheUVVX9Xff3T9/OHMe8Z5x1dfoDuCoWd+PBO4cUy2SpFmWRBAmCbAO+FFV/dmsn75E77Ub9P/5xX1d2yL5LvD8JM9J8hTgzfT+bpKkMVsqV42+GvgW8H+Bx/q7z6N3nvBK4GjgNuB3qur+sRTZKMnpwF8A+wGfqKoPjbkkSRJLJAglSRqXJbE0KknSuBiEkqROMwglSZ1mEEqSOs0glCR1mkEoSeo0g1CS1GkGoSSp0/4fDWthok1mzIQAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ps.plot(linkage='ward')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "(array([[ 0. , 1. , 1.33312649, 2. ],\n", " [ 3. , 5. , 2.04737475, 3. ],\n", " [ 4. , 6. , 7.55032613, 4. ],\n", " [ 2. , 7. , 22.37205967, 5. ]]),\n", " {'icoord': [[35.0, 35.0, 45.0, 45.0],\n", " [25.0, 25.0, 40.0, 40.0],\n", " [15.0, 15.0, 32.5, 32.5],\n", " [5.0, 5.0, 23.75, 23.75]],\n", " 'dcoord': [[0.0, 1.3331264917717554, 1.3331264917717554, 0.0],\n", " [0.0, 2.047374750604888, 2.047374750604888, 1.3331264917717554],\n", " [0.0, 7.550326126269361, 7.550326126269361, 2.047374750604888],\n", " [0.0, 22.37205966687729, 22.37205966687729, 7.550326126269361]],\n", " 'ivl': ['2', '4', '3', '0', '1'],\n", " 'leaves': [2, 4, 3, 0, 1],\n", " 'color_list': ['g', 'g', 'b', 'b']},\n", " array([[ 0. , 25.74534511, 22.42282569, 22.37205967, 22.39916723],\n", " [25.74534511, 0. , 7.67052241, 7.55204694, 7.55032613],\n", " [22.42282569, 7.67052241, 0. , 2.04737475, 2.07957565],\n", " [22.37205967, 7.55204694, 2.04737475, 0. , 1.33312649],\n", " [22.39916723, 7.55032613, 2.07957565, 1.33312649, 0. ]]))" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgYAAAHHCAYAAADEY5AsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3de3RV1bn38d8MphiSjUAlMRwjaku4KYFTDCBykxgFPEiLWBGLQ8IBvBa1dPS1KCLYcgyHw8AjCEpVEMtQ8QjS0pfLKYS+EBEFrNytVkEk4SKSnYAime8fxBViCwGcyWIuvp+OPUzWXnvtJ2tY97N/z9xrG2utAAAAJCkh7AIAAMDZg8YAAAAEaAwAAECAxgAAAARoDAAAQIDGAAAABM6r5n4+ywgA8J2p1SfLbVUjr5128aZa+Tuqawwk7ar5Ks5JTWRyW4VdRCTZxZuUcHfHsMuIpPKphZzbGlA+tVCSOLc14Jtzi1N3Co0BAAA4ZbWaT7jHGgMAABAgMQAAwCXjd2RAYgAAAAIkBgAAuOR3YEBjAACAU4wSAABAVNAYAADgkqmh28me0pgMY8yfjTGbjTEbjTE/r9j+mDHmU2PM+opb7+rKZ5QAAID/vpb0kLX2XWNMTNI7xpglFff9l7V24qkeiMYAAACXEmp/jYG19jNJn1X8XGKM2SzpX87kWIwSAABwKYRRQpWnN+ZSSe0kvVWx6V5jzHvGmN8ZYxpW93gaAwAAPGCMGWaMWXvcbdg/2SdF0jxJI621ByVNk/QDSW11LFH4z+qeh1ECAAAu1dDHFa21MyTNOPHTmkQdawrmWGtfr3hM0XH3PytpYXXPQ2IAAIDnjDFG0kxJm621k47bnn7cbj+W9H51xyIxAADApXCub9RZ0s8k/dUYs75i28OSBhpj2kqykv4uaXh1B6IxAADApRAaA2vtX07wzH883WMxSgAAAAESAwAAXOK7EgAAQFSQGAAA4JLfgQGJAQAAqERiAACAS56vMaAxAADAJb/7AkYJAACgEokBAAAueT5KIDEAAAABEgMAAFzy/C03jQEAAC75PUnwva8BAAAukRgAAOASiw8BAEBUkBgAAOCS34EBjQEAAE4xSgAAAFFBYgAAgEt+BwYkBgAAoBKJAQAALnm+xoDGAAAAl/zuCxglAACASt4mBmVlhzR27GQlJiYqOztLffteJ0natu0jTZ8+R5I0fPggZWZeFmaZ3rjp6p7qk91VqQ2+r6fffFkP/OQOfVy0S/FDZRr1bH6wX2qD72vs4HslSb2zu+qKYX1VUlYaVtleuCmrq/q07qzGsYaaWvCabm2fK0lKMEZ5s59QuS2vsv+0gb9U/MtDGvX6U2GU6xXObc3h3H4HjBLCsXjxSl1/fTdde+3VGjlybNAYzJo1T2PGjJQxUn7+dD3++EMhV+qH+auWaf6qZWqQUl8Th41S2eFDSkgwKjqwr8p+xQf26a4pY3XhBQ2VVLcuTcEpmL+hQPM3FKhBUkwT+9+nvNnjJUmTBzygJg0u1M7Pi4N9+7frobUfb1GLi5qGVa5XOLc1h3N77vJ2lFBUtEfp6amSpDp1Kv+MkpK46tdPUSyWotLSsrDK89bo20bo6QUva8D4BzR88mNKb3Shrrws8x/2uzP3x3pxyfwQKvTX6F536ukV8yRJzdOaqu55iVX+45oaa6R2Gc21dMvbYZXoLc5tzeHcngFTQ7da4m1jkJbWWLt375EklZfbYHsslqKSkrji8VIlJ9cLqzwvTch7UIveXql1H2yWtcfOafGB/UpJ+sfz2KNtB/15/Vu1XaK3JvS7R4s2rta6HVvVOv1y/SJnkO5/ZVKVfbo1a6fUlIZ6tPcQdc/8kZqlZoRUrV84tzWHc3tu8naUkJvbRePGTdHy5YXq0aOTRo36jfLzH9bgwf01fvxTstZq6NCBYZfpjfv63a6cf+2kC5Jj+mGTS9SpVZbKDh/WeXXq6MlXZqpjyyy1+2FLTXtzrrpnZWvlX98Ju2Rv3Nf9FvVscZUuSEpWZtolGt3rTv1p42pNueVBjV/0vDIapqldRnNNK5inV99dpqaN0nVv95u1vXhH2KWf9Ti3NYdz+x14+5b7GPPNO8MTsNKu2qrlHNNEJrdV2EVEkl28SQl3dwy7jEgqn1rIua0B5VMLJYlzWwMqzm2trgY0Q7NP+sJ6puxza2rl7/C8rwEAAC55O0oAAOCs5PenFUkMAABAJRIDAABc4gJHAAAg4HdfwCgBAABUIjEAAMAlz0cJJAYAACBAYgAAgEt+BwY0BgAAuOT5JIFRAgAAqERiAACAQ8bzyIDEAAAABEgMAABwyPPAgMQAAABUIjEAAMChBM8jAxoDAAAc8rwvYJQAAAAqkRgAAOCQ54EBiQEAAKhEYgAAgEO+X+CIxgAAAIc87wsYJQAAgEokBgAAOERiAAAAIoPEAAAAh1h8CAAAAp73BYwSAABAJRIDAAAc8n2UQGIAAAACJAYAADjkeWBAYgAAACqRGAAA4JDv77hpDAAAcIjFhwAAIDJIDAAAcMjzwIDEAAAAVCIxAADAId8TAxoDAAAc8n3xobHWnuz+k94JAIAHavWVuvH/6VYjr517fruiVv4OEgMAABzyPDCovjEwua1qo45zjl28SdKusMuIqCZ6q/i5sIuIpA6pQ7WmeGbYZUROdmqeJHFua8A35xanjsQAAACHfF9jQGMAAIBDnvcFXMcAAABUIjEAAMAhzwMDEgMAAHxnjMkwxvzZGLPZGLPRGPPziu2NjDFLjDHbK/7ZsLpj0RgAAOCQMaZGbtX4WtJD1tqWkjpKuscY00rSryQts9Y2k7Ss4veTojEAAMBz1trPrLXvVvxcImmzpH+RdJOkFyt2e1FSv+qOxRoDAAAcCvtTCcaYSyW1k/SWpDRr7WfSsebBGJNa3eNpDAAAcCihhhoDY8wwScOO2zTDWjvjW/ukSJonaaS19uCZXFOBxgAAAA9UNAEzTnS/MSZRx5qCOdba1ys2Fxlj0ivSgnRJxdU9D2sMAABwKIzFh+bYDjMlbbbWTjrurgWS7qj4+Q5J86urn8QAAAD/dZb0M0l/Ncasr9j2sKQJkl4xxuRJ+kTSgOoORGMAAIBDYSw+tNb+RSe+tlLP0zkWjQEAAA75/iVKrDEAAAABEgMAABzyPDAgMQAAAJVIDAAAcMjzwIDGAAAAl1h8CAAAIoPEAAAAhzwPDEgMAABAJRIDAAAcMjX19Yq1hMQAAAAESAwAAHDI908l0BgAAOCQ740BowQAABAgMQAAwCHPAwMSAwAAUInEAAAAh3xfY0BjAACAQ1zHAAAARAaJAQAADvk+SiAxAAAAARIDAAAc8j0xoDEAAMAh3xsDRgkAACBAYgAAgEPG87fcnpcPAABc8ioxuOnqnuqT3VWpDb6vp998WQ/85A59XLRL8UNlGvVsfrBfaoPva+zgeyVJvbO76ophfVVSVhpW2d4pKzuksWMnKzExUdnZWerb9zpJ0rZtH2n69DmSpOHDBykz87Iwy/TS1g07tWrJJpV/Xa5PP96nR6cNkiStWPiePtyyW/uLSpTxg8a6ZUTXkCv1z9YNO7RqySYdrTi3Y6bdLkk6sDeuBS8VSlbq2LOFMttcHHKl/uHcnh7f1xh41RjMX7VM81ctU4OU+po4bJTKDh9SQoJR0YF9VfYrPrBPd00ZqwsvaKikunVpCk7T4sUrdf313XTttVdr5MixQWMwa9Y8jRkzUsZI+fnT9fjjD4VcqX+aZ12s5lkX652C7bqs5UXB9m43tlG3G9tozpT/VZfeV4RYob+aZ2WoeVaG1hZs1+Ut04Ptf5y7Rkn1vqfDh46oUWosxAr9xbk9t3g5Shh92wg9veBlDRj/gIZPfkzpjS7UlZdl/sN+d+b+WC8umR9ChX4rKtqj9PRUSVKdOpX/ipSUxFW/fopisRSVlpaFVV4krF66WZ1yWlbZ9tWXX2vPZ18o/ZJGIVUVDauXbqpybnd+tE/X3NBaPxnSWW+8sCrEyvzHuT01xpgaudUW7xqDCXkPatHbK7Xug82y1kqSig/sV0pSvX/Yt0fbDvrz+rdqu0TvpaU11u7deyRJ5eU22B6LpaikJK54vFTJyf94vnFq9hYdVFJyXSUl162y/e3lW9W+W7OQqoqGvUUHVe9b57ZR4xTVi52vukmJOvLV0RCr8xvn9jQYUzO3WuLVKOG+frcr51876YLkmH7Y5BJ1apWlssOHdV6dOnrylZnq2DJL7X7YUtPenKvuWdla+dd3wi7ZS7m5XTRu3BQtX16oHj06adSo3yg//2ENHtxf48c/JWuthg4dGHaZ3ipY+J66VowLnhn3B414pI8kac3ybbrnsRvDLM17Kxa+py69r5QkPTNuoUY8cqN6/fQqzZ26QsZIPfu1DblCf3Fuzx3mm3fdJ2BNbqvaquWcYhdvkrQr7DIiqoneKn4u7CIiqUPqUK0pnhl2GZGTnZonSZzbGlBxbmt1NWC7qf1O+sJ6ptbd/Uat/B3ejRIAAEDN8WqUAADA2c73CxzRGAAA4JDv1zHwvK8BAAAukRgAAOAQiQEAAIgMEgMAABzyPTGgMQAAwCGT4HdjwCgBAAAESAwAAHDI91ECiQEAAAiQGAAA4JDngQGJAQAAqERiAACAQ76vMaAxAADAId8bA0YJAAAgQGIAAIBDXOAIAABEBokBAAAO+b7GgMYAAACHPO8LGCUAAIBKJAYAADjk+yiBxAAAAARIDAAAcMj3jyvSGAAA4BCjBAAAEBkkBgAAuERiAAAAooLEAAAAhzwPDGgMAABwKcHzzoBRAgAACJAYAADgEB9XBAAAkUFiAACAQ6wxAAAAkUFiAACAQ74nBjQGAAA45HtjwCgBAAAESAwAAHDI948rGmvtye4/6Z0AAHigVl+p+8zPq5HXzj/cNLNW/o5qE4OEuzvWRh3nnPKphXqr+Lmwy4ikDqlDJe0Ku4yIaqIj5WvCLiJyEhOyJYlzWwO+Obe1KaF2+xDnGCUAAOBQgt99AYsPAQBAJRIDAAAc8n3xIYkBAAARYIz5nTGm2Bjz/nHbHjPGfGqMWV9x613dcUgMAABwKMQLHL0g6b8lzfrW9v+y1k481YPQGAAA4FBYjYG1tsAYc+l3PQ6jBAAAPGCMGWaMWXvcbdgpPvReY8x7FaOGhtXtTGIAAIBDNZUYWGtnSJpxmg+bJmmcjl2wcJyk/5Q05GQPIDEAACCirLVF1tqj1tpySc9KqvaKTyQGAAA4ZM6iKx8aY9KttZ9V/PpjSe+fbH+JxgAAgEgwxvxeUndJFxpjdkoaI6m7Maatjo0S/i5peHXHoTEAAMChED+VMPCfbJ55usehMQAAwKEQr2PgBIsPAQBAgMQAAACHSAwAAEBkkBgAAOCQ54EBjQEAAC4xSgAAAJFBYgAAgEMkBgAAIDJIDAAAcOhs+q6EM0FjAACAQ4wSAABAZJAYAADgEIkBAACIDBIDAAAcIjEAAACRQWIAAIBDxvPEgMYAAACHEvzuCxglAACASiQGAAA4lOD5lQ9JDAAAQIDEAAAAh3z/uCKNAQAADvn+qQRGCQAAIEBiAACAQ76PEkgMAABAgMQAAACHfE8MaAwAAHDI98WHXjUGN2V1VZ/WndU41lBTC17Tre1zJR3rzvJmP6FyW15l/2kDf6n4l4c06vWnwijXW1s37NSqJZtU/nW5Pv14nx6dNkiStGLhe/pwy27tLypRxg8a65YRXUOu1D9lZYc0duxkJSYmKjs7S337XidJ2rbtI02fPkeSNHz4IGVmXhZmmd5ZtnStClZs0P79B3XrbTnq3PlKSdL2bTv03LNvSpKG/vu/qVlmRphleulE57ZgxXr9fs4SdenWVrcNui7kKuGSV43B/A0Fmr+hQA2SYprY/z7lzR4vSZo84AE1aXChdn5eHOzbv10Prf14i1pc1DSscr3VPOtiNc+6WO8UbNdlLS8Ktne7sY263dhGc6b8r7r0viLECv21ePFKXX99N1177dUaOXJs0BjMmjVPY8aMlDFSfv50Pf74QyFX6peeOe3VM6e9vviiVBOffDl48Xpp9mL9+pE7ZIzRpIlzNWbskJAr9c+Jzm3Xbm11flJdfbB9Z8gVnn18HyV4ufhwdK879fSKeZKk5mlNVfe8xCpNQWqskdplNNfSLW+HVWIkrF66WZ1yWlbZ9tWXX2vPZ18o/ZJGIVXlt6KiPUpPT5Uk1alT+X+/kpK46tdPUSyWotLSsrDK896MZ+Zr4G2V717j8TLVr5+sWKyeSksPh1iZ/759bhFd3jUGE/rdo0UbV2vdjq1qnX65fpEzSPe/MqnKPt2atVNqSkM92nuIumf+SM1SiQ9P196ig0pKrquk5LpVtr+9fKvad2sWUlX+S0trrN2790iSysttsD0WS1FJSVzxeKmSk+uFVZ63rLWaNHGurunSRq1aXxpsT0mpp5KSMsXjh5ScfH54BXrsROcWJ5ZQQ7fa4tUo4b7ut6hni6t0QVKyMtMu0ehed+pPG1dryi0Pavyi55XRME3tMpprWsE8vfruMjVtlK57u9+s7cU7wi7dOwUL31PXinHBM+P+oBGP9JEkrVm+Tfc8dmOYpXktN7eLxo2bouXLC9WjRyeNGvUb5ec/rMGD+2v8+KdkrdXQoQPDLtM7c15arMLVG1USP6RPPinSune3a8KTI3T7z3L12ydmy1qrIXl9wi7TSyc6t+vXbdesFxbp4MFSNW7cQNflXhV2qXDEWGtPdr9NuLtjbdVyTimfWqi3ip8Lu4xI6pA6VNKusMuIqCY6Ur4m7CIiJzEhW5I4tzWg4tzW6tD/14W/PukL65l6ouMTtfJ3eJUYAABwtmPxIQAAiAwSAwAAHErwOzAgMQAAAJVIDAAAcMjU7lpH52gMAABwiMWHAAAgMkgMAABwiMWHAAAgMkgMAABwiMWHAAAgwOJDAAAQGSQGAAA4xOJDAAAQGSQGAAA4ZFhjAAAAooLEAAAAhxL4uCIAAPgGiw8BAEBkkBgAAOAQiw8BAEBkkBgAAOAQiw8BAECAxYcAACAySAwAAHCIxYcAACAySAwAAHAowfPEgMYAAACHfI/ifa8fAAA4RGIAAIBDLD4EAACRQWIAAIBDvi8+JDEAAAABEgMAABzy/ZLINAYAADhkPP8SJUYJAAAgQGIAAIBDvo8SSAwAAECAxAAAAId8/7hitY1B+dTC2qjjnNQhdWjYJURYk7ALiKzEhOywS4gszm00+L74sNrGIOHujrVRxzmnfGqh1hTPDLuMSMpOzdOR8jVhlxFJx164doVdRgQda2SP2vdDriN66pgrwi7BO6wxAADAoQRTM7fqGGN+Z4wpNsa8f9y2RsaYJcaY7RX/bFht/d/tzwcAAGeJFyTd8K1tv5K0zFrbTNKyit9PisYAAACHEoypkVt1rLUFkvZ/a/NNkl6s+PlFSf2qOw6fSgAAwKGz7GuX06y1n0mStfYzY0xqdQ8gMQAAwAPGmGHGmLXH3YbVxPOQGAAA4FBNveO21s6QNOM0H1ZkjEmvSAvSJRVX9wASAwAAomuBpDsqfr5D0vzqHkBiAACAQ2Fd+dAY83tJ3SVdaIzZKWmMpAmSXjHG5En6RNKA6o5DYwAAQARYawee4K6ep3McGgMAABw6yz6VcNpoDAAAcMj3xXu+1w8AABwiMQAAwCHfRwkkBgAAIEBiAACAQ2F9XNEVGgMAABzyuy1glAAAAI5DYgAAgEMsPgQAAJFBYgAAgEMJnq8yoDEAAMAhzycJjBIAAEAlEgMAABzy/ToGJAYAACBAYgAAgEPG88WHJAYAACBAYgAAgEOeLzGgMQAAwCXfr2PAKAEAAARIDAAAcIjvSgAAAJFBYgAAgEOeBwY0BgAAuMTiQwAAEBkkBgAAOMTiQwAAEBkkBgAAOOT7O24aAwAAHGKUAAAAIoPEAAAAh3xPDLxqDG7K6qo+rTurcayhpha8plvb50qSEoxR3uwnVG7Lq+w/beAvFf/ykEa9/lQY5Xpr64YdWrVkk45+Xa5PP96nMdNulyQd2BvXgpcKJSt17NlCmW0uDrlSvyxbulYFKzZo//6DuvW2HHXufKUkafu2HXru2TclSUP//d/ULDMjzDK9VFZ2SGPHTlZiYqKys7PUt+91kqRt2z7S9OlzJEnDhw9SZuZlYZbprR07dmv6M/MULynT5Cmjgu1Ll76lv6xcr9279+quuwYoq21miFXCFa8ag/kbCjR/Q4EaJMU0sf99yps9XpI0ecADatLgQu38vDjYt3+7Hlr78Ra1uKhpWOV6q3lWhppnZWhtwXZd3jI92P7HuWuUVO97OnzoiBqlxkKs0E89c9qrZ057ffFFqSY++XLQGLw0e7F+/cgdMsZo0sS5GjN2SMiV+mfx4pW6/vpuuvbaqzVy5NigMZg1a57GjBkpY6T8/Ol6/PGHQq7UTxkZF2n8E/do5P35Vbbn5HRQTk4Hbdr0od5Zu4nGoILvM3ov6x/d6049vWKeJKl5WlPVPS+xSlOQGmukdhnNtXTL22GVGAmrl25Sp5yWwe87P9qna25orZ8M6aw3XlgVYmV+m/HMfA287brg93i8TPXrJysWq6fS0sMhVuavoqI9Sk9PlSTVqVP5n7WSkrjq109RLJai0tKysMqLtJkz39Cjo6epY8c2YZdy1jDG1MittnjXGEzod48WbVytdTu2qnX65fpFziDd/8qkKvt0a9ZOqSkN9WjvIeqe+SM1SyWaPV17iw6qXnJdJSXXDbY1apyierHzVTcpUUe+OhpidX6y1mrSxLm6pksbtWp9abA9JaWeSkrKFI8fUnLy+eEV6LG0tMbavXuPJKm83AbbY7EUlZTEFY+XKjm5XljlRVpeXj9Nf3a0nn9+QdilwBGvRgn3db9FPVtcpQuSkpWZdolG97pTf9q4WlNueVDjFz2vjIZpapfRXNMK5unVd5epaaN03dv9Zm0v3hF26d5ZsfA9del9LOp+ZtxCjXjkRvX66VWaO3WFjJF69msbcoX+mfPSYhWu3qiS+CF98kmR1r27XROeHKHbf5ar3z4xW9ZaDcnrE3aZXsrN7aJx46Zo+fJC9ejRSaNG/Ub5+Q9r8OD+Gj/+KVlrNXTowLDL9NaBz0s0efLL2rz5I82Y/rr+9rcd+o8nf67XXl2qLVv+rni8TDcPyAm7zLOG8fy7Eoy19mT324S7O9ZWLeeU8qmFWlM8M+wyIik7NU9HyteEXUYkJSZkS9oVdhkR1ESSdNS+H3Id0VPHXCGpdl+p1xTPPOkL65nKTs2rlb/Dq8QAAICzXYLfgYF/awwAAEDNITEAAMAh39cY0BgAAOBQgudXPmSUAAAAAiQGAAA45HlgQGIAAAAqkRgAAOAQiw8BAECAxYcAACAySAwAAHDI77yAxAAAAByHxAAAAId8X2NAYwAAgEPG88aAUQIAAAiQGAAA4JDfeQGJAQAAOA6JAQAADvm++JDEAAAABEgMAABwiO9KAAAAAc8nCYwSAABAJRIDAAAc8n2UQGIAAAACJAYAADjke2JAYwAAgEt+9wWMEgAAQCUSAwAAHPJ9lEBiAAAAAiQGAAA4ZDy/whGNAQAADvndFjBKAAAAxyExAADAIRYfAgCAyCAxAADAId8XH5IYAACAAIkBAAAO+Z0X0BgAAOAUiw8BAEBkGGvtye4/6Z0AAHigVt/C7yqbVyOvnU3q9a/27zDG/F1SiaSjkr621rY/3eepdpSQcHfH0z0mTkH51EKtKZ4ZdhmRlJ2apyPla8IuI5ISE7J11L4fdhmRU8dcUfHTrlDriKYmYRcQhh7W2r1n+mDWGAAA4JDfKwxYYwAAgFPGmJq6DTPGrD3uNuyfPL2VtNgY884J7q8WiQEAAB6w1s6QNKOa3Tpba3cZY1IlLTHGbLHWFpzO85AYAADgkKmh/50Ka+2uin8WS/ofSdmnWz+NAQAAEWCMSTbGxL75WVKupNNeLcwoAQAAh0K8wFGapP+p+K6G8yS9bK390+kehMYAAACHwvoOJWvth5KyvutxGCUAAIAAiQEAAA7xXQkAACAySAwAAHCIxAAAAEQGiQEAAA6F9akEV2gMAABwyu/OgFECAAAIkBgAAOCQ8XyWQGIAAAACJAYAADjkd15AYwAAgFNcxwAAAEQGiQEAAA6x+BAAAEQGiQEAAA75nRfQGAAA4BSLDwEAQGSQGAAA4BCLDwEAQGSQGAAA4BBrDAAAQGSQGAAA4JDnSwxoDAAAcIlRAgAAiAwSAwAAnCIxAAAAEUFiAACAU36/56YxAADAIRYfAgCAyCAxAADAKRIDAAAQESQGAAA45fd7bq8ag5uyuqpP685qHGuoqQWv6db2uZKkBGOUN/sJldvyKvtPG/hLxb88pFGvPxVGud7aumGHVi3ZpKNfl+vTj/dpzLTbJUkH9sa14KVCyUode7ZQZpuLQ67UL8uWrlXBig3av/+gbr0tR507XylJKlixXr+fs0RdurXVbYOuC7lKf+3YsVvTn5mneEmZJk8ZFWxfuvQt/WXleu3evVd33TVAWW0zQ6zSP2VlhzR27GQlJiYqOztLffse+3d027aPNH36HEnS8OGDlJl5WZhlnl08vyayV43B/A0Fmr+hQA2SYprY/z7lzR4vSZo84AE1aXChdn5eHOzbv10Prf14i1pc1DSscr3VPCtDzbMytLZguy5vmR5s/+PcNUqq9z0dPnREjVJjIVbop5457dUzp72++KJUE598OWgMunZrq/OT6uqD7TtDrtBvGRkXafwT92jk/flVtufkdFBOTgdt2vSh3lm7icbgNC1evFLXX99N1157tUaOHBs0BrNmzdOYMSNljJSfP12PP/5QyJXCFS/zjtG97tTTK+ZJkpqnNVXd8xKrNAWpsUZql9FcS7e8HVaJkbB66SZ1ymkZ/L7zo3265obW+smQznrjhVUhVua3Gc/M18DbSAZq08yZb+jR0dPUsWObsEvxTlHRHqWnp0qS6tSpfMkoKYmrfv0UxWIpKi0tC6u8s5Kpof/VFu8agwn97tGijau1bsdWtU6/XL/IGaT7X5lUZZ9uzdopNaWhHu09RN0zf6RmqRkhVeuvvUUHVS+5rpKS6/3/SYoAAAOsSURBVAbbGjVOUb3Y+aqblKgjXx0NsTo/WWs1aeJcXdOljVq1vjTscs4peXn9NP3Z0Xr++QVhl+KdtLTG2r17jySpvNwG22OxFJWUxBWPlyo5uV5Y5aEGeDVKuK/7LerZ4ipdkJSszLRLNLrXnfrTxtWacsuDGr/oeWU0TFO7jOaaVjBPr767TE0bpeve7jdre/GOsEv3zoqF76lL72NR9zPjFmrEIzeq10+v0typK2SM1LNf25Ar9M+clxarcPVGlcQP6ZNPirTu3e2a8OQIrV+3XbNeWKSDB0vVuHEDXZd7VdileunA5yWaPPllbd78kWZMf11/+9sO/ceTP9drry7Vli1/VzxeppsH5IRdpndyc7to3LgpWr68UD16dNKoUb9Rfv7DGjy4v8aPf0rWWg0dOjDsMs8y3r3nrsJYa092v024u2Nt1XJOKZ9aqDXFM8MuI5KyU/N0pHxN2GVEUmJCto7a98MuI3LqmCsqftoVah3R1ESq5QsLfFX+/076wnqmvpfQuVb+Dq8SAwAAzn58KgEAAAT8HiX4XT0AAHCKxAAAAIf4dkUAABAZJAYAADjld2JAYwAAgFN+h/F+Vw8AAJwiMQAAwCm/RwkkBgAAIEBiAACAQ8bz99w0BgAAOMUoAQAARASJAQAALhkSAwAAEBEkBgAAOOX3e26/qwcAAE6RGAAA4JDv365IYwAAgFN+NwaMEgAAQIDEAAAAp/x+z+139QAAwCkSAwAAnPJ7jQGNAQAADvn+JUp+Vw8AAJwiMQAAwCm/RwkkBgAAIEBiAACAU34nBjQGAAA45XcY73f1AADAKRIDAAAcMsbvUQKJAQAACJAYAADgFIkBAACICBIDAACc8vs9N40BAABOMUoAAAAhM8bcYIzZaoz5wBjzqzM9DokBAAAOhfHtisaYOpKelnSdpJ2S3jbGLLDWbjrdY5EYAADgv2xJH1hrP7TWfiVprqSbzuRAxlp7svtPeicAAB6o5aH/rhp67Wxywr/DGHOzpBustUMrfv+ZpA7W2ntP91mqGyX4vYICAIBad+IX8O/CGDNM0rDjNs2w1s745u5/8pAzalBYYwAAgAcqmoAZJ7h7p6SM436/WNKuM3ke1hgAAOC/tyU1M8ZcZoz5nqRbJS04kwORGAAA4Dlr7dfGmHsl/V9JdST9zlq78UyOVd3iQwAAcA5hlAAAAAI0BgAAIEBjAAAAAjQGAAAgQGMAAAACNAYAACBAYwAAAAI0BgAAIPD/AZMUY1wcmtL4AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ps.plot_annotated_heatmap(linkage='single')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References\n", "\n", "[1] Oliver Beckstein, Elizabeth J. Denning, Juan R. Perilla, and Thomas B. Woolf.\n", "Zipping and Unzipping of Adenylate Kinase: Atomistic Insights into the Ensemble of OpenClosed Transitions.\n", "Journal of Molecular Biology, 394(1):160–176, November 2009.\n", "00107.\n", "URL: https://linkinghub.elsevier.com/retrieve/pii/S0022283609011164, doi:10.1016/j.jmb.2009.09.009.\n", "\n", "[2] Richard J. Gowers, Max Linke, Jonathan Barnoud, Tyler J. E. Reddy, Manuel N. Melo, Sean L. Seyler, Jan Domański, David L. Dotson, Sébastien Buchoux, Ian M. Kenney, and Oliver Beckstein.\n", "MDAnalysis: A Python Package for the Rapid Analysis of Molecular Dynamics Simulations.\n", "Proceedings of the 15th Python in Science Conference, pages 98–105, 2016.\n", "00152.\n", "URL: https://conference.scipy.org/proceedings/scipy2016/oliver_beckstein.html, doi:10.25080/Majora-629e541a-00e.\n", "\n", "[3] Naveen Michaud-Agrawal, Elizabeth J. Denning, Thomas B. Woolf, and Oliver Beckstein.\n", "MDAnalysis: A toolkit for the analysis of molecular dynamics simulations.\n", "Journal of Computational Chemistry, 32(10):2319–2327, July 2011.\n", "00778.\n", "URL: http://doi.wiley.com/10.1002/jcc.21787, doi:10.1002/jcc.21787.\n", "\n", "[4] Sean L. Seyler, Avishek Kumar, M. F. Thorpe, and Oliver Beckstein.\n", "Path Similarity Analysis: A Method for Quantifying Macromolecular Pathways.\n", "PLOS Computational Biology, 11(10):e1004568, October 2015.\n", "URL: https://dx.plos.org/10.1371/journal.pcbi.1004568, doi:10.1371/journal.pcbi.1004568." ] } ], "metadata": { "kernelspec": { "display_name": "Python (mdanalysis)", "language": "python", "name": "mdanalysis" }, "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.3" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": false, "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 }