Dear all,

  I'm now refining a G-quadruplex structure using a modified refine.py
based on the script in dir egiput/dna_refi of xplor-NIH. The input data
is only noe constraints.

My question is if I use Lennard-Jones and electrostatics and add the lines
in refine.py:

rampedParams.append( StaticRamp("""xplor.command('''param nbonds
                                                          atom
                                                          repel=0.8
                                                          wmin=0.01
                                                          nbxmod=3
                                                          cutnb=11.5
                                                          cctonnb=9.5
                                                          ctofnb=10.5
                                                          tolerance=0.5
                                                          rdie
                                                          vswitch
                                                          switch
                                end end''')"""))

the energies for noe,vdw, bond,angle etc. are  very high and there're lots
of noe violations(> 0.5) which are zero in the initial calculation. But if
use :

protocol.initNBond(cutnb=4.5)
potList.append( XplorPot("VDW") )
potList.append( XplorPot("elec") )

rampedParams.append( MultRamp(0.9,0.78,
                              "xplor.command('param nbonds repel VALUE end
end')") )
rampedParams.append( MultRamp(.004,4,
                              "xplor.command('param nbonds rcon VALUE end
end')") )

The output is fine.But the program will give the message:
InternalDynamics::step: large timestep detected. Halving.

Would you please give any explanations and suggestions?
Thanks in advance!

Best
Dong

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

below is part of refine.py:


protocol.initNBond(cutnb=4.5)
potList.append( XplorPot("VDW") )
potList.append( XplorPot("elec") )

rampedParams.append( MultRamp(0.9,0.78,
                              "xplor.command('param nbonds repel VALUE end
end')") )
rampedParams.append( MultRamp(.004,4,
                              "xplor.command('param nbonds rcon VALUE end
end')") )


#highTempParams.append( StaticRamp("""protocol.initNBond(cutnb=100,
#                                                        tolerance=45,
#                                                        #repel=1.2,
#                                                        #selStr='name p'
#                                                        )"""))


for name in ("bond","angl","impr"):
    potList.append( XplorPot(name) )
    pass
rampedParams.append( MultRamp(0.4,1.0,"potList['ANGL'].setScale(VALUE)"))
rampedParams.append( MultRamp(0.1,1.0,"potList['IMPR'].setScale(VALUE)"))


from ivm import IVM
dyn = IVM()
protocol.initDynamics(dyn,potList=potList)
protocol.torsionTopology(dyn)


# Give atoms uniform weights, except for the anisotropy axis
from atomAction import SetProperty
AtomSel("not resname ANI").apply( SetProperty("mass",100.) )
#varTensorTools.massSetup(media.values(),300)
AtomSel("all            ").apply( SetProperty("fric",10.) )


##
## minc used for final cartesian minimization
##
from selectTools import IVM_groupRigidSidechain
minc = IVM()
protocol.initMinimize(minc,potList=potList)
IVM_groupRigidSidechain(minc)
protocol.cartesianTopology(minc,"not resname ANI")
#varTensorTools.topologySetup(minc,media.values())


init_t1 = 20000
init_t2 = 3000

from simulationTools import AnnealIVM
anneal1= AnnealIVM(initTemp =init_t1,
                  finalTemp=init_t2,
                  tempStep =500,
                  ivm=dyn,
                  rampedParams = rampedParams)


anneal2= AnnealIVM(initTemp =init_t3,
                  finalTemp=25,
                  tempStep =25,
                  ivm=dyn,
                  rampedParams = rampedParams)

# initialize parameters for initial minimization.
InitialParams( rampedParams )

# initial minimization
InitialParams( highTempParams )

protocol.initMinimize(dyn,
                      potList=[potList['CDIH'],potList['IMPR']],
                      numSteps=50)
dyn.run()

####################################################################

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


def calcOneStructure(loopInfo):


    InitialParams( rampedParams )
    InitialParams( highTempParams )
    protocol.initDynamics(dyn,
                           initVelocities=1,
                           bathTemp=init_t2,
                           potList=potList,
                           finalTime=50)
    dyn.setETolerance( init_t2/100)
    dyn.run()

    InitialParams( rampedParams )
    protocol.initDynamics(dyn,
                          finalTime=0.5,
                          numSteps=0,
                          #eTol_minimum=0.001
                          )

    anneal1.run()
    anneal2.run()
    #
    # torsion angle minimization
    #
    protocol.initMinimize(dyn,numSteps=5000)
    dyn.run()

    ##
    ##all atom minimization
    ##
    protocol.initMinimize(minc,potList=potList,numSteps=3000)
    minc.run()

    #
    # perform analysis and write structure
    loopInfo.writeStructure(potList,crossTerms)
    pass


from simulationTools import StructureLoop
StructureLoop(numStructures=numberOfStructures,
              startStructure=startStructure,
              structLoopAction=calcOneStructure,
              pdbTemplate=outFilename,
              genViolationStats=1,
              averageFilename="average_min.pdb",
              #averageFitSel="",
              averageRefineSteps=15,
              averageTopFraction=0.3,
              averagePotList=potList).run()



Reply via email to