{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Tutorial Session 2\n", "\n", "Note: This is the **instructor copy**, for the tutorial use the **participant copy** (which is based on this copy with most of the code removed)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Package imports " ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "from IPython.core.display import Image" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.12.1\n" ] } ], "source": [ "import MDAnalysis as mda\n", "print(mda.__version__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data files\n", "Defined `datapath` to point to the directory where you [downloaded the tutorial trajectories](http://becksteinlab.github.io/MDAnalysis-workshop/datadownload.html) to." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import os.path\n", "datapath = os.path.expanduser(\"~/Workshops/CECAM/tutorial/sandbox\")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'/Users/oliver/Workshops/CECAM/tutorial/sandbox'" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "datapath" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## AdK test trajectories\n", "Look again at AdK trajectories..." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [], "source": [ "eqtop = \"../../sandbox/equilibrium/adk4AKE.psf\"\n", "eqtrj= \"../../sandbox/equilibrium/1ake_007-nowater-core-dt240ps.dcd\"\n", "\n", "top = \"../../sandbox/dims/adk4ake.psf\"\n", "trj = \"../../sandbox/dims/dims_co_001.dcd\"\n", "\n", "#coDIMS = [os.path.join(datadir, \"dims\", \"dims_co_{0:03n}.dcd\".format(i)) for i in range(1,4)] \n", "#ocDIMS = [os.path.join(datadir, \"dims\", \"dims_oc_{0:03n}.dcd\".format(i)) for i in range(1,4)] " ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "u = mda.Universe(top, trj)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eq = mda.Universe(eqtop, eqtrj)\n", "eq" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Trajectories" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `Universe.trajectory` object is the entry point to all trajectory functionality:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "< DCDReader '../../sandbox/dims/dims_co_001.dcd' with 102 frames of 3341 atoms>" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Trajectories have a length in frames and in **ps** (the base MDAnalysis time unit):" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "102" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory.n_frames" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "102" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(u.trajectory)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "101.99999383947338" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory.totaltime" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### `Timestep` " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "They also contain a `Timestep` object, which holds the **current**\n", "* frame and time\n", "* unitcell dimensions (if available) as `[A, B, C, alpha, beta, gamma]`\n", "* raw positions (and velocities and forces, if available)\n", "* additional data, if defined by the trajectory format" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "< Timestep 0 with unit cell dimensions [ 0. 0. 0. 90. 90. 90.] >" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts = u.trajectory.ts\n", "ts" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts.frame" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts.time" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0., 0., 0., 90., 90., 90.], dtype=float32)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts.dimensions" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 85.53471375, 85.53471375, 85.53471375, 90. ,\n", " 90. , 90. ], dtype=float32)" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eq.trajectory.ts.dimensions" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 26.87939835, 53.00944901, 40.99979401],\n", " [ 26.80416107, 52.05094147, 41.55620956],\n", " [ 26.58082199, 53.76752472, 41.59049988],\n", " ..., \n", " [ 14.87982082, 56.23511505, 39.41582489],\n", " [ 14.59319496, 57.44499207, 39.77984619],\n", " [ 15.05454922, 55.95846176, 38.18389893]], dtype=float32)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts.positions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How many coordinates?" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(3341, 3)" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts.positions.shape" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NoDataError", "evalue": "This Timestep has no velocities", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNoDataError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mts\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvelocities\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/Users/oliver/Library/Python/2.7/lib/python/site-packages/MDAnalysis-0.12.1-py2.7-macosx-10.6-x86_64.egg/MDAnalysis/coordinates/base.pyc\u001b[0m in \u001b[0;36mvelocities\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 522\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_velocities\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 523\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 524\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mNoDataError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"This Timestep has no velocities\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 525\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 526\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mvelocities\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetter\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNoDataError\u001b[0m: This Timestep has no velocities" ] } ], "source": [ "ts.velocities" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NoDataError", "evalue": "This Timestep has no forces", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNoDataError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mts\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mforces\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/Users/oliver/Library/Python/2.7/lib/python/site-packages/MDAnalysis-0.12.1-py2.7-macosx-10.6-x86_64.egg/MDAnalysis/coordinates/base.pyc\u001b[0m in \u001b[0;36mforces\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 569\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_forces\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 570\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 571\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mNoDataError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"This Timestep has no forces\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 572\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 573\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mforces\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetter\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNoDataError\u001b[0m: This Timestep has no forces" ] } ], "source": [ "ts.forces" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What is the time between frames?" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.9999999396026802" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts.dt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Moving forward... or anywhere\n", "`Universe.trajectory` behaves a bit like a list of Timesteps:\n", "* index --> `Timestep`: go to frame\n", "* iterate --> `Timestep`: go to each frame in sequence\n", "* slice --> new trajectory iterator" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Trajectory indexing\n", "\n", "Trajectory indexing and slicing uses **0-based indices** (as in standard Python) and MDAnalysis also numbers frames starting with 0. Thus the \"tenth frame\" in a trajectory has ``ts.frame == 9``.\n", "\n", "Let's move to an arbitrary frame in the trajectory:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "< Timestep 42 with unit cell dimensions [ 0. 0. 0. 90. 90. 90.] >" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory[42]" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "42" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory.ts.frame" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "42" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts.frame" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "< Timestep 79 with unit cell dimensions [ 0. 0. 0. 90. 90. 90.] >" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory[-23]" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "< Timestep 79 with unit cell dimensions [ 0. 0. 0. 90. 90. 90.] >" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory.ts" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that you *cannot* \"remember\" a `Timestep`: The following will *not keep a copy of the timeset at frame 20*:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": true }, "outputs": [], "source": [ "ts20 = u.trajectory[20]" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "20" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts20.frame" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "< Timestep 42 with unit cell dimensions [ 0. 0. 0. 90. 90. 90.] >" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory[42]" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "< Timestep 42 with unit cell dimensions [ 0. 0. 0. 90. 90. 90.] >" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts20" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you *really* want to, you can make a copy (but this is not used very much):" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": true }, "outputs": [], "source": [ "ts42copy = u.trajectory.ts.copy()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "42" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts42copy.frame" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "< Timestep 2 with unit cell dimensions [ 0. 0. 0. 90. 90. 90.] >" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory[2]" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "42" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts42copy.frame" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Iteration and Slicing\n", "The **most common usage pattern** in MDAnalysis: Access each frame in a trajectory:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,\n", " 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,\n", " 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,\n", " 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,\n", " 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,\n", " 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,\n", " 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,\n", " 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101])" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results = []\n", "for ts in u.trajectory:\n", " results.append(ts.frame)\n", "results = np.array(results)\n", "results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "... or arbitrary slices:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([10, 30, 50, 70, 90])" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results = np.fromiter((ts.frame for ts in u.trajectory[10::20]), dtype=np.int64)\n", "results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "... and for numpy afficionados, \"fancy indexing\" also works:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([10, 20, 10, 0])" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results = np.fromiter((ts.frame for ts in u.trajectory[[10, 20, 10, 0]]), dtype=np.int64)\n", "results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Note*: It does not make sense to create a list of timesteps like\n", "```python\n", "timesteps = [ts for ts in u.trajectory]\n", "```\n", "or\n", "```python\n", "timesteps = list(u.trajectory)\n", "```\n", "because each list item will refer to the same currently active timestep (the first one because at the end of iteration the trajectory rewinds)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Challenge: Reverse the trajectory " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Produce an array from `ts.frame` that is reversed, ie `[101, 100, ..., 1, 0]`" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89,\n", " 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76,\n", " 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63,\n", " 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50,\n", " 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37,\n", " 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24,\n", " 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,\n", " 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0])" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results = np.array([ts.frame for ts in reversed(u.trajectory)])\n", "results" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89,\n", " 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76,\n", " 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63,\n", " 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50,\n", " 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37,\n", " 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24,\n", " 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,\n", " 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0])" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.array([ts.frame for ts in u.trajectory[::-1]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note: slicing and indexing works for many major trajectory formats (dcd, xtc, trr, Amber netcdf) but not for all of them (although work is in progress...)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analyzing trajectories with `Atomgroup`s\n", "Using the raw `Timestep` positions is cumbersome. Moving the time step automatically updates all positions that `Atomgroup.positions` sees at this instance:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "< Timestep 0 with unit cell dimensions [ 0. 0. 0. 90. 90. 90.] >" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory[0]" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "protein = u.select_atoms(\"protein\")\n", "protein" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calculate the radius of gyration\n", "\\begin{equation*}\n", " R_{\\text{gyr}} = \\sqrt{\\frac{1}{M}\\sum_{i=1}^{N}m_{i}(\\textbf{r}_{i} - \\textbf{R})^{2}}\n", "\\end{equation*}\n", " with `AtomGroup.radius_of_gyration()`:" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "16.686297031597615" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "protein.radius_of_gyration()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What's the current frame?" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory.ts.frame" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Move to the last one:" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "< Timestep 101 with unit cell dimensions [ 0. 0. 0. 90. 90. 90.] >" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory[-1]" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "19.579294280925577" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "protein.radius_of_gyration()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Remember: **All coordinate-dependent properties of an `AtomGroup` change when the trajectory index is changed.** Think of a pointer moving along the trajectory file. `AtomGroup` fetches coordinates from the frame that the pointer points to." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example: radius of gyration time series\n", "Collect `(time, radius_of_gyration)` for the protein for frames and plot $R_{\\mathrm{gyr}}(t)$, with time in ps." ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [], "source": [ "protein = u.select_atoms(\"protein\")\n", "results = []\n", "for ts in u.trajectory[:500]:\n", " results.append((ts.time, protein.radius_of_gyration()))\n", "time, rgyr = np.transpose(results)" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = plt.subplot(111)\n", "ax.plot(time, rgyr)\n", "ax.set_xlabel(\"time (ps)\")\n", "ax.set_ylabel(r\"$R_{\\mathrm{gyr}}$ ($\\AA$)\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Challenge: Plot $R_\\mathrm{gyr}$ for equilibrium MD simulation " ] }, { "cell_type": "code", "execution_count": 201, "metadata": { "collapsed": false }, "outputs": [], "source": [ "peq = eq.select_atoms(\"protein\")\n", "eqrgyr = np.array([(ts.time, peq.radius_of_gyration()) for ts in eq.trajectory]).transpose()" ] }, { "cell_type": "code", "execution_count": 202, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 202, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(eqrgyr[0], eqrgyr[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### CHALLENGE: Collective variable analysis of AdK\n", "\n", "1. Generate timeseries for domain angles, i.e. $t$, $\\theta_\\mathrm{NMP}(t)$, $\\theta_\\mathrm{LID}(t)$, using the previously defined functions `theta_NMP()` and `theta_LID()`.\n", "2. Plot (a) the time series, (b) the angles against each other.\n", "3. Bonus: \n", " - is the radius of gyration correlated with the angles?\n", " - for one of the equilibrium trajectories?" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "from numpy.linalg import norm\n", "\n", "def theta_NMP(ag):\n", " \"\"\"Calculate the NMP-CORE angle for E. coli AdK in degrees\"\"\"\n", " C = ag.select_atoms(\"resid 115:125 and backbone\").center_of_geometry()\n", " B = ag.select_atoms(\"resid 90:100 and backbone\").center_of_geometry()\n", " A = ag.select_atoms(\"resid 35:55 and backbone\").center_of_geometry()\n", " BA = A - B\n", " BC = C - B\n", " theta = np.arccos(np.dot(BA, BC)/(norm(BA)*norm(BC)))\n", " return np.rad2deg(theta)\n", "\n", "def theta_LID(ag):\n", " \"\"\"Calculate the LID-CORE angle for E. coli AdK in degrees\"\"\"\n", " C = ag.select_atoms(\"resid 179:185 and backbone\").center_of_geometry()\n", " B = ag.select_atoms(\"resid 115:125 and backbone\").center_of_geometry()\n", " A = ag.select_atoms(\"resid 125:153 and backbone\").center_of_geometry()\n", " BA = A - B\n", " BC = C - B\n", " theta = np.arccos(np.dot(BA, BC)/(norm(BA)*norm(BC)))\n", " return np.rad2deg(theta)" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": true }, "outputs": [], "source": [ "data = np.array([[ts.time, theta_NMP(u), theta_LID(u)] for ts in u.trajectory])" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 0. , 43.29564285, 106.30675507],\n", " [ 0.99999994, 44.1594696 , 106.80901337],\n", " [ 1.99999988, 44.57506561, 108.23643494]])" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[:3]" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": true }, "outputs": [], "source": [ "time, aNMP, aLID = data.transpose()" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nGAxwzx3rtUAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax1 = plt.subplot(121)\n", "ax1.plot(time, aNMP, label=\"NMP\")\n", "ax1.plot(time, aLID, label=\"LID\")\n", "ax1.set_xlabel(\"time (ps)\")\n", "ax1.set_ylabel(\"angle (degree)\")\n", "ax1.legend(loc=\"best\")\n", "ax2 = plt.subplot(122)\n", "ax2.plot(aNMP, aLID)\n", "ax2.set_xlabel(r\"$\\theta_\\mathrm{NMP}$\")\n", "ax2.set_ylabel(r\"$\\theta_\\mathrm{LID}$\")\n", "ax2.set_aspect(1)\n", "plt.tight_layout()" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nvcnBps8wxrjmVOwppm2axvj14/n1n1+pUbQGtUrUYvrm6aw7uI5Dpw/R4eoOfN7ic3Jnyw04f4VH\nbYti0vpJTNowidzZctO2alu+bPkl9UvVJzwsnF0ndnHP2HtYvGcxI9qOIF/2fKle/9iZY4xYOYLP\nln5Gjiw5+E+9/zCy3Ui+X/M9t4+6ndZVW9OgTAOqFK5C5UKVKZa7GMfPHufgqYNULlz5svc3e+ts\nuozvwpM3PEmfRn0IkzCK5i7KE1OeoEaxGqzev5qan9fkvdvf47kGz3E05ij3/nQviZpIkVxFqFWi\nFqPajWLqP1NpV70dlQpVytB//0uxkoOPlCtXjmHDhnHrrbee3xcVFUW3bt3YuXMn4HTHXbRoEVmz\nZkVEqFy5Mvfccw+9evUiW7Zs6bpuoP57GLPh0AZ2HN9BTHwMB04dYMrGKczeNpsbS99Iu2rtaFO1\nDRF5Iy74zvEzx+k5tSer969m4r0Tmb11Ns/OeJZqRarRpmob2lZrS7UiKTo3Ak5J5Nnpz/Lb1t8Y\n33E8NYrVOP/Z6v2r+XTxp/y49keaV2rOf+r9h4ZlGl5Qyjh8+jBDlg9h7cG1/HPkH/45/A9n4s8Q\nnxhPwZwF2fvcxae4UFUGzh/Ihws/5Nv233Jbhdsu+OzXf37lpdkvcfj0YXae2Hn+sxN9TlDz85rs\nid5DlcJV6HlDTx6v+7jX/9ZJpbfkgKoGxcsJNaWL7XdbuXLldNasWRfsmz17tpYuXfr8+8jISB02\nbJiqqp4+fVqjoqK0Vq1aeuutt6b7uoH672Eyr4TEBH19zuta7N1ieuuIW7XV6FbadXxXHblypB45\nfeSy309MTNSPFnykxd8truU+Kqe/bPzFq+uPWDlCiwwsot+t/k5/WPODNv66sZZ6v5QOiBqge6P3\nenWuozFHde72uVrvq3qqqrpk9xI9fub4Bcf8c/gfbftDW71hyA2649iOi54rITFBf1jzg9If/X3L\n70p/dMnuJdp7em9t8k0TvWnoTRoTF+NVfKnx/E7w+neuVSu5TD1/5efMmZMmTZowefJkqlWrxi+/\n/EKLFi1cjs6YK3Mk5gj3T7ifY2eOseLxFZTMW9Lrc4gIT9/4NDWL16TvrL5eNzTff9391CxWk87j\nOhORN4Kn6j9Fm6ptyBqe1etYCuQowNajW6lYqCLHzhyj3pB6vHzzy/y34X8Zt24cX6/4mrUH1/Jo\nnUf54e4fyJ4l+0XPFSZhlM5XmprFatK0fFP0Fed3gaoyeeNk1v9nvauTblpycFnyh1+mTBnq1q3L\n3LlzLTmYoLZ0z1LuGXsP7au15+3b3k7XL+Okbil/C4seWZSu79aOqM36J9df0fXP2Xx0M5UKVuJ/\ns/5H8dzFGbJ8CIMXD+amMjfR84aetKraimzhaasWnrJxCgVyFGDQwkHEJ8YTnxhPXGIcW49uZc2B\nNVxb/NoMiTk9Qj45yKsZk3nPZXV/KFmyJEePHvXb9YzJSKrKV8u+4qXZL/F5i8/pcHUHt0PKUJuO\nbCJf9nxMWD+BFY+vYNKGSbSq0opS+Up5fa4bSt1AdGw0W45uIUtYFrKEZSE8LJy+jfpSPLe708yF\nfHLw5y/1jLJr1y4aNWrkdhjGeO1s/Fkem/IYy/cuZ/5D86lSuIrbIWW4zUc3s3LfSoa0GkJE3gie\nqPtEus/Vrno72lVvl4HRZRxbJjTA7Ny5k+XLl9O4cWO3QzHGa8NWDGPH8R0sfHhhSCYGcEoON5W+\niS41u7gdik9ZcvCh2NhYzpw5c/4VHx+f4phzDdKnT59mzpw5tGnThvr163PXXXf5O1xjroiq8tmS\nz3j55pfPj0kINbEJsZyMPclnLT4L+RUaQ75ayU3Jf8E3bNgwxX9QTz75JL169QKgUqVK3HPPPTz3\n3HN+i9GYjPLH9j9I1ESalmvqdig+ky08G3ue3UPBnAXdDsXnbBBciLF/D+OWjmM7cnPZm3nyhifd\nDsUkEfBTdhtjQtee6D3M3DKT+6+73+1QTAax5GCMuWJDlg3h3hr3XnQOIxN8rM3BGHNFJm+YzOAl\ng4l6IMrtUEwGsuRgjEmXhMQEXol6hZGrRjKl85QLJrYzwc+vyUFEcgBzgOxANmCSqvYVkf7AI8BB\nz6F9VXWaP2MzxqTd4dOH6TK+C2cTzrL0saUUy13M7ZBMBvNrm4OqngGaqmot4FqgqYg0wlky9ANV\nre15WWIwJkCt2LuCekPqcU2xa5jZbaYlhhDl92olVT3t2cwGhAPnJhFK94iSUB+MYkygGLFyBL1n\n9mbwnYPpdE0nt8MxPuT35CAiYcByoCLwuar+LSIdgJ4icj+wFHhOVY+l5XzWp98Y34tNiKXXtF7M\n3DKTqAeirH0hE3Cj5JAI1BKR/MB0EYkEPgcGeA55DXgfeDj5d/v3739+OzIyksjISB9Ha4zZE72H\nDj92oGjuoix5dAn5c+R3OyRzCVFRUURFRV3xeVwdIS0iLwMxqvpekn3lgJ9VtWayY1MdIW2M8Z25\n2+dy77h76VG3B30b9yVMbGhUsAmKEdIiUkRECni2cwK3AytEpESSw9oBa/wZlzHmQqrK4MWD6TC2\nA1+3/pr/3fw/SwyZjL+rlSKAEZ52hzBglKrOEpGRIlILp9fSVuDKVtQ2xqRbTFwMvab3Yv7O+Sx8\neCHlC5Z3OyTjgqCfeM8Yc+X2RO/hl42/8PPGn4naFkXzSs0Z1noYebPndTs0c4XSW61kycGYTOpU\n7CkGLRrE+HXj2XJ0C80qNaNVlVY0r9ScQjkLuR2eySCWHIwxaTZ5w2R6Tu1JwzINeez6x2hYpiFZ\nw7O6HZbxgfQmB5tbyZhMZMfxHTw19SnWHVrHN22+4Zbyt7gdkglQ1v3AmEwgLiGO9/58jzpf1uH6\niOtZ/cRqSwzmkqzkYEwQi0uIY9X+VSzatYiFuxdy4NQBSuYtSUSeiPM/s4Rl4eXZL1MiTwkWPrKQ\nSoUquR22CQLW5mBMEFq4ayG9Z/Rmxb4VVChYgRtL3Uj90vUpmbck+07uY0/0HvZE72Hvyb0ciTlC\n97rd6VSjk81DlglZg7QxmcS2Y9u4adhNvHPbO7St1tZWXzOXZMnBmEwg+mw0Db9uyEO1H+KZG59x\nOxwTBCw5GBPiEhITaDemHSXylODLll9aFZFJE+vKakyIe3HWi5w4e4KfOv5kicH4nCUHY4LANyu+\nYdy6cSx6ZBHZwrO5HY7JBCw5GBPgJqybwIu/v8jsB2ZTOFdht8MxmYQlB2MC2MzNM3l8yuNM6zqN\nakWquR2OyUQsORgToBbsXMB94+9jfMfx1Imo43Y4JpOx6TOMCUCr9q2i7Zi2jGo3isZlG7sdjsmE\nLDkYE2A2Ht7Ind/dyeA7B9O8UnO3wzGZlN+Sg4jkEJFFIrJSRNaKyFue/YVEZKaIbBSRGeeWETUm\nM9pxfAd3jLqD1295nXtq3ON2OCYT8+sgOBHJpaqnRSQLMA/oDbQGDqnqQBH5L1BQVfuk8l0bBGdC\n2v6T+7l5+M10r9vdRj+bDJPeQXB+rVZS1dOezWxAOHAUJzmM8OwfAbT1Z0zG+NvpuNMMXjyYeTvm\nnd937Mwxmn3bjM7XdLbEYAKCX5ODiISJyEpgPzBbVf8Giqvqfs8h+4Hi/ozJGH+JS4jji6VfUPmT\nyvy25Tc6/dSJ7lO6szd6Ly1GtyCyXCSvNHnF7TCNAfzclVVVE4FaIpIfmC4iTZN9riJy0bqj/v37\nn9+OjIwkMjLSR5Eak3ESNZGxf4/lpdkvUb5AeSbdO4m6Jety7Mwx/jvzv5T9qCxdr+3KB80+sGkx\nzBWLiooiKirqis/j2sR7IvIyEAM8AkSq6j4RicApUaQY7WNtDiYYzdw8kz6z+hAu4bx161vcWuHW\nFMdsOLSBSoUqER4W7kKEJtQF/KysIlIEiFfVYyKSE5gOvAo0Aw6r6jsi0gcoYA3SJhQs3LWQdmPa\nMfjOwbSv3t5KBcYVwZAcauI0OId5XqNU9V0RKQT8CFwFbAM6quqxVL5vycEEle5TulMmfxlebPyi\n26GYTCzgk8OVsuRggsnZ+LOU+qAUyx5bRtkCZd0Ox2RiQdGV1ZjM4td/fqVGsRqWGEzQsuRgjA98\nu+Zbul3bze0wjEk3r5ODZxqM7L4IxphQcDTmKL9t+Y0OV3dwOxRj0u2yycEzcK29iIwVkd3AVmC7\niOwWkZ9EpJ1YNwxjzhuyfAh3VLyDAjlsmjBz5bZsgfLl4aGHYPp08FfT62UbpEXkD2AuMBlYqapn\nPfuzA7Vxpr9opKo3+zRQa5A2QWD0mtE8P/N5Zj8wmyqFq7gdjgly0dHQoAHExsLGjc6+q6+GESOg\nbt20nSO9DdJpGSF9+7mEkJRn30JgoVUzGQPj1o7juRnP8Vu33ywxmAzx0kuweTOULQvdu8OBAzBt\nGqxYkfbkkF6XrVZKUlLoKCL5PNsvi8gEEamT9BhjMqspG6fQ49ceTO0ylRrFargdjgli8fEwcSLc\neit8/z389BPs3g2bNkHt2rBjBzz6qO/jSPM4BxFZo6o1RaQR8DrwHtBPVW/wZYBJrm/VSiYgzdg8\ng67juzLlvincUMov/zuYEJSYCN26wejRF+4vU8Z5zZ+fvvP6Y5xDgudnS2CIqk4Bsnp7QWOC2fEz\nx0n6R0rUtii6ju/KhE4TLDEYr8XFwSOPQEwMnD0Lc+Zc+HmPHjBgADRr5v/YvCk5/ALsBm7HaYg+\nAyxS1et8F94F17eSg3HN3ui9vDH3Db5a9hWvNHmF/938P/7c+Sdtf2jLmA5jaFq+6eVPYoxHYiKs\nWgV16ly4v3x52Lr13/dr10L16ld2LV82SJ/TEWeSvHc9k+dFAM97e0FjgsmRmCMMnD+QIcuH8H/X\n/R9LH1tKy9EtiUuM47MlnzGq3ShLDMZr//kPfPFFyv3NmzuliQMHoHhxqJZifmr/8abkEAZ0Acqr\n6gARuQoooaqLfRlgkutbycH4TfTZaAYtGsRHCz/i7up383KTlymdrzQAK/etpNm3zRjaaiitqrZy\nOVITbPbvhxIlnO0hQ6BFC4iI8N31fD7xnoh8gdPucKuqVvPMpjpDVX3coer89S05GJ87E3+Gz5d8\nztvz3+a2CrfxauSrVCpUKcVxqmpTcJt0adIE/vgDjh6FAn4YJ+mPaqX6qlpbRFYAqOoREbEGaRMS\n4hLiGL5yOAP+GECdiDrM7DaTa4tfe9HjLTGY9FB1Gp9HjvRPYrgS3iSHWBE5v1SViBQFEjM+JGP8\nJ1ETGfPXGPpF9eOq/Fcx9p6x3Fj6RrfDMiFq4kRntHOXLm5HcnneJIdPgAlAMRF5E+gAvOTNxUSk\nDDASKAYo8JWqfiwi/XGWCz3oObSvqk7z5tzGeGv3id3cNfoucmTJwRctvkh1CU9jvLFhA7z1Fsyc\nCY0awR13OK8yZZzBbX37wkcfQVgQzIft1WI/IlIduAUQYJaqrvPqYiIlcBqxV4pIHmAZ0BanJ1S0\nqn5wie9am4PJUM9Me4b4xHg+ufMTqyYyV2T1anjzTfj9d3j6aejQARYsgBkznERRpAhUrAinT8Os\nWeDP/9x83ubg6a1UFyh8rreSiNzgTW8lVd0H7PNsnxSRdUCpc5fwIm5jrsiRmCOMXDWS1d1XW2Iw\n6XbqFHTtCosWwXPPwdChkCeP81nVqvB//+eMaVi5En77DVq18m9iuBLeVCt9htPG0BQYAJz07EtX\nbyURKYczmG4h0BDoKSL3A0uB51JbR9qYjPL5ks9pXbX1+e6pxqTHjBlw8KAzOV7OnKkfExbmDHZL\nPuAt0HlT81VfVXvgjIxGVY+QzukzPFVKPwFPq+pJ4HOgPFAL2Au8n57zGpMWZ+LPMHjJYHo36O12\nKCbIzZoFrVtfPDEEM7/3VvJ0fx0HfKuqEwFU9UCSz4cCP6f23f79+5/fjoyMJDIy0tvLG8OoVaOo\nXaI21xS7xu1QTJBbsQLuucftKC4UFRVFVFTUFZ/Hm0FwXXEajq8HRuDpraSqP6b5Yk7l7gjgsKr2\nSrI/QlX3erZ7AfVU9b5k37UGaXPFEjWRqz+9mi9afkFkuUi3wzFBrnhxJ0GULOl2JBfn8wZpVf1W\nRJYB5/r7tfG2txJO20JXYPW5wXTAi0BnEamF0711K/C4l+c1Jk2+WfENebPnpUnZJm6HYoLc4cNw\n8qRvp75wU5qSg+cv/tKeZOBtQjhPVeeRejvH1PSe05i0+nPnn/Sd1ZfZD8y2Hkom3Y4cgcGDnddD\nDwVP7yNvedPmMBWwSloTlLYf206HHzswvO1wW6nNpFtcHFSoAG3bwty5TnfVUJWm3kqeyv5lImKr\nmZigczL2JK1/aE3vBr25q/JdbodjgljWrFC4MDz/fGgnBvCuK+uNwAIR2SIiazyv1b4KzGQOm45s\not/sfhw8dfDyB6fRkZgjnI47DTgN0F3Hd6VeyXr0urHXZb5pzOXdfLNTagh13vRWKoszivmCL6jq\ndh/Eldr1rbdSCHpm2jNEbYti54mddK/bnd4NelMgR/qmq1RVPl70MS/PfpnYhFhyZc1FwZwFKZ2v\nNDO7zSRbeLYMjt5kRl9/7Yx2Tr7Wc6Dyx5TdHXASw7mLKHBcRJap6kpvL2xMQmICY/4eQ9QDUeTI\nkoMBcwZQ+ZPKPFP/GZ6+8WnyZMtDbEIsE9dPZM62ORTNXZQSeUoQkSeCEnlKnH9lz5KdE2dP8PDk\nh9l8ZDMrn1hJ+QLlORxzmF0ndlGlcBVLDOaKTZsGL7zg9FLKlgn+c/ImOVyPM1XGzzgJogWwBnhC\nRH5S1Xd8EJ8JYb9v/Z1SeUtRtYhTeTuszTA2Ht5I/6j+VPq4Eq2rtmbyhslUL1qdVlVacezMMZbv\nXc6+k/vYe3Iv+07uY//J/eTJlgcR4Z6r72HUw6PIkSUHAEVyFaFIriJu3qIJAVu2wLPPwl9/wYcf\nQrlyEB3tdlS+50210lzgTs90F+emwPgVaA4sU9UrXAb7ste3aqUQ8+CkB7m22LX0uillW8Ca/WuY\ntGESd1e/m+pFL/6fVqImciTmCNFnoylfsLwvwzWZzIkT8N578OmnzqR6zz4LOXK4HZX3/LFM6Hrg\nWlWN9bzPDqxW1aoiskJVa3t7cW9YcggtMXExlPqgFH/3+JuIvCE6isgEFVVISHCSwmefwaBB0KyZ\nsz5DmTJuR5d+/mhz+A5YJCITcaqVWgGjRSQ3sNbbC5vM7Zd/fuH6ktdbYjB+sWoVPPEEbNrkJID4\neOdn0peqM4Nq1qzOegxz50K1am5H7h5vF/upBzTwvJ2vqkt9ElXq17aSQ5BTVf7Y/gfDVw1n4vqJ\nDGs9jPbV27sdlglh8fHw9ttOKeCdd6BlSwgP//eVJcu/22FhoTna2V+L/VQD8qd3sR+TOe04voMR\nK0cwfNVwcmbJyYO1HuTtW9+meJ7ibodmQtjatfDAA1CoECxfHtxVQ27wps3hCyABuEVVq4tIIWCG\nqqZrsR9vWckh+KgqfX7rw9AVQ+lUoxMP1nqQuiXr2rxGxqcSEuCDD2DgQHj9dXjssdAsEaSVP9oc\n6qtq7XOzqarqEc/aDMak6u15bzN101Q29dxEwZwF3Q7HhDBVWLwYxo+Hn36Cq65y3pe3Dmzp5vfF\nfkzmMHT5UIYsH8L8h+ZbYjA+kZAA8+fDuHFOUsiTB+6+G8aOhdq1M3dpISN4kxw+ASYAxUTkTTyL\n/fgkKhPUJq6fSL/Z/Zjzf3OsN5LJUHFxMHu2kxAmTnQW2WnfHqZPh6uvdju60OJtb6XqwC04XVln\npWOxn3SzNofg8Mf2P+jwYwemdpnK9SWvdzscE+RU4cwZZ/CZCDz+OCxaBF26OEmhYkW3Iwx8PhsE\nJyLPJXmbfG4lVPUDL4IsA4wEinm+/5Wqfuxp3B4DlAW2AR1V9Viy71pyCGA7j+9k/LrxvDnvTUa3\nH82tFW69/JeMuYSFC6FHD2faCoD8+Z2V1zZtglKl3I0tmPiyQTovzi/yqkA9YDJOgmgJeNuNNQ7o\npaorPdNvLBORmcCDwExVHSgi/wX6eF4mgG08vJHx68Yzft14thzdQuuqrRnfcTwNr2rodmgmiB06\nBH37wi+/wLvvwn33QWwsHD/utDOE6rKcgcbbuZXuUtVoz/u8wK+q2jjdF3dGWw/2vJqo6n4RKQFE\nqWq1ZMdaySGAzN0+l9Y/tOa+a+6jffX23Fz2ZrKGW+c1kzZr18L27XDw4L+vQ4ecnwsWQOfOMGCA\nU1owV8YfXVmL4fzlf06cZ1+6iEg5oDawCCiuqvs9H+0HbHRUgNt0ZBNtqrbh0xafuh2KCTLvvutM\naFerFhQt+u+rYkUoUsT5rHJlt6M03iSHkcBiERmPU63UFhiRnot6qpTGAU+ranTSQVGqqiKSahGh\nf//+57cjIyOJjIxMz+VNBjh0+hCFcxZ2OwwTRFSd6qKff4Zly6B0abcjCk1RUVFERUVd8Xm87a10\nPdAYpw3iD1Vd4fUFnYFzU4CpqvqRZ996IFJV94lIBDDbqpUCW5/f+pAvez5ebPyi26GYAJeY6AxI\n+/hj2LwZfv3VWYfZ+IfPqpUkyW9lVV0GLLvUMZc7FzAMWHsuMXhMBh4A3vH8nJi28I1bDp8+TPkC\nNvzUpC7MjwCrAAAbkUlEQVQ+HubNc8YjTJjgtB3cfTd8+SXkzet2dCYt0lKtFCUiU4BJqrox6Qci\nUhWneqkFcHMaztUQ6AqsPjcNB9AXeBv4UUQextOVNW3hG7ccjjlsq6yZFPbtg379nAFqZco4CeG3\n3zL31NfBKi3J4Q6gC/CpiFwDROO0OeQB/sJZ5+G2tFxMVecBYRf5OE3nMIHh0OlDFM5ldQPmX8eP\nQ/PmEBnpDFSzeY2C22WTg6qeBb4GvvbMrXTuz8VDqprgy+BM4Docc9gapM15Z89Cu3bQqJGzzrLN\naxT8vOmthCcZ7L/sgSbkHT592EoOmVxiImzc6IxLGD3aaWQeNMgSQ6jwKjmYzOdozFHm75zP+kPr\n2XBoAxsOOy/A2hwyocOH4auvnCU0Fy50GppvvBHatIFHHnFWVDOhwauurG6yrqz+t2DnAjr+1JHq\nRapzddGrqVq4KlWLVKVakWpE5ImwRXsykZMn4aOPnFebNtCiBdx0k01lEQx82ZW1Is703PmBncAC\nVV3pfYgmWKgqny/9nP5R/Rnaeiitq7Z2OyTjkrNnnZLCm29C06ZOaaFSJbejMv6QlmqlW3BGM5cF\nugMtPAPVPlDV73wZnPG/03GneWLKE6zct5L5D82ncmGbxyCzmjQJnnnGWSdh6lRnuguTeVysW2ny\nY/Ko6izgZ1VtCTQAEkWku0+jM361+chmbhp2E4mayIKHF1hiyMTOnoWHHoKhQ53ZUS0xZD5pSQ5f\nAZEi8hvQVkRaAhVxpuvO48vgjP9M2TiFm4bdxGN1HmNUu1Hkzpbb7ZCMi379FWrWhFttWY5My5sp\nu7PiVDHdBEQAh4HvVXWN78K74PrWIO0DcQlxvDz7Zb5b8x1jOoyhQZkGbodkAkD79k6j88MPux2J\nuVI+WwnuEhe8A2dW1RbpOoH317PkkMF2ndjFvT/dS97seRnZdiRFcxd1OyQTAA4fhgoVYMcOW08h\nFPhjPYdzpYduQC/gOHCNtxc0gWHapmn838T/4+n6T/PfRv8lTNJSw2iCSUKCMxvqnDnOZHdlyzqv\ncuUunPwuMRFWroRZs5zX/PlOicESQ+aWppKDiBQGegCPAXOBD1V1iYjsVNUyPo7xXAxWcsgA8Ynx\n9Jvdj5GrRjL67tHcXDYt8yWaYLFnD0yfDtOmORPelSnjdEE9c8ZZeW3bNudn9uxOoihWzFlboUgR\np33httucuZEKFnT7TkxG8eU4h8+ANsC3wE2quisd8ZkA8fDkh9kTvYfljy+nWO50L+RnAowqPPcc\njBgBt98Od97pzHFUsmTqxx465CSJffucnki28I5JLi3VSt8CG4C/LDEEt7nb5zJ762zW/Wed9UYK\nIYmJ0LOnUwLYvBkKFLj08SL/Ls1pzMWkZVbWP4E/RaSciDwCnAAmqmqsz6MzGSYhMYGnpj3FwNsH\nWmIIIYmJ0L07/PUXzJgB+fK5HZEJFWlukFbVbcBQEckHdBSRLEB2XwVmMtawFcPImy0vnWp0cjsU\nk0ESE+HRR52ZUadNsxXWTMbyelZWVT0BfOtZ2yHam++KyNc4q8YdUNWann39gUeAg57D+qrqNG/j\nMhd3NOYo/Wb3Y2qXqTZZXohISHB6FG3b5kxtkceGo5oM5tdZWUWkMXASGJkkObwCRKvqB5f5rvVW\nSqdnpj1DTFwMX7b60u1QTCo+/BDCwqBxY7juustPe712rTM9dt68MH485LZaQnMJ6e2t5NfO7ao6\nFziaykf256yPrD24lu/WfMfrt7zudigmFQsXwvvvw7p10K0bFCrkLLX5xhvwxx9OF9Rzzp6FV1+F\nJk2cY6dOtcRgfCdQFvvpKSL3A0uB51T1mNsBhQJV5Zlpz/BS45ds9HMAUoUXXoABA5xJ7sDpYjp/\nvrOYzvPPw99/O11NGzaEKVOgYkVYscK6nhrfC4Tk8DkwwLP9GvA+kOqMLv379z+/HRkZSWRkpI9D\nC26TN0xmd/RuetTr4XYoJhVTpsCRI/DAA//uK1LEWUynTRvn/cmTTuli3jwnibRvb8twmkuLiooi\nKirqis/j95XgRKQcztTfNb38zNocvHAm/gw1PqvBFy2+4PaKt7sdjkkmPt5pX3jnHWjZ0u1oTCgL\nijaH1HgWDjqnHeCXWV5Dkaqy/dh2AD5c8CHXFr/WEkOAGjLEKSW08Mu0lcZ4z6/VSiLyPdAEKCIi\nO4FXcNaKqAUosBV43J8xhYKz8WfpPK4zE9ZPAKD3Tb35ZuU3LH50scuRmeTWr4e+fZ3RzJMnWxWR\nCVx+TQ6q2jmV3V/7M4ZQtPPETiasn0Dx3MXZf2o/AMPbDqdCwQouR2bO2bMH+veHCROcRujRoyFn\nTrejMubi/N7mkF7W5nB5B04doMZnNTj4/MHLH2z84vhxGDgQvvjCGbTWt6/NeGr8yy/rOZjAduDU\nAZtp1Y9U4eBB2LDBeW3c+O/2iRNOyeDYMWjd2lkvoYxfJrc3JmNYcggRB08dZOzfYymay8Yz+FpC\ngtPVdP58Z2Rz1arOq0oVp1tqlSrOzKgxMZArF5Qq5XbExnjPkkMQi4mL4ZuV3/DT2p9YtncZzSo2\n461b33I7rJA3c6azDsKmTVC4sNvRGOMblhyCVFxCHB3GdiA+MZ6n6j9Fs4rNyJnVWjj9YcQIZ0Sz\nJQYTyqxBOgglaiIPTnqQw6cPM6HTBLKGZ3U7pEzj2DFnDeYtW5x5kIwJdNYgnYn0+a0PGw9vZNb9\nsywx+NmPPzrLcFpiMKHOkkOQef/P95mycQpzH5xLrqy53A4nqO3f7wxEO3XKaTw+fdr5mfSVfN+W\nLfDdd25HbozvWXIIEnEJcbz0+0uM+XsMcx+cS+FcVuGdXidPwgcfwMcfQ7NmzlrKOXM6r/z5/91O\n+sqV69/PK1d2+w6M8T1LDkFg5/Gd3DvuXvJlz8eSR5fY9NtpdPass5DO0qXOkpqJic7YhCVLIDIS\nFi+GCjaI3JhUWYN0gJuycQoPT36YZ298lucbPk+YuD5XYlCYOxcef9xZ/6BbN2d1tbAw51WhAtRM\nMe+vMaHJGqRDTFxCHC/OepExf49hfMfxNLyqodshuWbxYmfhmyxZ/q3eyZXrwu0cOSA21mkX2LoV\nFixwqo3atbPJ7YxJDys5BKCjMUdp/2N7cmXNxci2IzN1+8K+fVCvHvTr5/zFf/r0ha+kjcbZs//b\nLtC5s/PTmMwuvSUHSw4BZvux7dz53Z00r9Scd29/l/Cwy6w2H8JiY6FpU6fRuF8/t6MxJjgF7WI/\n5kKTNkzidNxpBjQdkKkTgyo89ZTTk+ill9yOxpjMx0oOASZRE3l08qNsPbaVX+77JVNOibFjB/To\nAbt3w5w5kC+f2xEZE7yCouQgIl+LyH4RWZNkXyERmSkiG0VkhogU8GdMgSZMwviq1VeUyFOCDmM7\nkKiJboeUZgkJzvQSV/L9wYOhTh2oXx8WLbLEYIxb/F2t9A3QPNm+PsBMVa0CzPK8z7SOnTnGBws+\nYO6OuZyJP8PZ+LNuh3RZa9Y4q5tddZUzPXWzZjB8uLPQTXKqzqpoc+c6I5TP+ftvaNwYfvjB+ezl\nlyFbNr/dgjEmGb9XK4lIOeBnVa3peb8eaKKq+0WkBBClqtVS+V5IVyttPbqVjxZ+xKjVo7ir8l30\nurEX15e83u2wLio2Fj79FEaOhEOHoGtXZzxBuXIwZQp8/z38/rszD1GFCs701ps2webNkCcPlC/v\nLI7TsSMUKQJffgkDBjhjE8KsJcyYDBM0vZVSSQ5HVbWgZ1uAI+feJ/teSCaHBTsX8P6C94naFsUj\ndR7hyRuepHS+0m6HdVmjRjlTULz/PjRp4gwyS+7oURg/Hg4cgEqVnFfFiv9WFR044IxF2LkT3ngD\nSgf+bRsTdEJiEJyqqohcNAP079///HZkZCSRkZF+iCpjxCXE8es/vwKQI0sODp0+xOAlgzlw6gDP\n1H+G4W2HkydbHpejTLulS+G+++CWWy5+TMGCzrrJF1OsGLz+esbHZkxmFhUVRVRU1BWfJxBKDuuB\nSFXdJyIRwOxgqlbacnQLS/cspWONjhc95mTsSTr82IHDMYeJyBPBmfgzZM+SnQdrPUibqm2Csstq\no0ZONdClkoMxxn3BXHKYDDwAvOP5OdHdcLyzJ3oPD056kMZXNSYibwQA8Ynx9JvdjxcavkBsQiwt\nRrfg2mLXMuW+KWQJC4R/8vTbsQOGDHEaoevUcTsaY4yv+Lsr6/fAn0BVEdkpIg8CbwO3i8hG4BbP\n+6BxXfHriImLoX9U//P7Bs4fyMD5A/nfrP/R6OtGNK/YnKGthwZtYkhIgKlToXVrqF3b6YW0YAEU\nyNSdjo0JbTYILgNUG1yNTUc28VePv4iJi6HZt80Y3nY4bX5ow6Dmg+hRr4fbIXpF1Zm8bulSZ3rr\nn35y1kvu3h3uvRdy53Y7QmNMWgVztVLQqx1Rm+3Ht/P6H6+zct9K3r/jfe6qfBcHeh+gYM4UHa8C\nTkICTJsG8+Y5CWHZMicB1K0L118PY8c628aYzMNKDhmg5Psl2XtyL7dXuJ182fMx9p6xiB/nid69\n21nU5s47nW6lWdKY8mNjnS6pAwc6M5i2bPlvQihe3LcxG2P8I2jGOaRXICaHRE2k94zefLjwQwAi\n8kSwuvtqiuQq4tc4jhyBKlX+XbegdWtnlHLZss6I5RIlLkwYJ0/CV1854xRq1IC+fZ2kYuseGBN6\nrFrJR1SVQYsG8fvW38kSloWs4VnJGpaVrOFZ2X5sO/GJ8WzquYnKn1Tmq1Zf+T0xABQq5Pz1/9VX\nzsjkiROdn7t2OaWKQ4ec2U1LlYKICPjzT2cq7MmTrceRMSZ1VnK4hITEBHpO7cmfO//klSavkKiJ\nxCXGEZcQR1xiHOESTqdrOpEjSw62H9tO2QJl/RpfUomJztxEDzwAjz124Wdxcc6iObt3O69rr4XK\nld2J0xjjX1atlMFi4mK4b/x9RJ+NZnyn8eTLHvjTg65c6QxKO3Ag7e0OxpjQZtVKGejw6cO0/qE1\n5QqUY0yHMWQLD+zpQdetgzFjnBlN69ZNfZ4jY4zxhs1/mcz2Y9tp9E0jGpZpyKh2owI6MSxYALVq\nwW23OQPTRoyA6dOtYdkYc+Ws5JDElqNbuPmbm3mh4Qs8Vf8pt8O5pPnzoV07+Owz56eVFowxGcna\nHDziEuJo/E1jOtXoRK+bevnsOhlh3jxo394Zo9CsmdvRGGMCWVAsExpI/jrwFw2GNWDRrkUADJgz\ngII5C/LMjc+4HJnj4EEnCaxb52zHxzv7zyWGb7+1xGCM8Z1MV62kqny65FNenfMqFQpWYPa22ZyJ\nP8PQFUNZ+fhKv45sTu7ECeeXf4sW/+4rXRpiYpy1mfPlc7qs/vgj3HGHa2EaYzKBTJUcDpw6wEOT\nHmL/qf38+dCfLN69mOGrhvP50s8Z1noYxfP4b86I+Hhn2utFi2DxYufn9u1w6pTzedas8MsvzjKb\n4Mx/dOyYs124sN/CNMZkUpmmWmn6punU+qIWNYvVZP5D86lcuDLXl7ye37b8Rpuqbbir8l1+i+X3\n350Ry126OEnhhhuc9oOjR50ZUVWdeY/OJQZwGpwLF7bEYIzxj5BvkD4bf5a+s/oydu1YRrYdSdPy\nTc9/lpCYwBtz3+CFhi+QI0uOjAz3os71Mho71pnPyBhjfMlGSKdi3cF1dB7XmQoFKzCk1RAK53L3\nz+6lS+Guu5zGZGszMMb4Q9D3VhKRbSKyWkRWiMjiKz3fwVMHuXHYjfSo14NxHce5mhhiY52lNVu0\ngGHDLDEYYwJfIDVIKxCpqkcy4mT5c+QnXMJpVaWVaz2QYmOdUctvvAFVqzqzoNav70ooxhjjlYAp\nOXhk2G/xbOHZuLPynUzaMCmjTpmq6GhYvvzCffHxMGsWVKvmLLE5erQzrYUlBmNMsAik5KDAbyKy\nVEQezYgTtqvWjgnrJ2TEqS5q2zZn5bSaNaFTJ+dn3rzOessff+wkhQYNfBqCMcZkuECqVmqoqntF\npCgwU0TWq+rcpAf079///HZkZCSRkZGXPGHzSs15aNJDHDtzjAI5CmRosJs3w6BBULCg04YwYwZ0\n7gx9+jhVSLlyZejljDEmTaKiooiKirri8wRkbyUReQU4qarvJ9mXrq6srb9vTacanehybZcMie3A\nAXjtNWeltSeecGZAXbMGVq+Gu++Gd9/NkMsYY0yGCOr1HEQkFxCuqtEikhu4A3g1I859rmopLclh\n/XpngFqFCk57wVVXQZin4u3kSWfN5UGDoGtXZ86jokUzIkJjjAk8AVFyEJHywLnGgSzAd6r6VrJj\n0lVyOHT6EBU/rsi+5/aRM2vOFJ+rwm+/wYcfwrJlzjiEnTudRHHkCFSp4rzmzYPISHj9dSd5GGNM\nMAjqkoOqbgVq+eLcObLkQBCiY6NTJIczZ6BhQ6fLaa9eMH485EgyUDo6GjZscBJFnz5Qp44vIjTG\nmMATEMnBl75d/S23lL+FYrmLpfhs6lTIkweiolJfPS1vXmfZzbp1fR+nMcYEkpBODqrK4MWf0rf2\nRyxYAHv2wN69zmvPHpg7F154wZbVNMaY5AKizSEtvG1zOHwYKt/2B0cbPUbpSesoGSFEREDJkpz/\nWaqUM/OpLbFpjAlVQd3mkFH6R/WncqHKdLm2C4UKwVUdPiVxbg+m/Cxcd53b0RljTPAIqeSwZM8S\n3pr3Fsv2Lqfwxl6sOzuD/Gu/onFjpwdS/vxuR2iMMcEhpJJDgRwFeKvpu7w3eQoHw+vQqHAnnvss\nPyVLWmIwxhhvhFRyyJZYgE8Hh1E/9leuf/ID7qvVgQoF3Y7KGGOCT0gkh5gY+OYbGD6uAFk4yj8z\nsxAW9oLbYRljTNAKpFlZvRYdDQMHQvkKypDFIyh02zBGflTp/JQXxhhj0idou7I++9F8Rr5Ti/p3\n7OTADU+QmDWaL1t+Sd2SNmLNGGPOyVRrSJ+JP0PON3JSp8AtbD+7in5N+vGfev8hPMwGLBhjTFKZ\napzDuLXjACiUqxCTH1xFqXylXI7IGGNCS1DWzg9ZPoQKK7/ltZpjLTEYY4wPBF3JYcOhjSzfuY6s\n8++hWMq59IwxxmSAoEoOx49Dm1eHkuPIA8ydm83WVTDGGB8JmGolEWkuIutF5B8R+W9qx/zfw7Fs\nLziCWe8+QtWq/o7QGGMyj4BIDiISDgwGmgNXA51FpHry4+bsm0S9ctWpWbKKv0P0uYxYEDxQhfK9\ngd1fsAv1+0uvgEgOwA3AJlXdpqpxwA9Am+QHabNevHhzH78H5w+h/B9oKN8b2P0Fu1C/v/QKlORQ\nCtiZ5P0uz74L/K9pb5pXau63oIwxJrMKlOSQppF4vRs94+s4jDHGECAjpEXkRqC/qjb3vO8LJKrq\nO0mOcT9QY4wJQkE7fYaIZAE2ALcCe4DFQGdVXedqYMYYk0kFxDgHVY0XkSeB6UA4MMwSgzHGuCcg\nSg7GGGMCS6A0SANpGwgnIh97Pl8lIrX9HeOVuNz9iUikiBwXkRWe10tuxJkeIvK1iOwXkTWXOCaY\nn90l7y+Ynx2AiJQRkdki8reI/CUiT13kuKB8hmm5v2B9hiKSQ0QWichKEVkrIm9d5Djvnp2qBsQL\npzppE1AOyAqsBKonO+Yu4FfPdn1godtxZ/D9RQKT3Y41nffXGKgNrLnI50H77NJ4f0H77DzxlwBq\nebbz4LQBhtL/f2m5v6B9hkAuz88swEKg0ZU+u0AqOaRlIFxrYASAqi4CCohIcf+GmW5pGugHeN2r\nIBCo6lzg6CUOCeZnl5b7gyB9dgCquk9VV3q2TwLrgJLJDgvaZ5jG+4MgfYaqetqzmQ3nD9EjyQ7x\n+tkFUnJIy0C41I4p7eO4Mkpa7k+BBp5i368icrXfovO9YH52aREyz05EyuGUkhYl+ygknuEl7i9o\nn6GIhInISmA/MFtV1yY7xOtnFxC9lTzS2jKePLMHS4t6WuJcDpRR1dMicicwEQiliaSC9dmlRUg8\nOxHJA/wEPO35CzvFIcneB9UzvMz9Be0zVNVEoJaI5Aemi0ikqkYlO8yrZxdIJYfdQJkk78vgZLdL\nHVPasy8YXPb+VDX6XPFQVacCWUWkkP9C9KlgfnaXFQrPTkSyAuOAb1V1YiqHBPUzvNz9hcIzVNXj\nwC9A3WQfef3sAik5LAUqi0g5EckGdAImJztmMnA/nB9VfUxV9/s3zHS77P2JSHEREc/2DThdjZPX\nHQarYH52lxXsz84T+zBgrap+dJHDgvYZpuX+gvUZikgRESng2c4J3A6sSHaY188uYKqV9CID4UTk\ncc/nX6rqryJyl4hsAk4BD7oYslfScn9AB6C7iMQDp4F7XQvYSyLyPdAEKCIiO4FXcHplBf2zg8vf\nH0H87DwaAl2B1SJy7hfLi8BVEBLP8LL3R/A+wwhghIiE4fzBP0pVZ13p704bBGeMMSaFQKpWMsYY\nEyAsORhjjEnBkoMxxpgULDkYY4xJwZKDMcaYFCw5GGOMScGSgzHGmBQsORhjjEnBkoMxLhCR8iIy\nVETucDsWY1JjycFkWiLSQEQ+u8hnL3pWzXpERJ4Rkc8989ak91rZRWTOubl7cKZQnoCzCE3y4/7w\nTIVgjGvsP0CTmdUD2ohI4VQ+WwyMV9WhnonaSuBMaJZeXYAp6pmvRlXnAa1UdWTSg1T1LDAXaHsF\n1zLmillyMJmSZ8GXv4BvgR6pHFIfmOM5tjhQGJh3BZfsDExKcv2yQFsRaZHKsZM9xxvjGpt4z2RK\nIvKIqg4VkdLAAqCiqsYm+XwCMAoojjNz5wBVjUnntcKBXaoakWRfb5x1jHup6i3Jjs8ObFHV5CsF\nGuM3VnIwmY6I5ANOAKjqLpxqnK7JDiusquNV9XOgARBL+hUBopNcPw8QB0wBSolI7aQHe6qWwkQk\nxxVc05grYsnBZEatcZaAPOdDoNe5N54qn31JPr8KZ+H2K5F0icYHgabA1zhJ4rmLHG/FeuOagFns\nxxh/8FTxZElahaSqS0TkuIjcoaozcNobVnmOzw6UVNUYESmmqgfScdlDQB7P+bIA5VW1red9KWC9\niJRR1Z1JrpngKUEY4wpLDiazaQsMFJHXku3PCzwtImeAx4FdIlJUVQ+KyM8i0hEoLiILgXY4f/U3\nxfkLPxpYC9yIU8LYoqq/nDuxqiaIyF8iUhXoB5QRkfye9X4rAWeBCSJys2cN49o47SDGuMYapI1J\nI8+Atf1AmKqu8Ox7E5ioqotFpAkQrqq/p/Ld/wOKq+o7abjOm8ASVZ2QoTdgjBeszcGYtMsDNAZK\nJ9n3N7DZs10VuO4i3x0NtLjc4DZPlVIjLmwTMcbvrORgTBqJyKPAIpwksABoAmxS1UWuBmaMD1hy\nMMYYk4JVKxljjEnBkoMxxpgULDkYY4xJwZKDMcaYFCw5GGOMScGSgzHGmBQsORhjjEnBkoMxxpgU\n/h8IEdjw5MUnqgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = plt.subplot(111)\n", "ax.plot(rgyr-rgyr[0], aNMP-aNMP[0], label=\"NMP\")\n", "ax.plot(rgyr-rgyr[0], aLID-aLID[0], label=\"LID\")\n", "ax.set_xlabel(r\"$\\Delta R_\\mathrm{gyr}$ ($\\AA$)\")\n", "ax.set_ylabel(r\"$\\Delta\\theta$ (degrees)\")\n", "ax.legend(loc=\"best\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Bonus: note, only use first 200 frames of the equilibrium trajectory." ] }, { "cell_type": "code", "execution_count": 179, "metadata": { "collapsed": true }, "outputs": [], "source": [ "eqdata = np.array([[ts.time, theta_NMP(eq), theta_LID(eq)] for ts in eq.trajectory[:200]]).transpose()" ] }, { "cell_type": "code", "execution_count": 185, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax1 = plt.subplot(121)\n", "ax1.plot(eqdata[0]/1000, eqdata[1], label=\"NMP\")\n", "ax1.plot(eqdata[0]/1000, eqdata[2], label=\"LID\")\n", "ax1.set_xlabel(\"time (ns)\")\n", "ax1.set_ylabel(\"angle (degrees)\")\n", "ax2 = plt.subplot(122)\n", "ax2.plot(eqdata[1], eqdata[2])\n", "ax2.plot(aNMP, aLID, color=\"red\")\n", "ax2.set_xlabel(r\"$\\theta_\\mathrm{NMP}$\")\n", "ax2.set_ylabel(r\"$\\theta_\\mathrm{LID}$\")\n", "ax2.set_aspect(1)\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Digression: using frame indices to filter a trajectory" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you have a quantity that is ceap to compute, you can use it to filter a trajectory:" ] }, { "cell_type": "code", "execution_count": 213, "metadata": { "collapsed": false }, "outputs": [], "source": [ "peq = eq.select_atoms(\"protein\")\n", "closed = [ts.frame for ts in eq.trajectory[:100] if peq.radius_of_gyration() < 19]" ] }, { "cell_type": "code", "execution_count": 207, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 207, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory[closed]" ] }, { "cell_type": "code", "execution_count": 212, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 212, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nzMwS9v9SFUZTh8kEbgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(eqdata[0, closed], eqdata[1, closed], '+')\n", "plt.plot(eqdata[0, closed], eqdata[2, closed], '+')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Trajectory manipulation\n", "\n", "One can easily modify the coordinates of the current timestep: Either directly in `Timestep.positions` or via `AtomGroup` methods such as `translate` or `rotate`.\n", "\n", "In particular, we can optimally superimpose RMSD fitting.\n" ] }, { "cell_type": "code", "execution_count": 126, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import MDAnalysis.analysis.rms as rms" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to calculate the RMSD for an optimal superposition of the C-alpha atoms. As a reference, we take the coordinates of the initial frame of the trajectory:" ] }, { "cell_type": "code", "execution_count": 131, "metadata": { "collapsed": false }, "outputs": [], "source": [ "ca = u.select_atoms(\"name CA\")\n", "\n", "u.trajectory[0]\n", "ref = ca.positions.copy()\n", "ref_com = ca.center_of_mass()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Remove translations by moving to the center of mass of the reference:" ] }, { "cell_type": "code", "execution_count": 139, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([-0.10115989, 0.64150608, 1.31268827])" ] }, "execution_count": 139, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory[-1]\n", "ca.translate(-ca.center_of_mass() + ref_com)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then calculate the RMSD after optimum RMSD superposition with `rmsd()`:" ] }, { "cell_type": "code", "execution_count": 142, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "7.302982419868816" ] }, "execution_count": 142, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rms.rmsd(ca.positions, ref)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Actually, `rmsd()` has the *center* keyword that does a superposition for us:" ] }, { "cell_type": "code", "execution_count": 147, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2.221923547136809" ] }, "execution_count": 147, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory[20]\n", "rms.rmsd(ca.positions, ref, center=True)" ] }, { "cell_type": "code", "execution_count": 165, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "6.804156136021932" ] }, "execution_count": 165, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.trajectory[-2]\n", "rms.rmsd(ca.positions, ref, center=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can manually superimpose using translation and the optimal rotation matrix (from `rms.rotation_matrix()`) but for many use cases see the contents of the [MDAnalysis.analysis.align](http://pythonhosted.org/MDAnalysis/documentation_pages/analysis/align.html) module." ] }, { "cell_type": "code", "execution_count": 166, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# maybe??? alignto()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Challenge: RMSD time series\n", "Calculate $\\mathrm{RMSD}(t)$ (relative to the initial frame) and plot it.\n", "\n", "* use the \"manual\" approach (instead of `MDAnalysis.rms.RMSD` ;-)\n", "* Bonus: compare the DIMS trajectories to the equilibrium trajectories (hint: plot as fraction of total time)" ] }, { "cell_type": "code", "execution_count": 161, "metadata": { "collapsed": false }, "outputs": [], "source": [ "data = np.array([[ts.time, rms.rmsd(ca.positions, ref, center=True)] \n", " for ts in u.trajectory]).transpose()" ] }, { "cell_type": "code", "execution_count": 162, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(2, 102)" ] }, "execution_count": 162, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.shape" ] }, { "cell_type": "code", "execution_count": 163, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 163, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n4wAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax1 = plt.subplot(111)\n", "ax1.plot(data[0], data[1], label=\"DIMS\")\n", "ax1.set_xlabel(\"time (ps)\")\n", "ax1.set_ylabel(r\"RMSD (\\AA)\")\n", "ax1.legend(loc=\"best\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Writing trajectories\n", "Writing out coordinates (David introduced the selection writer)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Trajectory Writer\n", "Basic pattern:\n", "1. get a trajectory writer\n", " - use `with` and context manager\n", " - provide `n_atoms` (typically from the `AtomGroup` that you are going to write)\n", " - can use `format` keyword argument if extension is not recognized\n", "2. iterate through a trajectory\n", "3. `write()` each time step (or `AtomGroup`)\n", "4. (close trajectory --- done by context manager)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Converting trajectory formats:" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": false }, "outputs": [], "source": [ "xtc = \"new.xtc\"\n", "with mda.Writer(xtc, n_atoms=u.atoms.n_atoms) as W:\n", " for ts in u.trajectory:\n", " W.write(ts)" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-rw-r--r-- 1 oliver oliver 1296904 Oct 13 15:01 new.xtc\r\n" ] } ], "source": [ "!ls -l *.xtc " ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "uxtc = mda.Universe(psf, xtc)\n", "uxtc" ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import os\n", "os.unlink(xtc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# MDSynthesis appetizer " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Working with many trajectories is tedious...." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }