{
"cells": [
{
"attachments": {},
"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 updated:** December 2022 with MDAnalysis 2.4.0-dev0\n",
"\n",
"**Minimum version of MDAnalysis:** 2.0.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": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/pbarletta/mambaforge/envs/mda-user-guide/lib/python3.9/site-packages/MDAnalysis/coordinates/DCD.py:165: DeprecationWarning: DCDReader currently makes independent timesteps by copying self.ts while other readers update self.ts inplace. This behaviour will be changed in 3.0 to be the same as other readers\n",
" warnings.warn(\"DCDReader currently makes independent timesteps\"\n"
]
}
],
"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": [],
"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.timeseries`, which has the same number of rows, as frames in the trajectory. You can access the results both at `rog.results.timeseries` and `rog.results['timeseries']`:"
]
},
{
"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": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rog.results['timeseries'].shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"gives the same outputs as:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(98, 4)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rog.results.timeseries.shape"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"labels = ['all', 'x-axis', 'y-axis', 'z-axis']\n",
"for col, label in zip(rog.results['timeseries'].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": 8,
"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": [
{
"data": {
"text/plain": [
"(10, 4)"
]
},
"execution_count": 8,
"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['timeseries'].shape"
]
},
{
"cell_type": "code",
"execution_count": 9,
"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": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for col, label in zip(rog_10.results['timeseries'].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": 10,
"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": 11,
"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": [],
"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": 12,
"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": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for col, label in zip(rog_u2.results['timeseries'].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": 15,
"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": 16,
"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": "47f240fd957e4c138ba3fecf7e037981",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/98 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"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": 17,
"metadata": {
"execution": {
"iopub.execute_input": "2021-05-19T05:45:47.691297Z",
"iopub.status.busy": "2021-05-19T05:45:47.690130Z",
"iopub.status.idle": "2021-05-19T05:45:47.693665Z",
"shell.execute_reply": "2021-05-19T05:45:47.694259Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([18.26549552, 12.85342131, 15.37359575, 16.29185734])"
]
},
"execution_count": 17,
"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": 18,
"metadata": {
"execution": {
"iopub.execute_input": "2021-05-19T05:45:47.700493Z",
"iopub.status.busy": "2021-05-19T05:45:47.699598Z",
"iopub.status.idle": "2021-05-19T05:45:47.714227Z",
"shell.execute_reply": "2021-05-19T05:45:47.714684Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"