RDC Refinement with XPLOR-NIH
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 structures to improve quality,
- To provide constraints as a part of an initial structure determination.
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. 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 XPLOR-NIH software can be download from the following URL: http://nmr.cit.nih.gov/xplor-nih/
Files Need to Run XPLOR-NIH
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.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)