RDC Refinement with XPLOR-NIH: Difference between revisions

From NESG Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 15: Line 15:
::- Multidimensional torsion angles  
::- Multidimensional torsion angles  
::- Backbone hydrogen bonding database (Optional)
::- Backbone hydrogen bonding database (Optional)
<br>  
<br>  


Line 28: Line 27:
:'''prot.psf''' and '''prot.pdb''' Startup psf and pdb files were generated using the lowest energy structure from CYANA.
:'''prot.psf''' and '''prot.pdb''' Startup psf and pdb files were generated using the lowest energy structure from CYANA.


====== Generate NOE Restraint Table ======  
====== Generate NOE Restraint Table ======
An example of the NOE restraint table in XPLOR format is shown below (converted from CYANA upl file using a CYANA to XPLOR conversion script):
 
An example of the NOE restraint table in XPLOR format is shown below (converted from CYANA upl file using a CYANA to XPLOR conversion script):  
<pre>assign ( resid    2 and name HA  )  ( resid    2 and name HD*  )  4.00  2.20  1.00
<pre>assign ( resid    2 and name HA  )  ( resid    2 and name HD*  )  4.00  2.20  1.00
assign ( resid    2 and name HA  )  ( resid    2 and name HG1  )  4.00  2.20  1.00
assign ( resid    2 and name HA  )  ( resid    2 and name HG1  )  4.00  2.20  1.00
Line 37: Line 37:
assign ( resid    2 and name HA  )  ( resid    2 and name HG*  )  3.00  1.20  0.50
assign ( resid    2 and name HA  )  ( resid    2 and name HG*  )  3.00  1.20  0.50
</pre>  
</pre>  
====== Generate Dihedral Angle Table  ======


====== Generate Dihedral Angle Table ======
An example of the Dihedral angle restraint in XPLOR format is shown below (Use CYANA for format conversion):  
An example of the Dihedral angle restraint in XPLOR format is shown below (Use CYANA for format conversion):  
<pre>assign ( resid    7 and name N    )  ( resid    7 and name CA  )  
<pre>assign ( resid    7 and name N    )  ( resid    7 and name CA  )  
Line 46: Line 46:
assign ( resid    8 and name N  )  ( resid    8 and name CA  )  
assign ( resid    8 and name N  )  ( resid    8 and name CA  )  
       (resid    8 and name C    )  ( resid    9 and name N    )  1  -41.00  22.00 2
       (resid    8 and name C    )  ( resid    9 and name N    )  1  -41.00  22.00 2
</pre>
</pre>  
====== Generate RDC Table  ======


====== Generate RDC Table ======
An example of the RDC table in XPLOR format is shown below:  
An example of the RDC table in XPLOR format is shown below:  
<pre># For NH Coupling
<pre># For NH Coupling
Line 80: Line 80:
       ( resid 4    and name N  )  -3.9435  1.5
       ( resid 4    and name N  )  -3.9435  1.5
</pre>  
</pre>  
====== Generate RCSA Restraint Table  ======


====== Generate RCSA Restraint Table ======
An example of the RCSA table in XPLOR format is shown below:  
An example of the RCSA table in XPLOR format is shown below:  
<pre> #For N RCSA
<pre> #For N RCSA
Line 99: Line 99:
(resid 8 and name C) (resid 8 and name O) (resid 9 and name N) -8.400  13.333
(resid 8 and name C) (resid 8 and name O) (resid 9 and name N) -8.400  13.333
</pre>  
</pre>  
&lt;/pre&gt;
&lt;/pre&gt;  


===== Protocol for RDC Refinement  =====
===== Protocol for RDC Refinement  =====

Revision as of 13:45, 15 March 2012

Brief Description

The angular dependence of RDCs and RCSAs can provide valuable structural information that complements NOE distance restraints.
RDCs and RCSAs 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 RDCs and RCSAs 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
prot_dihe.tbl Dihedral angle restraint
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.
Generate NOE Restraint Table

