
OBJECTIVE: This tutorial will demonstrate how to use spock atom and surface distance calculations to define a subunit interface.
Concepts introduced: distance calculations (§ 6.6.1); atom distance property (§ 5.2.4); projected commands (§ 5.4.1).
Start spock and type
fetch=1brl.pdb
to load the dimeric protein bacterial luciferase. We wish to generate a list of residues in the subunit interface of this protein. Just to pretty the view a little, make sure worms are turned on in the display menu and type
wc=$red,m=1;wc=$blue,m=2
This will color the
subunit red and the
subunit blue.
You may wish to rotate the view a bit until you're looking down the
subunit interface.
Now let's do the distance calculation for the atoms. Since we're eventually going to want to select atoms which are close based on their distance property, we should initially set all atoms to have a high value for their distance property. Do this by typing
set distance=1000
Now tear off the Calculate -> Distance menu. We want to calculate the distance of the first molecule from the second and the second molecule from the first, so turn on the Bi-Directional toggle in the menu to make the calculations run in both directions. Now choose Atom to atom from the menu. Enter
| From atoms | m=1 |
| To atoms | m=2 |
Wait a few seconds for spock to do the calculations. The results of these calculations have been stored in the distance property field of each atom. Let's hide those atoms which are far from an atom in the other molecule. Type
bc=0,d>10
This hides all atoms whose distance property value is greater than 10 Ångstroms. This is a very liberal definition of the interface. Let's narrow it down some:
bc=0;d>5
That's better. Now any atom which is within 5 Ånsgtroms of the other subunit is highlighted. Zoom in and take a closer look at the interface region. Notice that there are places where there are bonds seem to be floating in space because the rest of the residue to which they belong is not turned on. This is where the projection syntax described in §5.4.1 comes in handy. What we really want is the residues which have any atom within contact distance of the other subunit. Type
bc=0
to turn off all bonds. Since typical radii are 1.7 Å, to find close atoms, we should double that, and add a bit of play, say 3.5 Å. Now turn back all residues which have a single atom within 3.5 Åof the other subunit. Type
bc=d,(d<3.5)->r
The ->r in that selection string means that if any atom in the preceding set of parenthesis is selected, select all atoms in the residue which contains the first atom. You can rotate and zoom the molecule now to look at the interacting residues.
As in the previous tutorial, we can get a list of the interacting residues with the list command. Set the list format to include distances by typing
set list format
and enter
| List format | * |
| Variable list | id,d,dpid |
(d tells spock to print the distance property, and `` dpid the distance partner identity, the atom in the other molecule to which a given atom is closest). Now type
list,bc<>0
to get a list of all the atoms which are currently colored; these are the interface atoms.
We can do a similar calculation for the surfaces. We'll need to make two surfaces here, one for each molecule. Type
makesurf,m=1.
Ordinarily we'd accept 65 for the resolution, but since these calculations are slow, we'll speed things up for the tutorial by entering 33 here. Type
makesurf,m=2
to make the second surface and again enter 33 as the default grid resolution. Say ``Yes'' when asked if you wish to add the new surface, otherwise the old surface will be deleted. Color the surfaces with the command
vc=52,m=1; vc=54,m=2
Now, under the Calculate menu, chose Surface to surface. Enter
| From surface points | s=1 |
| To surface points | s=2 |
To tell spock to use the first and second surface, respectively. Wait for the calculation to complete. Now type
vc=0, vd>10
to turn off all surface that's not within 10 Åof a surface point in the other subunit.
