Visualizing protein-protein docking using PyMOL

The Bioinformatics Manual
8 min readOct 13, 2021

--

Hey people, we're back with another episode, and in this episode, we work on visualizing our protein-protein docking results using PyMOL. If you're making these visualizations, you have essentially downloaded the PDB structures of two molecules (receptor and ligand), that you want to dock, and docked them using protein-protein docking software like ZDock/ PatchDock or Cluspro, downloaded the docked PDB files, and installed PyMOL to visualize these receptor-ligand interactions.

Trust me, this is gonna be super fun and easy to learn, and you can even put these in a publication that you wanna make! The end result looks something like this-

What are we waiting for? Let's get started!

Just follow these five simple steps to make your own visualization!

Step 1- Open the PyMOL software and load your docked PDB structure

Open PyMOL and go to File →Open and open your docked PDB structure. I open my docked structure in PyMOL, and this is what it looks like-

I have two molecules docked here as we can see, 1IGR and 1B9G, which are my receptor and ligand(protein) that are docked here.

You can access the structures of 1IGR and 1B9G from the links that I have provided you with at the end of this blog. You can also download the docked structure from the link below so that it's easier to follow along with this blog. These two proteins have been docked using PatchDock.

I will type in the following commands in the PyMOL command line (the one of top PyMOL>) and hit enter-

remove solvent 

This command removes all the solvent molecules from the docked proteins.

show sticks, byres 1IGR within 5 of 1B9G

This command reads as show sticks by residues of 1IGR with 5 angstroms of 1B96. We will similarly write a command for 1B96 as well.

show sticks, byres 1B96 within 5 of 1IGR

This is just the other way round.

bg_color white

This command changes the background of the PyMOL interface to white. I personally feel that this is great for publications!

Typing these four commands into the PyMOL command line, we are done with Step 1, and here are our results!

This already looks really pretty! Let's head to Step 2!

Step 2- Some more commands in general and on the PyMOL command line

Since, we want to highlight the sticks that we have shown, and not the other molecules and cartoons, I would like to make the cartoons less opaque. Here's a command that I put into the PyMOL command line.

set cartoon_transparency, 0.60

This sets my cartoon transparency to 0.60, closer to 0 means more opaque, and closer to 1 means less opaque and more transparent. This is how our docked proteins look like now.

Nice! Less opaque than before.

Let's now get rid of all the red-colored PO4 (phosphate) ions that we have. We will do this by clicking on these atoms to select them and then hide them.

Once you have selected all these phosphate ions, you will be able to see a new layer added by the name of (sele). Go to the A (All) option near the (sele) layer, and click on it. This will give you a dropbox with various options.

Click on the rename selection option and rename your selection as Phosphate_ions.

Now that you have another layer called Phosphate ions, you can deselect them by clicking anywhere on the white screen, and then clicking the H option to hide everything.

This is how things look like now. We will also hide other atoms that are attached with 1IGR by clicking on them and renaming the layer as Other_atoms. In case you're unable to identify those other atoms, click on C on the 1IGR layer, and click on the by chain option inside the by chain option.

This is what our docked proteins look like now.

In case you have used the color by chain option, and your sticks look completely green instead of having those blue and red caps on them, you can go to C in the 1IGR layer, and click on by element and choose the very first option. This will bring back the small caps on your sticks denoting Carbons, Nitrogens, and Oxygens.

And we're done with Step 2! Let's get exploring and check out Step 3 now!

Step 3- Searching and selecting residues forming contact bonds

In this section, we want to look at the polar contact bonds that have been formed between our docked molecules and select them.

For doing this, we will click on the A (All) option on the 1B9G (ligand) layer and click on Find.

Out of the various options Find has, we will choose polar contacts and click on any atoms. This should give us the following.

This structure doesn't look any different, but when you observe closely and carefully, you will find that there are yellow-colored bonds that have been added to the structure.

Now, to choose the residues that are forming these bonds, we will hide both the 1IGR structure and the 1B9G structure by just clicking on them in the layer tab once. Once they are hidden, only the bonds will be visible.

We will zoom in into one of the bonds, or a group of bonds at a time, and then click on the 1B9G layer once again to unhide it. Once we are at this level, we can select all residues forming these bonds.

Similarly, select all the residues involved in bond formation. Hide the 1B9G layer once again to see if all contact bonds have one side selected.

Now, unhide the 1IGR layer and select all the binding residues. Don't forget to zoom in, zooming in helps you identify the correct residues. Once you're done, check if both sides of the contact bond have been selected or not. If in case you've left something somewhere, just hide and unhide to choose those residues.

Rename selection as Contact_bond_residues by choosing the A option in the (sele) layer.

We have selected both sides of our contact bonds and now we want to show the contact bond residues. But before that, we will click on 1IGR and 1B9G to make them visible again. Once they are visible we will click on the Hide option and hide sticks for both of the compounds.

Once you've hidden sticks this is what it looks like.

Now click on the S (Show) option of the (Contact_bond_residues) layer, and click on sticks. This shows the sticks for the residues you have selected. Now you can unselect the (Contact_bond_residues) layer by clicking anywhere on the white screen and this is what you get.

Yay! This looks great! We have all the residues that are forming contact bonds and the bonds themselves between them! Awesome!

Let's move on to Step 4 to learn how to label your contact residues and bonds.

Step 4- Label your residues using the 2-button editing mode

Click on the L (Label) option on your (Contact_bond_residues) layer, to do the labeling for your residues. Choose the residues (one letter) option for showing only one letter and the position of your residues.

This is how your labeled docked protein should look like.

You can see how the labels are right on the top of your residues and it is really difficult to understand or make out what these residues are. Don't worry.

Just click on the Mouse →2-Button Editing and then Ctrl+drag (Windows) / Cmd+drag (Mac) the residue labels that you've made to put them in proper positions. Now be careful while using Ctrl+drag, coz, it could also move other parts of your docked structure.

Yay Yay Yay! We're done with making our publication-level image! Doesn't it look awesome!

Let's head to the final step now, that'll help us export our image!

Step 5- Draw/Ray to take a picture, and you're done!

Now that we are done with our image, all we need to do is to click on the Draw/Ray option on the top right, take an image in your preferred dimensions and save it to your computer. You're done!

I guess that should be it for today! Congratulations on making it to the end! It was a really long blog and you did great! You’re a hard worker! Keep it up! And thanks for reading!

Simple.Concise.Precise. That’s the motto.

Note from the Author: Hey there! How you doin’? Hope you enjoyed my writing! Let me know if you liked it! You can always write to me if you want me to write the manual for a particular software, give me a feedback, or even want to reach out regarding anything in general. I’ll be happy! Reach out to me at snippetsbio@gmail.com. Thank you!

PDB file for 1IGR: Google drive link

PDB file for 1B9G: Google drive link

PatchDock file: Google drive link

Choose the first PatchDock file that you get for your further observations, the first PatchDock file is considered to be the best. In case you're curious about how to use PatchDock and analyze its results, go ahead and search for one of my blogs on it. Thanks!

--

--

The Bioinformatics Manual

If you're a biologist just starting out with bioinformatics, this is the best place you could be at! We discuss all heard & unheard bioinformatic software here!