Ionic Strength Dependence of Peptide-RNA Interactions

Prerequisite Requirements:

Click here for Python **Note that this is written using Python 2.7

Introduction:

This is the García-García and Draper paper that this example is taken from. Special thanks to David Draper who provided the PDB files. This example explores the electrostatic contributions to the binding interaction between a 22-residue α-helical peptide of protein λ with the “box B” RNA hairpin structure. In particular, this example uses nonlinear Poisson-Boltzmann equation calculations to look at the non-specific screening effects of monovalent salt on the peptide-RNA complex. García-García and Draper isolated the contribution of KCl concentration to the binding of the folded peptide with the folded RNA hairpin and determined a fairly linear relationship between the binding free energy $\Delta_{\rm bind} G$ and the logarithm of the KCl concentration which yields:

$\frac{\partial\Delta_{bind}G}{\partial\log_{10}{\rm KCl}} = {6.0 \pm 0.2 ~ } {\rm kcal/mol}$

This slope can be used to determine the number of KCl ions linked to the binding equilibrium through the expression:
$n=-\frac{\partial\Delta_{bind}G}{{RT}\partial\log_{10}{\rm KCl}} = {-4.52 \pm 0.08~ } {\rm kcal/mol}$

where $RT$ is the thermal energy, to determine $n = -4.4 \pm 0.2$ for the RNA-peptide binding equilibrium. $RT$ is equal to $KT * N_a$ where $KT$ is the product of the Boltzmann constant k (k is equal to the gas constant $R/N_a$), and the temperature $T$ (at STP in kelvin it is 298.15) and $N_a$ is Avogadro’s constant. Thus $RT$ is equal to $R~({\mathrm{Joules}}/{\mathrm{Kelvin}}) * T~({\mathrm {Kelvin}}) * N_a~({\mathrm {mols}}) * {1~\mathrm{kJ}}/{1000~\mathrm J}$ which roughly equals $(1.38*10^{-23})*(6.022*10^{23})*(298.15)/(1000)$ which is approximately $2.479 \mathrm{(kJ/mol)}$ or $0.593 \mathrm{(kcal/mol)}$.

García-García and Draper also used nonlinear Poisson-Boltzmann equation calculations to estimate the electrostatic contributions to the binding free energy as a function of the monovalent salt concentration. As discussed elsewhere, the Poisson-Boltzmann equation is only able to describe non-specific interactions of ions with solutes, including the effects of ion size and charge but otherwise ignoring the important differences between ionic species. Interestingly (and perhaps surprisingly), they find excellent agreement between the experimental binding energy dependence on KCl and their Poisson-Boltzmann calculations with equivalent concentrations of monovalent ions. This agreement strongly suggests that the binding of RNA and the peptide is primarily determined by electrostatic interactions. It also suggests that the primary interaction of the KCl with this system is through non-specific screening interactions. The García-García and Draper nonlinear Poisson-Boltzmann equation calculations gave:

$\frac{\partial\Delta_{bind}G}{\partial\log_{10}{\rm KCl}} = {5.9 \pm 0.2 ~ } {\rm kcal/mol}$

and $n = -4.3 \pm 0.2$ for KCl linkage to the RNA-peptide binding equilibrium. This equation states that

The PQR files are included in the protein-rna directory of the apbs-pdb2pqr repository.

Software and file setup

1. Go into “My Computer” and in the upper right corner and search for python.exe:

2. Right click the file that comes up and select “Open file location” (should be near the bottom of the tab that comes up)

3. Copy the path which should look something like this:

4. Open the start menu and right click “Computer” and left click properties.

5. Click on “Advanced system settings” which should be in the top left corner.

6. Under the “Advanced” tab, click “Environment Variables”. (Should be in the bottom right)

7. Make sure “PATH” is selected and click “Edit…”

8. Go to the far right, add a semi-colon (if one does not already exist), paste the path you copied (step 2) and click ok.

9. Now you will need to add the path of your apbs executable (apbs.exe) to your path (you need dxmath.exe too).

Find your copy of the APBS distribution

Now, find the template.txt file in the “apbs-pdb2pqr/apbs/examples/protein-rna” directory.

This example template file (template.txt, shown again below) feeds into APBS and specifies which calculations will take place.

Elec keywords

As used in the template file, the READ command, our calculation will have three parts:
1. Calculation of the total electrostatic energy (including self-interaction energies) of the peptide-RNA complex. This calculation is named complex in the input file.
2. Calculation of the total electrostatic energy (including self-interaction energies) of the peptide. This calculation is named peptide in the input file.
3. Calculation of the total electrostatic energy (including self-interaction energies) of the RNA. This calculation is named rna in the input file.

Each part of the input file will be contained in a separate elec keyword section of the input file which specifies the settings for our nonlinear Poisson-Boltzmann equation calculation. The calculations themselves will not be overly demanding, since we will use relatively coarse grids. This grid coarseness has a significant impact on the absolute electrostatic binding energy we obtain from this particular calculation: the calculated energy isn’t converged with respect to grid spacing. However, the overall slope of binding energy with respect to monovalent ion concentration is rather insensitive with respect to the grid spacing, allowing us to save computational time and effort during the calculations. Finally, the calculation will conclude with a PRINT command which will combine the total energies from the three parts to obtain our approximate absolute electrostatic binding energy for the complex at 0.225 M monovalent salt concentration. It is very important to note that this absolute energy no meaning in isolation for several reasons:

