Result table
| image | mrblock_id | pdb_id | bmrb_id | cing | stage | position | program | type |
|
|
616762 | 5uf3 RC | 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()