An example of the NOE restraint table in XPLOR format is shown below (converted from CYANA upl file using a CYANA to XPLOR conversion script):

assign ( resid    2 and name HA   )   ( resid    2 and name HD*  )   4.00  2.20  1.00
assign ( resid    2 and name HA   )   ( resid    2 and name HG1  )   4.00  2.20  1.00
assign ( resid    2 and name HA   )   ( resid    2 and name HE*  )   4.00  2.20  1.00
assign ( resid    2 and name HD*  )   ( resid    2 and name HE*  )   3.00  1.20  0.50
assign ( resid    2 and name HA   )   ( resid    2 and name HG2  )   4.00  2.20  1.00
assign ( resid    2 and name HA   )   ( resid    2 and name HG*  )   3.00  1.20  0.50
Generate Dihedral Angle Table

An example of the Dihedral angle restraint in XPLOR format is shown below (Use CYANA for format conversion):

assign ( resid    7 and name N    )   ( resid    7 and name CA   ) 
       (resid    7 and name C    )   ( resid    8 and name N    )  1  -34.00   20.00 2
assign ( resid    7 and name C   )   ( resid    8 and name N    ) 
       (resid    8 and name CA   )   ( resid    8 and name C    )  1  -71.00   34.00 2
assign ( resid    8 and name N   )   ( resid    8 and name CA   ) 
       (resid    8 and name C    )   ( resid    9 and name N    )  1  -41.00   22.00 2
Generate RDC Table

An example of the RDC table in XPLOR format is shown below:

# For NH Coupling
assign ( resid 500  and name OO  )
       ( resid 500  and name Z   )
       ( resid 500  and name X   )
       ( resid 500  and name Y   )
       ( resid 3    and name N   )
       ( resid 3    and name HN   )  2.586  1.5

assign ( resid 500  and name OO  )
       ( resid 500  and name Z   )
       ( resid 500  and name X   )
       ( resid 500  and name Y   )
       ( resid 4    and name N   )
       ( resid 4    and name HN   )  7.785  1.5

# For NC Coupling, normalized to NH magnitude
assign ( resid 500  and name OO  )
       ( resid 500  and name Z   )
       ( resid 500  and name X   )
       ( resid 500  and name Y   )
       ( resid 2    and name C   )
       ( resid 3    and name N   )  -9.26475  1.5

assign ( resid 500  and name OO  )
       ( resid 500  and name Z   )
       ( resid 500  and name X   )
       ( resid 500  and name Y   )
       ( resid 3    and name C   )
       ( resid 4    and name N   )  -3.9435  1.5
Generate RCSA Restraint Table

An example of the RCSA table in XPLOR format is shown below:

 #For N RCSA
assign (resid 500 and name OO ) (resid 500 and name Z) (resid 500 and name X ) (resid 500 and name Y )
(resid 2 and name C) (resid 3 and name N) (resid 3 and name HN) 29.040  24.750
assign (resid 500 and name OO ) (resid 500 and name Z) (resid 500 and name X ) (resid 500 and name Y )
(resid 3 and name C) (resid 4 and name N) (resid 4 and name HN) 62.205  24.750
assign (resid 500 and name OO ) (resid 500 and name Z) (resid 500 and name X ) (resid 500 and name Y )
(resid 4 and name C) (resid 5 and name N) (resid 5 and name HN) 55.110  24.750

# For C RCSA
assign (resid 500 and name OO ) (resid 500 and name Z) (resid 500 and name X ) (resid 500 and name Y )
(resid 4 and name C) (resid 4 and name O) (resid 5 and name N) -24.400  13.333
assign (resid 500 and name OO ) (resid 500 and name Z) (resid 500 and name X ) (resid 500 and name Y )
(resid 7 and name C) (resid 7 and name O) (resid 8 and name N) 36.533   13.333
assign (resid 500 and name OO ) (resid 500 and name Z) (resid 500 and name X ) (resid 500 and name Y )
(resid 8 and name C) (resid 8 and name O) (resid 9 and name N) -8.400   13.333

</pre>

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)