NMR Restraints Grid

Result table
 (Save to zip file containing files for each block)

image mrblock_id pdb_id bmrb_id cing stage position program type
616762 5uf3 30224 cing 1-original 1 unknown unknown


# Restraints file 1: phagega.py
# modified by jwang 10/03/2007
# H-bond table (hbond.tbl) is seperated from 38mer_noe.tbl and set hond pot
# so far the results with minimum energy 
# @-places different in different v5 version
#
xplor.parseArguments()


# filename for output structures. This string must contain the STRUCTURE
#
outFilename = "phagega_STRUCTURE.pdb"
numberOfStructures=50                #usually you want to create at least 20 


# protocol module has many high-level helper functions.
#
import protocol

protocol.initRandomSeed(3421)   #set random seed - by time
#seed=10
command = xplor.command
protocol.initParams("nucleic")

# generate PSF data from sequence and initialize the correct parameters.
#
from psfGen import seqToPSF
seqToPSF('phagega.seq', 'rna')

# generate a random extended structure with correct covalent geometry
#  
protocol.initCoords("phagega.pdb")
protocol.covalentMinimize()
protocol.fixupCovalentGeom(maxIters=100, useVDW=1, verbose=1)


#
# a PotList conatins a list of potential terms. 
#
from potList import PotList
potList = PotList()

from simulationTools import MultRamp, StaticRamp, InitialParams

rampedParams=[]
highTempParams=[]

#
# import necessary modules
#
from xplorPot import XplorPot
from avePot import AvePot
from ivm import IVM
from rdcPotTools import create_RDCPot, scale_toNH
from varTensorTools import create_VarTensor
import varTensorTools


# orientation Tensor - used with the dipolar coupling term
#
oTensor = create_VarTensor("oTensor")
oTensor.setDa(-11.818)
oTensor.setRh(0.372)
rdc = create_RDCPot(name="rdc",
                    oTensor=oTensor,
                    file="phagega_rdc.tbl")
#scale_toNH(rdc)
rdc.setScale(1.0)
rdc.setThreshold(1.5)
print rdc.info()
potList.append(rdc)
rampedParams.append( MultRamp(0.05, 5.0, "rdc.setScale( VALUE )") )
from varTensorTools import calcTensorOrientation, calcTensor
calcTensor(oTensor)
calcTensorOrientation(oTensor)
print "Da: %7.2f    Rh: %7.3f" % (oTensor.Da() , oTensor.Rh())
# set up NOE potential
from noePotTools import create_NOEPot
noe = PotList("noe")
noePot = create_NOEPot("noeall",file="phagega_noe.tbl")
noePot.setPotType("soft")
# noePot.setScale( 1. )   # removed by jwang-05/21/2009
noe.append(noePot)

# need to be satisfied by all structures
noeHB  = create_NOEPot("noehb","phagega_hbonds.tbl",esim=xplor.simulation)
noeHB.setPotType("hard")
# noeHB.setScale(1.)       # removed by jwang-05/21/2009
noe.append(noeHB)
potList.append(noe)

print noePot.info() 
print noeHB.info()
rampedParams.append( MultRamp(2,30, "noe.setScale( VALUE )") )


# Set up dihedral angles
protocol.initDihedrals("phagega_dihedral.tbl", useDefaults=0)
potList.append(XplorPot('CDIH')) 
highTempParams.append( StaticRamp("potList['CDIH'].setScale(10)") )        
rampedParams.append( StaticRamp("potList['CDIH'].setScale(100)") )         
# set custom values of threshold values for violation calculation
#
potList['CDIH'].setThreshold( 5 )


#setup parameters for atom-atom repulsive term. (van der Waals-like term) 

protocol.initNBond(cutnb=4.5)
potList.append( XplorPot('VDW') )
rampedParams.append( StaticRamp("protocol.initNBond()") )
rampedParams.append( MultRamp(0.9,0.8,
                              "command('param nbonds repel VALUE end end')") )
rampedParams.append( MultRamp(.004,4,
                              "command('param nbonds rcon VALUE end end')") )

# 
from repelPotTools import create_RepelPot,initRepel 
repel = create_RepelPot('repel')
potList.append(repel) 
rampedParams.append( StaticRamp("initRepel(repel,use14=False)") )
rampedParams.append( MultRamp(.004,4, "repel.setScale( VALUE)") ) 
# nonbonded interaction only between CA atoms 
#highTempParams.append( StaticRamp("""initRepel(repel, use14=True, scale=0.004, repel=1.2, moveTol=45, interactingAtoms='name CA' )""") )

potList.append( XplorPot("BOND") )
potList.append( XplorPot("ANGL") )
potList.append( XplorPot("IMPR") )
potList['ANGL'].setThreshold( 5 )
potList['IMPR'].setThreshold( 5 )
rampedParams.append( MultRamp(0.4,1,"potList['ANGL'].setScale(VALUE)") )
rampedParams.append( MultRamp(0.1,1,"potList['IMPR'].setScale(VALUE)") )



