Dear Charles,
Thanks a lot. I am looking forward to receive the protocol.
As I said before, I am now attaching the anneal.py to calculate structures
without RDC. Could you please go through to check why the calculation takes so
long. 

Best wishes,
Hongyan
Quoting [EMAIL PROTECTED]:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> 
> Hello Hongyan--
> 
> sorry for my slow response.
> 
> > My starting structures dose not give a good fit to RDC (PALES SVD
> > simulation only gave regression of 0.75). I do not have a protocol of
> > refining Da, Rh using gridsearch as described by Clores et al in
> > J. Magn. Reson. 133, 216-221 (1998). Could you please advice me where
> > to get this protocol?
> 
> That procedure was not coded within Xplor-NIH. However, I intend to
> implement it soon- I'll send you an email when it's ready.
> 
> best regards--
> Charles
> -----BEGIN PGP SIGNATURE-----

> Version: GnuPG v1.4.6 (GNU/Linux)
> Comment: Processed by Mailcrypt 3.5.8 <http://mailcrypt.sourceforge.net/>
> 
> iD8DBQFGG7umPK2zrJwS/lYRAo6UAJ9CJJVi3qOqsl6/2Ln4dWrvziy97QCfTHgB
> TGYMVR4pPaet5DTt2iIo+Qs=
> =OhOi
> -----END PGP SIGNATURE-----
> 


Dr. Hongyan Li
Department of Chemistry
The University of Hong Kong
Pokfulam Road
Hong Kong

# slow cooling protocol in torsion angle space for protein G. Uses 
# NOE, RDC, J-coupling restraints.
#
# CDS 5/14/03
# modified 7/2/03
#

# this checks for typos on the command-line. User-customized arguments could
# also be specified.
#
xplor.parseArguments()

outFilename = "sam-nordc_STRUCTURE.sa"
numberOfStructures=100
seed=3421
simWorld.setRandomSeed(seed)   #set random seed

command = xplor.command

#
# import necessary modules
#
from xplorPot import XplorPot
#from rdcPotTools import create_RDCPot
#from varTensorTools import create_VarTensor
#import varTensorTools
from ivm import IVM
from potList import PotList
import protocol

#
# generate PSF data from sequence and initialize the correct parameters.
#
from psfGen import seqToPSF
seqToPSF(open('sam.seq').read())

#
# generate a random extended structure with correct covalent geometry
#
protocol.genExtendedStructure("sam-nordc_extended_%d.pdb" % seed)

#
# a PotList conatins a list of potential terms. This is used to specify which
# terms are active during refinement.
#
potList = PotList()

# orientation Tensor - used with the dipolar coupling term
#
#oTensor = create_VarTensor("oTensor")
#oTensor.setDa(-11)
#oTensor.setRh(0.38)

# dipolar coupling restraints for protein amide NH.  
#
#rdc = create_RDCPot(name="rdc",
#                    oTensor=oTensor,
#                    file="sam-nordc.tbl")
#rdc.setPotType('square')
#rdc.setThreshold(0.5)
#print rdc.info()
#potList.append(rdc)


# set up NOE potential
from noePotTools import create_NOEPot
noe = create_NOEPot("noe",file="sam-noe.tbl")
noe.setPotType( "soft" )
noe.setRSwitch( 0.5 )
noe.setAsympSlope( 1. )
noe.setSoftExp(1.)
noe.setThreshold(0.5)
print noe.info()
potList.append(noe)

# set up J coupling
#from jCoupPotTools import create_JCoupPot
#jCoup = create_JCoupPot("jcoup",file="sam_coup.tbl",
#                        A=6.98,B=-1.38,C=1.72,phase=-60)
#jCoup.setThreshold(1.0)
#print jCoup.info()
#potList.append(jCoup)

# Set up dihedral angles
protocol.initDihedrals("sam_talos.tbl",
                       scale=5,          #initial force constant
                       useDefaults=0)
potList.append( XplorPot('CDIH') )

# radius of gyration term - not used here.
#
#protocol.initCollapse("resid 17:78",
#                      scale=25.0,
#                      Rtarget=14.0)
#potList.append( XplorPot('COLL') )



#
# setup parameters for atom-atom repulsive term. (van der Waals-like term)
#
protocol.initNBond(nbxmod=4,  # Can use 4 here, due to IVM dynamic
                   repel=0.5) # initial effective atom radius
potList.append( XplorPot('VDW') )

#
# annealing settings
#

