{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Calculating the RDF atom-to-atom\n",
"\n",
"We calculate the site-specific radial distribution functions of solvent around certain atoms.\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",
"\n",
"**Optional packages for visualisation:**\n",
"\n",
"* [matplotlib](https://matplotlib.org)\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"execution": {
"iopub.execute_input": "2021-05-19T05:58:29.353011Z",
"iopub.status.busy": "2021-05-19T05:58:29.352352Z",
"iopub.status.idle": "2021-05-19T05:58:30.289550Z",
"shell.execute_reply": "2021-05-19T05:58:30.290032Z"
}
},
"outputs": [],
"source": [
"import MDAnalysis as mda\n",
"from MDAnalysis.tests.datafiles import TPR, XTC\n",
"from MDAnalysis.analysis import rdf\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Loading files"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The test files we will be working with here feature adenylate kinase (AdK), a phosophotransferase enzyme. (Beckstein *et al.*, 2009)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"execution": {
"iopub.execute_input": "2021-05-19T05:58:30.294493Z",
"iopub.status.busy": "2021-05-19T05:58:30.293625Z",
"iopub.status.idle": "2021-05-19T05:58:31.229943Z",
"shell.execute_reply": "2021-05-19T05:58:31.229178Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/lily/anaconda3/envs/mda-user-guide/lib/python3.7/site-packages/MDAnalysis/topology/tpr/utils.py:395: DeprecationWarning: TPR files index residues from 0. From MDAnalysis version 2.0, resids will start at 1 instead. If you wish to keep indexing resids from 0, please set `tpr_resid_from_one=False` as a keyword argument when you create a new Topology or Universe.\n",
" category=DeprecationWarning)\n"
]
}
],
"source": [
"u = mda.Universe(TPR, XTC)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Calculating the site-specific radial distribution function"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A radial distribution function $g_{ab}(r)$ describes the time-averaged density of particles in $b$ from the reference group $a$ at distance $r$. It is normalised so that it becomes 1 for large separations in a homogenous system. See [the tutorial on averaged RDFs](average_rdf.ipynb) for more information. The `InterRDF_s` class ([API docs](https://docs.mdanalysis.org/stable/documentation_pages/analysis/rdf.html#MDAnalysis.analysis.rdf.InterRDF_s)) allows you to compute RDFs on an atom-to-atom basis, rather than simply giving the averaged RDF as in `InterRDF`.\n",
"\n",
"Below, I calculate the RDF between selected alpha-carbons and the water atoms within 15 angstroms of CA60, *in the first frame of the trajectory*. The water group does not update over the trajectory as the water moves towards and away from the alpha-carbon. \n",
"\n",
"The RDF is limited to a spherical shell around each atom by `range`. Note that the range is defined around *each atom*, rather than the center-of-mass of the entire group.\n",
"\n",
"If `density=True`, the final RDF is over the average density of the selected atoms in the trajectory box, making it comparable to the output of `rdf.InterRDF`. If `density=False`, the density is not taken into account. This can make it difficult to compare RDFs between AtomGroups that contain different numbers of atoms."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"execution": {
"iopub.execute_input": "2021-05-19T05:58:31.235366Z",
"iopub.status.busy": "2021-05-19T05:58:31.234786Z",
"iopub.status.idle": "2021-05-19T05:58:31.854793Z",
"shell.execute_reply": "2021-05-19T05:58:31.855177Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ca60 = u.select_atoms('resid 60 and name CA')\n",
"ca61 = u.select_atoms('resid 61 and name CA')\n",
"ca62 = u.select_atoms('resid 62 and name CA')\n",
"water = u.select_atoms('resname SOL and sphzone 15 group sel_a', sel_a=ca60)\n",
"\n",
"ags = [[ca60+ca61, water], [ca62, water]]\n",
"\n",
"ss_rdf = rdf.InterRDF_s(u, ags,\n",
" nbins=75, # default\n",
" range=(0.0, 15.0), # distance\n",
" density=True,\n",
" )\n",
"ss_rdf.run();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Like `rdf.InterRDF`, the distance bins are available at `ss_rdf.bins`."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"execution": {
"iopub.execute_input": "2021-05-19T05:58:31.859860Z",
"iopub.status.busy": "2021-05-19T05:58:31.859307Z",
"iopub.status.idle": "2021-05-19T05:58:31.861752Z",
"shell.execute_reply": "2021-05-19T05:58:31.862184Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.1, 0.3, 0.5, 0.7, 0.9, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1,\n",
" 2.3, 2.5, 2.7, 2.9, 3.1, 3.3, 3.5, 3.7, 3.9, 4.1, 4.3,\n",
" 4.5, 4.7, 4.9, 5.1, 5.3, 5.5, 5.7, 5.9, 6.1, 6.3, 6.5,\n",
" 6.7, 6.9, 7.1, 7.3, 7.5, 7.7, 7.9, 8.1, 8.3, 8.5, 8.7,\n",
" 8.9, 9.1, 9.3, 9.5, 9.7, 9.9, 10.1, 10.3, 10.5, 10.7, 10.9,\n",
" 11.1, 11.3, 11.5, 11.7, 11.9, 12.1, 12.3, 12.5, 12.7, 12.9, 13.1,\n",
" 13.3, 13.5, 13.7, 13.9, 14.1, 14.3, 14.5, 14.7, 14.9])"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ss_rdf.bins"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`ss_rdf.rdf` contains the atom-pairwise RDF for each of your pairs of AtomGroups. It is a list with the same length as your list of pairs `ags`. A result array has the shape `(len(ag1), len(ag2), nbins)` for the AtomGroup pair `(ag1, ag2)`. "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"execution": {
"iopub.execute_input": "2021-05-19T05:58:31.867176Z",
"iopub.status.busy": "2021-05-19T05:58:31.866041Z",
"iopub.status.idle": "2021-05-19T05:58:31.868917Z",
"shell.execute_reply": "2021-05-19T05:58:31.868467Z"
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"There are 1041 water atoms\n",
"The first result array has shape: (2, 1041, 75)\n",
"The second result array has shape: (1, 1041, 75)\n"
]
}
],
"source": [
"print('There are {} water atoms'.format(len(water)))\n",
"print('The first result array has shape: {}'.format(ss_rdf.rdf[0].shape))\n",
"print('The second result array has shape: {}'.format(ss_rdf.rdf[1].shape))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Index the results array to get the RDF for a particular pair of atoms. `ss_rdf.rdf[i][j][k]` will return the RDF between atoms $j$ and $k$ in the $i$th pair of atom groups. For example, below we get the RDF between the alpha-carbon in residue 61 (i.e. the second atom of the first atom group) and the 571st atom of water."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"execution": {
"iopub.execute_input": "2021-05-19T05:58:31.872815Z",
"iopub.status.busy": "2021-05-19T05:58:31.872315Z",
"iopub.status.idle": "2021-05-19T05:58:31.874585Z",
"shell.execute_reply": "2021-05-19T05:58:31.874939Z"
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. ,\n",
" 0.0023665 , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0.00114292,\n",
" 0.00106921, 0. , 0.00094167, 0. , 0. ,\n",
" 0. , 0.0007466 , 0. , 0. , 0. ,\n",
" 0. , 0. , 0.00055068, 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0.0003116 , 0. , 0. , 0. ,\n",
" 0. , 0. , 0.00025464, 0.00024669, 0. ,\n",
" 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. ])"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ca61_h2o_571 = ss_rdf.rdf[0][1][570]\n",
"ca61_h2o_571"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"execution": {
"iopub.execute_input": "2021-05-19T05:58:31.889621Z",
"iopub.status.busy": "2021-05-19T05:58:31.888908Z",
"iopub.status.idle": "2021-05-19T05:58:31.994719Z",
"shell.execute_reply": "2021-05-19T05:58:31.995133Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'RDF between CA61 and MW6364')"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"