{ "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:** May 18, 2021 with MDAnalysis 1.1.1\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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:44.674135Z", "iopub.status.busy": "2021-05-19T05:45:44.673007Z", "iopub.status.idle": "2021-05-19T05:45:46.290616Z", "shell.execute_reply": "2021-05-19T05:45:46.291341Z" } }, "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:46.297926Z", "iopub.status.busy": "2021-05-19T05:45:46.297404Z", "iopub.status.idle": "2021-05-19T05:45:46.299247Z", "shell.execute_reply": "2021-05-19T05:45:46.299751Z" } }, "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:46.304382Z", "iopub.status.busy": "2021-05-19T05:45:46.303729Z", "iopub.status.idle": "2021-05-19T05:45:46.735057Z", "shell.execute_reply": "2021-05-19T05:45:46.736379Z" } }, "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:46.744071Z", "iopub.status.busy": "2021-05-19T05:45:46.743156Z", "iopub.status.idle": "2021-05-19T05:45:46.820924Z", "shell.execute_reply": "2021-05-19T05:45:46.821283Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/lily/anaconda3/envs/mda-user-guide/lib/python3.7/site-packages/MDAnalysis/analysis/base.py:282: DeprecationWarning: The structure of the `results` array will change in MDAnalysis version 2.0.\n", " \"MDAnalysis version 2.0.\", category=DeprecationWarning\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:46.827199Z", "iopub.status.busy": "2021-05-19T05:45:46.826150Z", "iopub.status.idle": "2021-05-19T05:45:46.829723Z", "shell.execute_reply": "2021-05-19T05:45:46.830409Z" }, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "(98, 4)" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rog.results.shape" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T05:45:46.853297Z", "iopub.status.busy": "2021-05-19T05:45:46.851794Z", "iopub.status.idle": "2021-05-19T05:45:46.991491Z", "shell.execute_reply": "2021-05-19T05:45:46.991906Z" } }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Frame')" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:46.997610Z", "iopub.status.busy": "2021-05-19T05:45:46.996736Z", "iopub.status.idle": "2021-05-19T05:45:47.008365Z", "shell.execute_reply": "2021-05-19T05:45:47.008817Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/lily/anaconda3/envs/mda-user-guide/lib/python3.7/site-packages/MDAnalysis/analysis/base.py:282: DeprecationWarning: The structure of the `results` array will change in MDAnalysis version 2.0.\n", " \"MDAnalysis version 2.0.\", category=DeprecationWarning\n" ] }, { "data": { "text/plain": [ "(10, 4)" ] }, "execution_count": 1, "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:47.026036Z", "iopub.status.busy": "2021-05-19T05:45:47.021412Z", "iopub.status.idle": "2021-05-19T05:45:47.153405Z", "shell.execute_reply": "2021-05-19T05:45:47.153774Z" }, "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Frame')" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:47.158522Z", "iopub.status.busy": "2021-05-19T05:45:47.157956Z", "iopub.status.idle": "2021-05-19T05:45:47.159704Z", "shell.execute_reply": "2021-05-19T05:45:47.160090Z" } }, "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:47.164528Z", "iopub.status.busy": "2021-05-19T05:45:47.163876Z", "iopub.status.idle": "2021-05-19T05:45:47.223088Z", "shell.execute_reply": "2021-05-19T05:45:47.223864Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/lily/anaconda3/envs/mda-user-guide/lib/python3.7/site-packages/MDAnalysis/analysis/base.py:282: DeprecationWarning: The structure of the `results` array will change in MDAnalysis version 2.0.\n", " \"MDAnalysis version 2.0.\", category=DeprecationWarning\n" ] }, { "data": { "text/plain": [ ".WrapperClass at 0x7fb6bec3b610>" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:47.235361Z", "iopub.status.busy": "2021-05-19T05:45:47.234354Z", "iopub.status.idle": "2021-05-19T05:45:47.386475Z", "shell.execute_reply": "2021-05-19T05:45:47.386946Z" } }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Frame')" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:47.392838Z", "iopub.status.busy": "2021-05-19T05:45:47.391905Z", "iopub.status.idle": "2021-05-19T05:45:47.421066Z", "shell.execute_reply": "2021-05-19T05:45:47.421613Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/lily/anaconda3/envs/mda-user-guide/lib/python3.7/site-packages/MDAnalysis/analysis/base.py:282: DeprecationWarning: The structure of the `results` array will change in MDAnalysis version 2.0.\n", " \"MDAnalysis version 2.0.\", category=DeprecationWarning\n" ] }, { "data": { "text/plain": [ ".WrapperClass at 0x7fb6bee51f90>" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:47.438047Z", "iopub.status.busy": "2021-05-19T05:45:47.431283Z", "iopub.status.idle": "2021-05-19T05:45:47.574600Z", "shell.execute_reply": "2021-05-19T05:45:47.575412Z" } }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Frame')" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:47.588068Z", "iopub.status.busy": "2021-05-19T05:45:47.586645Z", "iopub.status.idle": "2021-05-19T05:45:47.589492Z", "shell.execute_reply": "2021-05-19T05:45:47.589917Z" } }, "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:47.598314Z", "iopub.status.busy": "2021-05-19T05:45:47.597633Z", "iopub.status.idle": "2021-05-19T05:45:47.684015Z", "shell.execute_reply": "2021-05-19T05:45:47.683397Z" }, "scrolled": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4288ee805e9244e19932a236e7f290b7", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/98 [00:00\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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": 1, "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:47.718968Z", "iopub.status.busy": "2021-05-19T05:45:47.718192Z", "iopub.status.idle": "2021-05-19T05:45:47.913871Z", "shell.execute_reply": "2021-05-19T05:45:47.914306Z" } }, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Radius of gyration (A)')" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:47.929324Z", "iopub.status.busy": "2021-05-19T05:45:47.920891Z", "iopub.status.idle": "2021-05-19T05:45:47.958180Z", "shell.execute_reply": "2021-05-19T05:45:47.957107Z" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "9bddfb9c6bb645d4a126c959ecfc862e", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/10 [00:00" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "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": { "execution": { "iopub.execute_input": "2021-05-19T05:45:47.962059Z", "iopub.status.busy": "2021-05-19T05:45:47.961505Z", "iopub.status.idle": "2021-05-19T05:45:47.963733Z", "shell.execute_reply": "2021-05-19T05:45:47.964108Z" } }, "outputs": [ { "data": { "text/plain": [ "(10, 6)" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rog_base_10.results.shape" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T05:45:47.976103Z", "iopub.status.busy": "2021-05-19T05:45:47.974826Z", "iopub.status.idle": "2021-05-19T05:45:47.979238Z", "shell.execute_reply": "2021-05-19T05:45:47.979840Z" }, "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": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rog_base_10.df" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "execution": { "iopub.execute_input": "2021-05-19T05:45:48.013053Z", "iopub.status.busy": "2021-05-19T05:45:48.009500Z", "iopub.status.idle": "2021-05-19T05:45:48.151311Z", "shell.execute_reply": "2021-05-19T05:45:48.151749Z" }, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Radius of gyration (A)')" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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HsTN7dyPUErZ768hJSWF3bt3M2/ePNLS0sjPz+fee++1dUOtXr2axYsXo9frufHGG23X0+v1tn791tZWvv/975OXl0dkZCQ/+clPLjiHva9YdTqd7fvk6uqKyWTq99elKBdDSsnpulYOltV3SvL1nKhupuNX1sdDa8VfPzmcpHG+JI3zJWGMDwZ357bi+8ORLf51wEvAW522vQY8JKXcJIS4A3gY+LEDYxgUfn5+vPjii1x77bXcfffd1NXV2frM161bZzsuJyeHv/3tb8ybN48DBw6wb9++bucaM2YM5eXlVFVV4e3tzccff8yVV16JxWLh1KlTzJs3j8suu4y3336bxsbGLgOwHeefP38+hYWFnDx5koSEBE6fPt1r7D/60Y946KGH+PDDD4mIiADoMvYQFhZGWFgYP/vZz3pteXck+eDgYBobG3nvvfe44YYbAPDx8aGhofushOnTp3P//fdTWVlJQEAA69evt31aUZTBYLFITlQ3c7CsjgOl9Rwsq+NgWT3VTe2A1oqPDvS0JvkIEsdqXTURAYYh2YrvD4clfillrhAi5rzNCUCu9fnnwGeMgMQPMGnSJDIyMnjnnXd45JFHuO222/jNb37D/PnzbcfcfffdrF69mvT0dDIzM5k2bVq38+h0OtugaWxsLImJiYA2jnDrrbdSV1eHlJIHHnig26yb73//+6xdu5a0tDTc3NxYt24dHh4efcZ99dVXU1FRwVVXXYXZbMbf35/U1FQWLVpkO2bFihVUVFSQnJzc4zn8/f256667SEtLIyYmhqlTp9r23X777axduxaDwcD27dtt28eNG8ezzz7LvHnzkFJy9dVXc+211/YZq6JcLJPZwtGKxnMJvrSeQ6frbV01OldB/BgfrkgaQ0q4LylhviSO9cXLY2T2houL6R6w++Ra4v+4U1fPNuBXUsoPhRD/H/BTKaVPL+9dA6wBiIqKmnL+VMTDhw+TlJTksNiVc+69914mTZpkG7xW7KN+R52j1WjmyJkGDlhb8AdL6yg400CbSetCNehcSQ7TkntqmB/JYdqAq7vbyJvkKITYJaXMOn/7YP85uwN4UQjxJPAR0N7bgVLKV4FXAbKyshz310np05QpU/Dy8uKFF15wdiiK0k1Dq5HDpxs4UFrHgbI6DpXVU1TeiNmipQxfvRup4X6smhlNargfKWG+xAZ74+oy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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 }