Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

The RosettaHoles API runs the RosettaHoles application (described here: https://pubmed.ncbi.nlm.nih.gov/19177366/ ) 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.

It is recommended that the Clean PDB API be used to pre-process any PDB file which was not originally generated by Rosetta.

Running RosettaHoles

RosettaHoles can be run with the following command:

cyrus submit rosetta-holes input.pdb

The job takes a few minutes to run and produces two outputs:

  • a PDB file with voids indicated as virtual Atoms

  • the rosetta logs, which contain a variety of scoring information

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)
  • No labels