{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Writing your own trajectory analysis\n", "\n", "We create our own analysis methods for calculating the radius of gyration of a selection of atoms.\n", "\n", "This can be done three ways, from least to most flexible:\n", "\n", " 1. [Running the analysis directly from a function](#Creating-an-analysis-from-a-function)\n", " \n", " 2. [Turning a function into a class](#Transforming-a-function-into-a-class)\n", " \n", " 3. [Writing your own class](#Creating-your-own-class)\n", "\n", "The building blocks and methods shown here are only suitable for analyses that involve iterating over the trajectory once.\n", "\n", "If you implement your own analysis method, please consider [contributing it to the MDAnalysis codebase!](https://www.mdanalysis.org/UserGuide/contributing.html)\n", "\n", "**Last executed:** Feb 07, 2020 with MDAnalysis 0.20.2-dev0\n", "\n", "**Last updated:** February 2020\n", "\n", "**Minimum version of MDAnalysis:** 0.19.0\n", "\n", "**Packages required:**\n", " \n", "* MDAnalysis (Michaud-Agrawal *et al.*, 2011, Gowers *et al.*, 2016)\n", "* MDAnalysisTests\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import MDAnalysis as mda\n", "from MDAnalysis.tests.datafiles import PSF, DCD, DCD2\n", "from MDAnalysis.analysis.base import (AnalysisBase,\n", " AnalysisFromFunction,\n", " analysis_class)\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Radius of gyration\n", "\n", "Let's start off by defining a standalone analysis function.\n", "\n", "The radius of gyration of a structure measures how compact it is. In [GROMACS](http://manual.gromacs.org/documentation/2019-rc1/reference-manual/analysis/radius-of-gyration.html), it is calculated as follows: \n", "\n", "$$ R_g = \\sqrt{\\frac{\\sum_i m_i \\mathbf{r}_i^2}{\\sum_i m_i}}$$\n", "\n", "where $m_i$ is the mass of atom $i$ and $\\mathbf{r}_i$ is the position of atom $i$, relative to the center-of-mass of the selection.\n", "\n", "The radius of gyration around each axis can also be determined separately. For example, the radius of gyration around the x-axis:\n", "\n", "$$ R_{i, x} = \\sqrt{\\frac{\\sum_i m_i [r_{i, y}^2 + r_{i, z}^2]}{\\sum_i m_i}}$$\n", "\n", "Below, we define a function that takes an AtomGroup and calculates the radii of gyration. We could write this function to only need the AtomGroup. However, we also add in a `masses` argument and a `total_mass` keyword to avoid recomputing the mass and total mass for each frame." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def radgyr(atomgroup, masses, total_mass=None):\n", " # coordinates change for each frame\n", " coordinates = atomgroup.positions\n", " center_of_mass = atomgroup.center_of_mass()\n", " \n", " # get squared distance from center\n", " ri_sq = (coordinates-center_of_mass)**2\n", " # sum the unweighted positions\n", " sq = np.sum(ri_sq, axis=1)\n", " sq_x = np.sum(ri_sq[:,[1,2]], axis=1) # sum over y and z\n", " sq_y = np.sum(ri_sq[:,[0,2]], axis=1) # sum over x and z\n", " sq_z = np.sum(ri_sq[:,[0,1]], axis=1) # sum over x and y\n", " \n", " # make into array\n", " sq_rs = np.array([sq, sq_x, sq_y, sq_z])\n", " \n", " # weight positions\n", " rog_sq = np.sum(masses*sq_rs, axis=1)/total_mass\n", " # square root and return\n", " return np.sqrt(rog_sq)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Loading files\n", "\n", "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": 3, "metadata": {}, "outputs": [], "source": [ "u = mda.Universe(PSF, DCD)\n", "protein = u.select_atoms('protein')\n", "\n", "u2 = mda.Universe(PSF, DCD2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating an analysis from a function\n", "\n", "`MDAnalysis.analysis.base.AnalysisFromFunction` can create an analysis from a function that works on AtomGroups. It requires the function itself, the trajectory to operate on, and then the arguments / keyword arguments necessary for the function." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "rog = AnalysisFromFunction(radgyr, u.trajectory, \n", " protein, protein.masses, \n", " total_mass=np.sum(protein.masses))\n", "rog.run();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Running the analysis iterates over the trajectory. The output is saved in `rog.results`, which has the same number of rows, as frames in the trajectory." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "(98, 4)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rog.results.shape" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "labels = ['all', 'x-axis', 'y-axis', 'z-axis']\n", "for col, label in zip(rog.results.T, labels):\n", " plt.plot(col, label=label)\n", "plt.legend()\n", "plt.ylabel('Radius of gyration (Å)')\n", "plt.xlabel('Frame');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can also re-run the analysis with different frame selections. \n", "\n", "Below, we start from the 10th frame and take every 8th frame until the 80th. Note that the slice includes the `start` frame, but does not include the `stop` frame index (much like the actual `range()` function)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(10, 4)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rog_10 = AnalysisFromFunction(radgyr, u.trajectory, \n", " protein, protein.masses, \n", " total_mass=np.sum(protein.masses))\n", "\n", "rog_10.run(start=10, stop=80, step=7)\n", "rog_10.results.shape" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for col, label in zip(rog_10.results.T, labels):\n", " plt.plot(col, label=label)\n", "plt.legend()\n", "plt.ylabel('Radius of gyration (Å)')\n", "plt.xlabel('Frame');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Transforming a function into a class\n", "\n", "While the `AnalysisFromFunction` is convenient for quick analyses, you may want to turn your function into a class that can be applied to many different trajectories, much like other MDAnalysis analyses.\n", "\n", "You can apply `analysis_class` to any function that you can run with `AnalysisFromFunction` to get a class." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "RadiusOfGyration = analysis_class(radgyr)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To run the analysis, pass exactly the same arguments as you would for `AnalysisFromFunction`." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "rog_u1 = RadiusOfGyration(u.trajectory, protein, \n", " protein.masses,\n", " total_mass=np.sum(protein.masses))\n", "rog_u1.run();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As with `AnalysisFromFunction`, the results are in `results`." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for col, label in zip(rog_u1.results.T, labels):\n", " plt.plot(col, label=label)\n", "plt.legend()\n", "plt.ylabel('Radius of gyration (Å)')\n", "plt.xlabel('Frame');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can reuse the class for other trajectories and selections." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "ca = u2.select_atoms('name CA')\n", "\n", "rog_u2 = RadiusOfGyration(u2.trajectory, ca, \n", " ca.masses,\n", " total_mass=np.sum(ca.masses))\n", "rog_u2.run();" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for col, label in zip(rog_u2.results.T, labels):\n", " plt.plot(col, label=label)\n", "plt.legend()\n", "plt.ylabel('Radius of gyration (Å)')\n", "plt.xlabel('Frame');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating your own class\n", "\n", "Although `AnalysisFromFunction` and `analysis_class` are convenient, they can be too limited for complex algorithms. You may need to write your own class.\n", "\n", "MDAnalysis provides the `MDAnalysis.analysis.base.AnalysisBase` class as a template for creating multiframe analyses. This class automatically sets up your trajectory reader for iterating, and includes an optional progress meter. \n", "\n", "The analysis is always run by calling `run()`. `AnalysisFromFunction` actually subclasses `AnalysisBase`, and `analysis_class` returns a subclass of `AnalysisFromFunction`, so the behaviour of `run()` remains identical.\n", "\n", "### 1. Define `__init__`\n", "You can define a new analysis by subclassing AnalysisBase. Initialise the analysis with the `__init__` method, where you *must* pass the trajectory that you are working with to `AnalysisBase.__init__()`. You can also pass in the `verbose` keyword. If `verbose=True`, the class will set up a progress meter for you.\n", "\n", "### 2. Define your analysis in `_single_frame()` and other methods\n", "Implement your functionality as a function over each frame of the trajectory by defining `_single_frame()`. This function gets called for each frame of your trajectory. \n", "\n", "You can also define `_prepare()` and `_conclude()` to set your analysis up before looping over the trajectory, and to finalise the results that you have prepared. In order, `run()` calls:\n", "\n", " - `_prepare()`\n", " - `_single_frame()` (for each frame of the trajectory that you are iterating over)\n", " - `_conclude()`\n", "\n", "Class subclassed from AnalysisBase can make use of several properties when defining the methods above:\n", "\n", " - `self.start`: frame index to start analysing from. Defined in `run()`\n", " - `self.stop`: frame index to stop analysis. Defined in `run()`\n", " - `self.step`: number of frames to skip in between. Defined in `run()`\n", " - `self.n_frames`: number of frames to analyse over. This can be helpful in initialising result arrays.\n", " - `self._verbose`: whether to be verbose.\n", " - `self._trajectory`: the actual trajectory\n", " - `self._ts`: the current timestep object\n", " - `self._frame_index`: the index of the currently analysed frame. This is *not* the absolute index of the frame in the trajectory overall, but rather the relative index of the frame within the list of frames to be analysed. You can think of it as the number of times that `self._single_frame()` has already been called.\n", " \n", "Below, we create the class `RadiusOfGyration2` to run the analysis function that we have defined above, and add extra information such as the time of the corresponding frame." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "class RadiusOfGyration2(AnalysisBase): # subclass AnalysisBase\n", " \n", " def __init__(self, atomgroup, verbose=True):\n", " \"\"\"\n", " Set up the initial analysis parameters.\n", " \"\"\"\n", " # must first run AnalysisBase.__init__ and pass the trajectory\n", " trajectory = atomgroup.universe.trajectory\n", " super(RadiusOfGyration2, self).__init__(trajectory,\n", " verbose=verbose)\n", " # set atomgroup as a property for access in other methods\n", " self.atomgroup = atomgroup\n", " # we can calculate masses now because they do not depend\n", " # on the trajectory frame.\n", " self.masses = self.atomgroup.masses\n", " self.total_mass = np.sum(self.masses)\n", " \n", " def _prepare(self):\n", " \"\"\"\n", " Create array of zeroes as a placeholder for results.\n", " This is run before we begin looping over the trajectory.\n", " \"\"\"\n", " # This must go here, instead of __init__, because\n", " # it depends on the number of frames specified in run().\n", " self.results = np.zeros((self.n_frames, 6))\n", " # We put in 6 columns: 1 for the frame index, \n", " # 1 for the time, 4 for the radii of gyration\n", " \n", " def _single_frame(self):\n", " \"\"\"\n", " This function is called for every frame that we choose\n", " in run().\n", " \"\"\"\n", " # call our earlier function\n", " rogs = radgyr(self.atomgroup, self.masses,\n", " total_mass=self.total_mass)\n", " # save it into self.results\n", " self.results[self._frame_index, 2:] = rogs\n", " # the current timestep of the trajectory is self._ts\n", " self.results[self._frame_index, 0] = self._ts.frame\n", " # the actual trajectory is at self._trajectory\n", " self.results[self._frame_index, 1] = self._trajectory.time\n", " \n", " def _conclude(self):\n", " \"\"\"\n", " Finish up by calculating an average and transforming our\n", " results into a DataFrame.\n", " \"\"\"\n", " # by now self.result is fully populated\n", " self.average = np.mean(self.results[:, 2:], axis=0)\n", " columns = ['Frame', 'Time (ps)', 'Radius of Gyration',\n", " 'Radius of Gyration (x-axis)',\n", " 'Radius of Gyration (y-axis)',\n", " 'Radius of Gyration (z-axis)',]\n", " self.df = pd.DataFrame(self.results, columns=columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Because `RadiusOfGyration2` calculates the masses of the selected AtomGroup itself, we do not need to pass it in ourselves." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "scrolled": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Step 98/98 [100.0%]\n" ] } ], "source": [ "rog_base = RadiusOfGyration2(protein, verbose=True).run()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As calculated in `_conclude()`, the average radii of gyrations are at `rog.average`." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([18.26549552, 12.85342131, 15.37359575, 16.29185734])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rog_base.average" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The results are available at `rog.results` as an array or `rog.df` as a DataFrame." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FrameTime (ps)Radius of GyrationRadius of Gyration (x-axis)Radius of Gyration (y-axis)Radius of Gyration (z-axis)
00.01.00000016.66901812.67962513.74934314.349043
11.02.00000016.67321712.64002513.76054514.382960
22.03.00000016.73145412.69645413.80134214.429350
33.04.00000016.72228312.67719413.78073214.444711
44.05.00000016.74396112.64698113.81455314.489046
.....................
9393.093.99999219.56203413.42168316.53911217.653968
9494.094.99999219.56057513.45133516.50864917.656678
9595.095.99999219.55057113.44591416.50064017.646130
9696.096.99999119.56838113.44324316.50739617.681294
9797.097.99999119.59157513.44275016.53792617.704494
\n", "

98 rows × 6 columns

\n", "
" ], "text/plain": [ " Frame Time (ps) Radius of Gyration Radius of Gyration (x-axis) \\\n", "0 0.0 1.000000 16.669018 12.679625 \n", "1 1.0 2.000000 16.673217 12.640025 \n", "2 2.0 3.000000 16.731454 12.696454 \n", "3 3.0 4.000000 16.722283 12.677194 \n", "4 4.0 5.000000 16.743961 12.646981 \n", ".. ... ... ... ... \n", "93 93.0 93.999992 19.562034 13.421683 \n", "94 94.0 94.999992 19.560575 13.451335 \n", "95 95.0 95.999992 19.550571 13.445914 \n", "96 96.0 96.999991 19.568381 13.443243 \n", "97 97.0 97.999991 19.591575 13.442750 \n", "\n", " Radius of Gyration (y-axis) Radius of Gyration (z-axis) \n", "0 13.749343 14.349043 \n", "1 13.760545 14.382960 \n", "2 13.801342 14.429350 \n", "3 13.780732 14.444711 \n", "4 13.814553 14.489046 \n", ".. ... ... \n", "93 16.539112 17.653968 \n", "94 16.508649 17.656678 \n", "95 16.500640 17.646130 \n", "96 16.507396 17.681294 \n", "97 16.537926 17.704494 \n", "\n", "[98 rows x 6 columns]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rog_base.df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using this DataFrame we can easily plot our results." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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B/PII48wefJkJkyYQKtWrSqsX7duHddffz1BQZ4324QJE1i7di29e/eu9jkGDBhAcXExo0eP5s0332Tq1Km8/PLLjB8/nrlz5/LBBx94t500aZL39/T0dCZNmsSJEyew2+3nHb9uNpspKipi+PDhgKerbOLEid71EyZMAKBv376kpqZWO36l+TFbHaw9lMvOtCJ+yyhmT6aZYpvzrO1CDTpahgYSYfQnJtifAJ0Wfz8NUoLTLXG43FzTM5are8TSo2VwjUdmtQ438PCoTnX1tOrVRZH4q9syr2un+vjNZjNjx45l9uzZTJ8+nc8++4zc3FxSUlLQ6XTEx8d7x3RX583k5+eH2+25wHP6WPDHH3+cMWPGsGTJEgYOHMivv/5Kly5dvOullDV+Dt27d2fbtm3erqjNmzfzzTffsHjxYsDzYZOamsrq1atxuVz06NHDu++pDxiABx54gEceeYRrr72WVatW8fTTT9c4ltP5+/sDngvoTufZf8RK81VktXM418L240Us/z2HLakFuNwSvZ+GrjEmxvaK45JoI1EmfyKNnp/YkACCatgdcjFTr0QdCAkJ4a233uK6667j3nvvxWw2Ex0djU6nY+XKlRw75qmMOmzYMKZMmcLjjz+O0+lk0aJF3HPPPWcdLz4+npSUFK6++mq+/fZb7/JTF1x79uzJxo0b2bdvX4XEf/rxpZQsWLCATz/99Jyx33///QwYMIArr7zS289vtVorbHPrrbdy8803869//avK45jNZlq2bAnAJ5984l1uMpkoLj67Gy4kJISwsDDWrl3L0KFD+fTTT72tf0U5xeZwse14IZuPFLA1tYD9WSUVRq10amHknmHtuaJrCxJahaDTNulbkxqMSvx1pHfv3vTq1Ysvv/ySyZMnM27cOPr160diYqI3Offp04dJkyaRmJhI27Ztq7xgOWPGDO68805efPFFBgwY4F3+xhtvsHLlSrRaLd26dePqq6+usF+fPn2YMmUKl156KeC5uHu+bp6YmBi++uorHnvsMTIyMoiOjiYyMpKnnnrKu83kyZP55z//yc0331zlcZ5++mkmTpxIy5YtGThwIEePHgVg3Lhx3HjjjSxcuJC33367wj6ffPKJ9+Ju+/btmTt37jljVZqH0nInv/6ezQ87Mll7MA+7y9MP3zU2mFHdWtAhykj7qCA6x5hoFWbwdbhN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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = rog_base.df.plot(x='Time (ps)', y=rog_base.df.columns[2:])\n", "ax.set_ylabel('Radius of gyration (A)');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also run the analysis over a subset of frames, the same as the output from `AnalysisFromFunction` and `analysis_class`." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Step 10/10 [100.0%]\n" ] } ], "source": [ "rog_base_10 = RadiusOfGyration2(protein, verbose=True)\n", "rog_base_10.run(start=10, stop=80, step=7);" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(10, 6)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rog_base_10.results.shape" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FrameTime (ps)Radius of GyrationRadius of Gyration (x-axis)Radius of Gyration (y-axis)Radius of Gyration (z-axis)
010.010.99999916.85212712.58416314.00158914.614469
117.017.99999817.01958712.54478414.16327614.878262
224.024.99999817.25742912.51434114.48702115.137873
331.031.99999717.54256512.52214714.74746115.530339
438.038.99999717.87124112.48238515.08886515.977444
545.045.99999618.18224312.53302315.45128516.290153
652.052.99999518.49649312.77194915.66700316.603098
759.059.99999518.83934613.03733515.90032716.942533
866.066.99999419.06433313.06149116.11419517.222884
973.073.99999319.27663913.16186316.29853917.444213
\n", "
" ], "text/plain": [ " Frame Time (ps) Radius of Gyration Radius of Gyration (x-axis) \\\n", "0 10.0 10.999999 16.852127 12.584163 \n", "1 17.0 17.999998 17.019587 12.544784 \n", "2 24.0 24.999998 17.257429 12.514341 \n", "3 31.0 31.999997 17.542565 12.522147 \n", "4 38.0 38.999997 17.871241 12.482385 \n", "5 45.0 45.999996 18.182243 12.533023 \n", "6 52.0 52.999995 18.496493 12.771949 \n", "7 59.0 59.999995 18.839346 13.037335 \n", "8 66.0 66.999994 19.064333 13.061491 \n", "9 73.0 73.999993 19.276639 13.161863 \n", "\n", " Radius of Gyration (y-axis) Radius of Gyration (z-axis) \n", "0 14.001589 14.614469 \n", "1 14.163276 14.878262 \n", "2 14.487021 15.137873 \n", "3 14.747461 15.530339 \n", "4 15.088865 15.977444 \n", "5 15.451285 16.290153 \n", "6 15.667003 16.603098 \n", "7 15.900327 16.942533 \n", "8 16.114195 17.222884 \n", "9 16.298539 17.444213 " ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rog_base_10.df" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEGCAYAAABiq/5QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdd3xUVf7/8ddJn8lMOiGdkE5IIEAavVhQKXZdZVVULLu21dXVXfdr+aq7rl972XXt5evufvfn6rqKZVcEKdISehASOklIQnqZlCnn98edXBIgYYD0nOfjwYPMnTv3noTwnjPnnvs5QkqJoiiKMny49XcDFEVRlL6lgl9RFGWYUcGvKIoyzKjgVxRFGWZU8CuKogwzHv3dAFeEhITI2NjY/m6GoijKoJKfn18ppRxx/PZBEfyxsbHk5eX1dzMURVEGFSHEwZNtV0M9iqIow4wKfkVRlGFGBb+iKMowMyjG+E/GarVSXFxMS0tLfzdFUU7g4+NDVFQUnp6e/d0URTnBoA3+4uJizGYzsbGxCCH6uzmKopNSUlVVRXFxMaNHj+7v5ijKCQbtUE9LSwvBwcEq9JUBRwhBcHCw+jSqDFiDNvgBFfrKgKV+N5WBbNAO9SiKoiid2R2Sg1VNFFU0sqeiscv9VPCfBXd3d9LT07HZbIwePZoPP/yQgIAAl1//2GOPYTKZuP/++3nkkUeYMWMG5557bq+09eWXX+ZPf/oTEydO5KOPPur03IYNG/jVr35FSUkJZrOZ8PBwnn76adLT08/6vCtWrMDLy4spU6YA8Prrr2M0Grn++uvP+tiKMlzZ7A4OVlsoKm+kqLyBoopGCssb2FfZRJvNccrXq+A/CwaDgS1btgBwww038Nprr/Hwww+f0bH++7//uyebdoI//vGPfPXVVydcbCwvL+eqq67iL3/5ix7Oq1evZu/evS4Hv81mw8Pj5L9KK1aswGQy6ce+/fbbz+K7UJThxWZ3cKDKwp6KBgrLGymq0IJ+39Em2uzHAj4ywEDSSBMzk0aQEGoiaaSZ+FAT5j+c/Lgq+HvI5MmT2bZtGwCNjY1cfPHF1NTUYLVaefLJJ7n44osBeOqpp/jggw+Ijo5mxIgRTJo0CYDFixczf/58rrjiCr1ERUhICHl5edx///2sWLGC77//nnvuuQfQxpBXrlyJ2Wzu1I7nn3+ed955B4AlS5bwi1/8gttvv519+/axcOFCbrrpJu699159/1dffZUbbrhBD2aAadOmAdDQ0MC4ceMoLCzE09OT+vp6xo0bR1FREeeddx5TpkxhzZo1LFy4kKSkJJ588kna2toIDg7mo48+orm5mddffx13d3f+93//l1deeYVly5bpn3K2bNnC7bffjsViIT4+nnfeeYfAwEBmzZpFTk4Oy5cvp7a2lrfffpvp06f30r+covQ/q92hDdGUNzoDvoGi8kb2V3YO+KhAA0kjzcxMGkHiSDOJoSYSQk34ep9elA+J4H/88wJ2ltb36DFTI/x4dMFYl/a12+0sW7aMm2++GdDmcH/66af4+flRWVlJbm4uCxcuZNOmTfztb39j8+bN2Gw2Jk6cqAe/K5599llee+01pk6dSmNjIz4+Pp2ez8/P591332X9+vVIKcnJyWHmzJm8/vrrfP311yxfvpyQkJBOrykoKOCGG2446fnMZjOzZs1i6dKlXHLJJfztb3/j8ssv1+em19bW8v333wNQU1PDunXrEELw1ltv8cwzz/Dcc89x++2360EPsGzZMv34119/Pa+88gozZ87kkUce4fHHH+fFF18EtE8RGzZs4Msvv+Txxx/n22+/dfnnpCgDldXu4EBlkz40096D31/ZhNV+bBnc6CADSaFmZqWMICnUTOJILeCNXj0T2UMi+PtLc3MzGRkZHDhwgEmTJnHeeecB2jzu3/zmN6xcuRI3NzdKSkooLy9n1apVXHrppRiNRgAWLlx4WuebOnUq9913H4sWLeKyyy4jKiqq0/OrV6/m0ksvxdfXF4DLLruMVatWMWHCBJfPkZOTQ319Peeffz4vvfQSS5Ys4ZlnnuGSSy7h3Xff5c0339T3vfrqq/Wvi4uLufrqqzly5AhtbW2nnL9eV1dHbW0tM2fOBLShsiuvvFJ//rLLLgNg0qRJHDhwwOX2K8pA0GZzcEDvwTewxxn0+yubsDm0gBcCogONJI00MSdlJEkjTSSGmokP9e2xgO9Krx1dCPEOMB+okFKmObeNB14HTMABYJGU8qy76q72zHta+xh/XV0d8+fP57XXXuPuu+/mo48+4ujRo+Tn5+Pp6UlsbKw+p9uVaX4eHh44HNrHu45zwR966CHmzZvHl19+SW5uLt9++y0pKSn681LKE451KmPHjmXT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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax_10 = rog_base_10.df.plot(x='Time (ps)', \n", " y=rog_base_10.df.columns[2:])\n", "ax_10.set_ylabel('Radius of gyration (A)');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Contributing to MDAnalysis\n", "\n", "If you think that you will want to reuse your new analysis, or that others might find it helpful, please consider [contributing it to the MDAnalysis codebase.](https://www.mdanalysis.org/UserGuide/contributing.html) Making your code open-source can have many benefits; others may notice an unexpected bug or suggest ways to optimise your code. If you write your analysis for a specific publication, please let us know; we will ask those who use your code to cite your reference in published work." ] }, { "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." ] } ], "metadata": { "kernelspec": { "display_name": "Python (mda0190)", "language": "python", "name": "mda0190" }, "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.6.7" }, "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": true } }, "nbformat": 4, "nbformat_minor": 2 }