• It is not converged with respect to grid spacing
• It does not contain other very important non-electrostatic aspects of the binding energy which are important for the measured affinity

IONSTR is a placeholder that represents the ion concentration of the that APBS is going to be run at.

You will also have to create a “dxmath.txt” file which contains the following.

dxmath uses Reverse Polish Notation, and subtracts the dx maps of the individual peptide and rna from the overall structure (and prints to the qdens-diff-IONSTR.dx file)

Running the software

*When you run these programs, you need to be in the same repository as template.txt and dxmath.txt.

Python script (windows)

This script will create all the input files for the tests, and run apbs and dxmath on your template.txt and dxmath.txt files. Most of the syntax fills in the ion concentrations in the template file, and the call commands actually run the calculations on each input.

Run this script from your command prompt by typing

When it is running nothing will show up, but when it is done, there will be a new line. Make sure you run it from the apbs-pdb2pqr/apbs/examples/protein-rna directory. The “python” tells the computer to use python.exe to run the input. It takes “apbs_win_dx.py” as your input.
Furthermore the double greater than symbol “»” tells your cmd to take the things that would normally be printed into the command prompt into a file called “output.txt”.

Open the output.txt file with your favorite text editor (This tutorial is using notepad ++), hit “ctrl f” and search for “Global net ELEC energy”, copy the numbers and paste them into another file.

Python script (unix)

Run this script by typing

It will create all the apbs-ionconcentration.in files and dxmath-ionconcentration.in files that you need.

Bash script (unix)

Download the Unix bash script (shown below) (check that this file is executable)

This script will take all the files in your current directory and find files that start with apbs- and end with .in (it does the same thing for dxmath- and .in). It will then run apbs and dxmath on these input files on your command line.

Save the bash scipt. Run it by typing

This will feed all the input files from the python (unix) script through apbs and dxmath. It will make a “tee pipe” by both printing the results to both the command line and the output.txt file.

After this command, run

. This will search output.txt for the string “Global net ELEC energy” and output the lines which contain the phrase to a file called output_2.txt.

Formatting and visualizing results

Graph generation

Take the data you found/calculated and reformat it into two columns. The data should be seperated by white space or a column. Note that these energies are in kJ/mol and converted to kcal/mol for comparison with the data from García-García and Draper. The data in this example is from APBS 1.4.0.

Remove the headers from the data so that only two columns of values exists now.

As seen here, the data points are obviously curved and cannot be fit with a line.

This properly fit data looks like this:

The data is approximated by the equation $y = 130 + 11.28*ln(x)$

Further analysis requires the ability to perform linear regression. There are many programs that do this; a simple Python script is provided for this purpose in the protein-rna example directory (named fit.py). This script can be called with:

where file.dat is the file we created with whitespace-separated data in two columns. With linear regression, we can obtain

$\frac{\partial\Delta_{bind}G}{\partial\log_{10}\mathrm{KCl}} = {6.2 \pm 0.1 ~ } {\rm kcal/mol}$

from the graph of x = log10[ion concentration] and y = electrostatic binding energy (kcal/mol).

Likewise, we can also obtain $n=-\frac{\partial\Delta_{bind}G}{{RT}\partial\log_{10}{\rm KCl}} = {-4.52 \pm 0.08~ } {\rm kcal/mol}$ from the graph of x = ln(ion concentration) and y = RT (the electrostatic binding energy).

PyMol:

Open “PyMOL + Tcl-Tk GUI”. Using the window at the top, find the directory containing the files that were just pooped out by the python/bash scripts. Once you find the file type

Your “PyMol Viewer” should now show this:

Click the “qdens-diff-0.225” tab on the right so that it turns the same color as the all button (this means it’s on). This should show the outline of a rectangular prism (these correspond to dime values which are used to run apbs). Click the “S (show)” next to qdens and click show everything.

Now load the pqr file into the PyMol Viewer from the Pymol prompt again.

Under the “S” for the new model you just loaded hit show cartoon and ribbon. Hit “H(hide)” lines and now you should have a picture like this:

VMD:

Open VMD 1.9.1 (or what ever version you have). From the VMD Main window hit “File -> New Molecule”. A “Molecule File Browser” window should come up.

Hit ‘Browse…’

Open the “qdens-diff-0.225.dx” file and hit ‘Load’
Your display window should look somemthing like this: (If “Load” doesn’t work, make sure the file type is correct under “Determine file type”)

Now load another new molecule (model_outNB.pqr) and you should have something like this (zoomed in a little with the scroll on a 3 button mouse):

Under the “Graphics” tab hit “Representations”. A “Graphical Representations” tab should come up.
Click the “Rep” that has “Style” “Lines” and change the “Drawing Method” from “Lines” to “New Cartoon”. Click “Coloring Method” and change to “ResType”. This will color the protein alpha helix such that each amino acid will be a different color based on whether it is non-polar, basic, acidic, or polar (white, blue, red, and green respectively).

Now change the Isosurface representation. Draw (bottom right) should be “Solid Surface” instead of “Points”. The “Material should also be changed from “Opaque” to “Transparent”.

Now the representation should look like this:

Back
Next