PyMOL tutorial: Generate ligand interaction images

Summary

In this tutorial we will generate images showing the interaction of a ligand with its receptor. We aim to show the ligand, the residues in the ligand environment, hydrogen bonding interactions and the fold as transparent cartoon.

(1) Add low-energy hydrogen positions to the structure using the ProteinsPlus webserver.

(2) Use the following procedures to show hydrogen bonds within a ligand and its environment. Adopt the text written in italics to your complex structure. For the start you only need to change lines 2 and 3, the rest should work if only one ligand is bound to chain A, If not, use the resid selection to select only the ligand in the orthosteric binding pocket.

(A) Show H bonds without hydrogens
(B) Show H bonds with hydrogens
reinitialize

load 4eiy_protoss.pdb
select ligand, chain A and resn ZMA

hide all
select env, byres (ligand around 5.0) and not ligand
show sticks, ligand or env
show nb_spheres, env
set h_bond_max_angle, 40
set h_bond_from_proton, 0
dist hbonds, ligand or env, ligand or env, mode=2
remove hydrogens

hide labels, hbonds
set dash_gap, 0.4
set dash_radius, 0.05
set dash_length, 0.3
hide labels, hbonds
color grey50, hbonds

color gold, ele C and ligand
color grey70, ele C and env

show cartoon, chain A
set cartoon_color, grey70
set cartoon_transparency, 0.8
bg white
orient ligand
reinitialize

load 4eiy_protoss.pdb
select ligand, chain A and resn ZMA

hide all
select env, byres (ligand around 5.0) and not resn ligand
show sticks, ligand or env
set h_bond_max_angle, 40
set h_bond_from_proton, 1
dist hbonds, ligand or env, ligand or env, mode=2

hide labels, hbonds
set dash_gap, 0.4
set dash_radius, 0.05
set dash_length, 0.3
hide labels, hbonds
color grey50, hbonds

color gold, ele C and ligand
color grey70, ele C and env

show cartoon, chain A
set cartoon_color, grey70
set cartoon_transparency, 0.8
bg white
orient ligand

Copy-paste the procedure to a new pml script file that you generate in a text editor: my_image.pml

Orient the structure with the mouse to find a view that shows the most important interactions of the ligand. Adjust the clip and translate the view along the z-axis using ctrl-mouse-wheel to get a good view. If necessary, omit "unimportant" residues that are in front of the ligand.

Replace the selection command for env in your script with the following three lines. Show only side chains for residues that interact with their side chains only and specify them in the first line. 

select omit_resids, chain A and resid 1000+2000
select mc_resids, chain A and resid 1001+2001
select env, (((byres (ligand around 5.0) and not ligand) and not (polymer and name C+N+O)) or mc_resids) and not omit_resids

If the receptor is not chain A you need to change selections in the rest of the pml script file (e.g. show cartoon, selection).

When you are satisfied with the view, generate the image and save it to your hard disk:

util.performace(0) ; #this corresponds to: Menu: Display, Quality, Maximum quality

Zoom the image, such that it fills the vertical dimensions of your PyMOL graphics window. Start with command: "draw 1000,1000". Shift the structure (middle mouse button pressed) to the center and adjust the y pixel value of the "draw x,y" command such that the structure fills the complete image and is centered.

Save the image to a file which has the same root name as your pml script: png my_image.png

Examples to try

If not available as linked protoss protonated structure here, use proteins.plus to download and add hydrogens.

4eiy, the structure of the adenosine receptor that we used already a lot.
7yon, a cryoEM structure with a peptide agonist (large ligand, difficult).
7piu, cryo-EM structure of the agonist setmelanotide bound to the active melanocortin-4 receptor (MC4R) in complex with the heterotrimeric Gs protein at 2.6 A resolution.
3rfm, thermostabilised adenosine A2A receptor in complex with caffeine

Back to PyMOL tutorial main page.