init_t  = 3500.     # Need high temp and slow annealing to converge
final_t = 100

cool_steps = 15000   # slow annealing


#
# initial force constant settings
#
ini_rad  = 0.4 
ini_con = 0.004
ini_ang = 0.4
ini_imp = 0.4     # was 0.1
ini_noe = 1       # was 150
#ini_sani = 0.01
     
    
potList.add( XplorPot("BOND") )
potList.add( XplorPot("ANGL") )
potList.add( XplorPot("IMPR") )
      

#
# potential terms used for high-temp dynamics
#
hitemp_potList = PotList()
hitemp_potList.add( XplorPot("BOND") )
hitemp_potList.add( XplorPot("ANGL") )
hitemp_potList.add( XplorPot("IMPR") )
hitemp_potList.add( XplorPot("CDIH") )
hitemp_potList.add( noe   )
#hitemp_potList.add( jCoup )
#hitemp_potList.add( rdc   )

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

#
# IVM setup
#

dyn = IVM()

# Minimize in Cartesian space with only the covalent constraints.
# Note that bonds, angles and many impropers can't change with the 
# internal torsion-angle dynamics
#  breaks bonds topologically - doesn't change force field

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()

#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)


def setConstraints(k_ang,k_imp):
    command("""
      constraints 
         interaction (not resname ANI) (not resname ANI) 
            weights * 1 angl %f impr %f
         end 
      end""" % ( k_ang, k_imp) )
    return


def structLoopAction(loopInfo):
    #
    # this function calculates a single structure.
    #

    #
    # set some high-temp force constants
    #
    noe.setScale( 20 )       #use large scale factor initially
   # rdc.setScale( ini_sani ) 
    command("parameters  nbonds repel %f end end" % ini_rad)
    command("parameters  nbonds rcon %f end end" % ini_con)
    setConstraints(ini_ang, ini_imp)
    # Initial weight--modified later
    command("restraints dihedral scale=5. end")

    #
    # high temp dynamics
    # note no Van der Waals term
    #

    init_t = 3500
    ini_timestep = 0.010
    bath = init_t
    timestep = ini_timestep

    protocol.initDynamics(dyn,
                          potList=hitemp_potList, # potential terms to use
                          bathTemp=bath,
                          initVelocities=1,
                          finalTime=20,
                          printInterval=100)

    dyn.setETolerance( bath/100 )  #used to det. stepsize. default: bath/1000 
    dyn.run()

    # increase dihedral term 
    command("restraints dihedral scale=200. end")

    #
    # cooling and ramping parameters
    #

    global k_ang, k_imp

    # MultRamp ramps the scale factors over the specified range for the 
    # simulated annealing.
    from simulationTools import MultRamp
    k_noe = MultRamp(ini_noe,30.,"noe.setScale( VALUE )")
   # k_rdc = MultRamp(ini_sani,1.,"rdc.setScale( VALUE )")
    radius = MultRamp(ini_rad,0.8,
                      "command('param nbonds repel VALUE end end')")
    k_vdw  = MultRamp(ini_con,4, "command('param nbonds rcon VALUE end end')")
    k_ang  = MultRamp(ini_ang,1.0)
    k_imp  = MultRamp(ini_imp,1.0)
    
    protocol.initDynamics(dyn,
                          potList=potList,
                          bathTemp=bath,
                          initVelocities=1,
                          finalTime=2,
                          printInterval=100,
                          stepsize=timestep)

    from simulationTools import AnnealIVM
    AnnealIVM(initTemp =init_t,
              finalTemp=100,
              tempStep =25,
              ivm=dyn,
              rampedParams = [k_noe,radius,k_vdw,k_ang,k_imp],
              extraCommands= lambda notUsed: \
                setConstraints(k_ang.value(),
                               k_imp.value())).run()
              
              
    #
    # final torsion angle minimization
    #
    protocol.initMinimize(dyn,
                          printInterval=50)
    dyn.run()

    #
    # 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, FinalParams
StructureLoop(numStructures=numberOfStructures,
              pdbTemplate=outFilename,
              structLoopAction=structLoopAction,
              genViolationStats=1,
              averagePotList=potList,                
	      averageTopFraction=0.2, #report only on best 20% of structs            
              averageFilename="ave.pdb",    #generate average structure
              averageFitSel="name CA",
              averageCompSel="not hydro"        ).run()
_______________________________________________
Xplor-nih mailing list
[email protected]
http://dcb.cit.nih.gov/mailman/listinfo/xplor-nih

Reply via email to