Rosetta Holes API
The RosettaHoles API runs the RosettaHoles application (See RosettaHoles for details) on an input PDB file. RosettaHoles is an application which identifies voids in protein structures. It is useful for evaluating the quality of protein designs, among other things.
Examples
lev engine submit rosetta-holes input.pdb
Inputs
--pdb-file
- Input PDB file - cleaned and/or relaxed (especially for any PDB not originally generated by Rosetta)
- Prepare a clean PDB using the Clean PDB API
Outputs
*_cavs.pdb
- PDB file with voids indicated as virtual AToms
- The file will be prefixed by the file name of the original input pdb.
logs.txt
- Rosetta logs containing a variety of scoring information
Notes
Interpreting Output
The holes in the output PDB are indicated using virtual HETATM
records at the end of the PDB file, all of which have the atom name V
, the resid CAV
and chain Z
. The radius of each void in Å is stored in the b-factor column of the PDB file.
The script below can be loaded into pymol to add some useful commands for interacting with the virtualAtoms. In particular the showPacking
command will set the radii of all protein atoms to the vdw radius used by Rosetta, and will set the radii of the CAV
virtual atoms to the values set in the b-factors.
from pymol import cmd
def useRosettaRadii():
cmd.alter("element C", "vdw=2.00")
cmd.alter("element N", "vdw=1.75")
cmd.alter("element O", "vdw=1.55")
cmd.alter("element H", "vdw=1.00")
cmd.alter("element P", "vdw=2.15")
cmd.alter("element S", "vdw=1.90")
cmd.alter("element RE", "vdw=1.40")
cmd.alter("element CU", "vdw=1.40")
cmd.set("sphere_scale", 1.0)
def expandRadii(delta=1.0, sel='all'):
for a in cmd.get_model(sel).atom:
r = float(a.vdw) + float(delta)
cmd.alter("index "+a.index,'vdw='+str(r))
cmd.rebuild(sel,"spheres")
def contractRadii(delta=1.0, sel='all'):
for a in cmd.get_model(sel).atom:
r = float(a.vdw) - float(delta)
cmd.alter("index "+a.index,'vdw='+str(r))
cmd.rebuild(sel,"spheres")
def useTempRadii(sel="all"):
for ii in range(30):
radius = "%0.1f"%(float(ii+1)/10)
cmd.alter(sel+" and b="+radius,"vdw="+radius)
cmd.rebuild()
def showpacking(sel="all"):
useRosettaRadii()
useTempRadii(sel+" and resn CAV")
cmd.hide('everything', sel+" and resn CAV" )
cmd.show('spheres', sel+" and resn CAV" )
cmd.extend('useRosettaRadii', useRosettaRadii)
cmd.extend('expandRadii',expandRadii)
cmd.extend('contractRadii',contractRadii)
cmd.extend("useTempRadii",useTempRadii)
cmd.extend("showpacking",showpacking)