#
# IVM setup
#
from ivm import IVM

dyn = IVM()


dyn.potList().add( XplorPot("BOND") )
dyn.potList().add( XplorPot("ANGL") )
dyn.potList().add( XplorPot("IMPR") )

#dyn.breakAllBondsIn("not resname ANI")
#oTensor.setFreedom("fix")
#varTensorTools.topologySetup(dyn,oTensor)

protocol.initMinimize(dyn,numSteps=1000)
dyn.run()

#
# reset ivm topology for torsion-angle dynamics
#
dyn.reset()
dyn.potList().removeAll()
protocol.torsionTopology(dyn, oTensor)

oTensor.setFreedom("fixDa, fixRh")
varTensorTools.topologySetup(dyn,oTensor)
protocol.torsionTopology(dyn)

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

from selectTools import IVM_groupRigidSidechain
IVM_groupRigidSidechain(minc)
#minc.breakAllBondsIn("not resname ANI")

oTensor.setFreedom("varyDa, varyRh")
varTensorTools.topologySetup(minc,oTensor)
protocol.cartesianTopology(minc)                  

# object which performs simulated annealing
# 
from simulationTools import AnnealIVM
init_t  = 2500.     # Need high temp and slow annealing to converge
cool = AnnealIVM(initTemp =init_t,
                 finalTemp=25,
                 tempStep =25,                        
                 ivm=dyn,
                 rampedParams = rampedParams,
                 toleranceFactor=100)


def structLoopAction(loopInfo):
    #
    # this function calculates a single structure
    #
    ##$ protocol.genExtendedStructure("tyrACL.pdb")

    # initialize parameters for high temp dynamics.
    InitialParams( rampedParams ) 
    InitialParams( highTempParams ) 

    # high-temp dynamics setup - only need to specify parameters which
    # differfrom initial values in rampedParams
    #
    protocol.initNBond(repel=1.2,
                       cutnb=100,
                       tolerance=45,
                       selStr="name CA")

    #
    # high temp dynamics
    # note no Van der Waals term
    #
    protocol.initDynamics(dyn,
                          potList=potList, # potential terms to use
                          bathTemp=init_t,
                          initVelocities=1,
                          finalTime=20,   # stops at 800ps or 8000 steps
                          stepsize=0.01,
                          numSteps=10000,
                          printInterval=100,
                          eTol_factor=0.01)
    protocol.initMinimize(dyn,numSteps=1000)
    #dyn.setMinStepSize(0)
    #dyn.setAdjustStepsize(0)
    dyn.setETolerance(init_t/100)
    dyn.setMaxDeltaE(50000)
    #dyn.setMaxCalls(5)
    dyn.run()


    #--------------------------------------------------------------------------
    # initialize parameters for cooling loop
    InitialParams( rampedParams )
# removed by jwang-05/21/2009    protocol.initNBond() 
    #
    # initialize integrator for simulated annealing
    #
    protocol.initDynamics(dyn,
                          potList=potList,
                          bathTemp=init_t,
                          initVelocities=1,
                          finalTime=.2 ,       # .2ps, whichever is less
                          stepsize=0.01,
                          numSteps=10000,
                          printInterval=100,
                          eTol_factor=0.01)
    #dyn.setMinStepSize(0)
    dyn.setETolerance(init_t/100)
    dyn.setMaxDeltaE(50000)
    #dyn.setMaxCalls(5)
    #dyn.setAdjustStepsize(0)

    # perform simulated annealing
    #
    cool.run()
              
              
    #
    # final torsion angle minimization
    #
    protocol.initMinimize(dyn,
                          potList=potList,
                          printInterval=50)
    dyn.run()

    #
    # optional cooling in Cartesian coordinates
    #
    protocol.initDynamics(minc,
                          potList=potList,
                          numSteps=500,        #at each temp: 100 steps or
                          finalTime=.4 ,       # .2ps, whichever is less
                          printInterval=100)

    #
    # final all atom minimization
    #
    protocol.initMinimize(minc,
                          potList=potList,
                          printInterval=100)
    minc.run()

    #
    # analyze and write out structure
    # 
    loopInfo.writeStructure(potList)
    pass



from simulationTools import StructureLoop
StructureLoop(numStructures=numberOfStructures,
              pdbTemplate=outFilename,
              structLoopAction=structLoopAction,
              genViolationStats=1,
              averageTopFraction=0.5, #report stats on best 50% of structs
              averageSortPots=[potList['BOND'],potList['ANGL'],potList['IMPR'],
                               noe,rdc,potList['CDIH']],
              averagePotList=potList).run()


Please acknowledge these references in publications where the data from this site have been utilized.

Contact the webmaster for help, if required. Friday, April 19, 2024 10:06:03 PM GMT (wattos1)