RDC Refinement with XPLOR-NIH

From NESG Wiki
Revision as of 05:53, 15 March 2012 by Hlee (talk | contribs)
Jump to navigation Jump to search
Brief Description

The angular dependence of RDCs can provide valuable structural information that complements NOE distance restraints.
RDCs can be used to:

- Validate protein structures
- Refine protein structures (current topic)
- Provide constraints as a part of an initial structure determination (CYANA 3.0 with RDC)

Here, we describe the RDC-refinement protocol using XPLOR-NIH. The python version of the refinement script was taken from the example dataset (xplor-nih-2.22/eginput/gb1_rdc/refine.py) provided by the XPLOR-NIH package (http://nmr.cit.nih.gov/xplor-nih/). The key features of this refinement are as follow:

- Variable tensor tools for floating the RDC tensors during refinement
- A radius of gyration term to represent the weak packing potential
(This potential is used when the calculated structures are too loosely packed)
- Database potentials of mean force to refine against:
- Multidimensional torsion angles
- Backbone hydrogen bonding database (Optional)


Getting Started

The following files in XPLOR format are required to run the refinement:

prot_noe.tbl NOE restraint table (converted from CYANA upl file using a CYANA to XPLOR conversion script)
prot_dihe.tbl Dihedral angle restraint (Use CYANA for format conversion)
prot_rdc.tbl RDC restraint table
prot_rcsa.tbl RCSA restraint table
prot.psf and prot.pdb Startup psf and pdb files were generated using the lowest energy structure from CYANA.
Protocol for RDC Refinement

First, obtain a good estimate of the magnitude of Da and R from alignment tensors using either REDCAT or PALES program and use this as a starting point for the refinement. Then edit the following portion of the refine.py script. Note: text on the same line and following a “#” sign is not read by the XPLOR program.

#                        medium  Da   rhombicity
for (medium,Da,Rh) in [ ('t',   -6.5, 0.62),
                        ('b',   -9.9, 0.23) ]:
    oTensor = create_VarTensor(medium)
    oTensor.setDa(Da)
    oTensor.setRh(Rh)
    media[medium] = oTensor
    pass


The example below contains NH, NCO, and HNC RDCs from two different alignment media. The Da rescaling factor was used since the magnitude of the non-NH RDCs were not normalized to the magnitude of NH RDCs.

from rdcPotTools import create_RDCPot, scale_toNH
rdcs = PotList('rdc')
for (medium,expt,file,                 scale) in \
    [('t','NH' ,'tmv107_nh.tbl'       ,1),
     ('t','NCO','tmv107_nc.tbl'       ,.05),
     ('t','HNC','tmv107_hnc.tbl'      ,.108),
     ('b','NH' ,'bicelles_new_nh.tbl' ,1),
     ('b','NCO','bicelles_new_nc.tbl' ,.05),
     ('b','HNC','bicelles_new_hnc.tbl',.108)
     ]:
    rdc = create_RDCPot("%s_%s"%(medium,expt),file,media[medium])

    #1) scale prefactor relative to NH
    #   see python/rdcPotTools.py for exact calculation
    # scale_toNH(rdc) - not needed for these datasets -
    #                        but non-NH reported rmsd values will be wrong.

    #3) Da rescaling factor (separate multiplicative factor)
    # scale *= ( 1. / rdc.oTensor.Da(0) )**2
    rdc.setScale(scale)
    rdc.setShowAllRestraints(1) #all restraints are printed during analysis
    rdc.setThreshold(1.5)       # in Hz
    rdcs.append(rdc)
    pass
potList.append(rdcs)
rampedParams.append( MultRamp(0.05,5.0, "rdcs.setScale( VALUE )") )


Allow Da and R to float by using the setFreedom method associated with the medium object. To fix the peptide plane, the IVM_groupRigidBackbone tool were used (First two lines and the last line).

from selectTools import IVM_groupRigidBackbone
IVM_groupRigidBackbone(dyn)

for m in media.values():
#    m.setFreedom("fixDa, fixRh")        #fix tensor Rh, Da, vary orientation
    m.setFreedom("varyDa, varyRh")      #vary tensor Rh, Da, vary orientation
protocol.torsionTopology(dyn,oTensors=media.values())

# minc used for final cartesian minimization
#
minc = IVM()
protocol.initMinimize(minc)
IVM_groupRigidBackbone(minc)