Hi Taylor--
>
> I am trying to dock two proteins that transiently interact using
> intermolecular
> restraints in the form of PCS (using the RDC potential in the python module)
> and
> PRE.
For docking, you can take your structure calculation and add the
snippet below at the beginning of the calcOneStructure function. This
snippet randomizes orientation and position of one subunit relative to
the other and then performs gradient minimization five times. The
structure with the lowest energy is used as a starting structure which
will be subsequently refined using the simulated annealing protocol
already present in that function.
Sometimes some modifications are necessary to this initial docking
protocol.
>
> The restraints are scaled by the population of the complex which is
> small but we think we have a specific interaction. The dominant
> species in solution is the free protein which does not give rise to
> PRE or PCS. I would like to try to deal with this by using an
> ensemble approach to optimize the population of the two species and
> model the complex during refinement.
I'm not certain why an ensemble approach is necessary in this case as
the free protein can be ignored, and the unknown concentration of the
complex can be handled by letting the PCS prefactor float, but perhaps
I'm missing something.
Because of the unknown prefactor you may need a term to pull the
subunits together: the Vgyr (or Rgyr) term might be used for this with
a small force constant, and a generous target value.
Please let me know if you require further assistance.
best regards--
Charles
# initialize parameters for high temp dynamics.
InitialParams( rampedParams )
# high-temp dynamics setup - only need to specify parameters which
# differfrom initial values in rampedParams
InitialParams( highTempParams )
atomPos0 = xplor.simulation.atomPosArr()
atomPosMin = xplor.simulation.atomPosArr()
energyMin = 1e30 # big number
k=0 # set up initial minimaizing loop
while k < 5:
xplor.simulation.setAtomPosArr(atomPos0)
from monteCarlo import randomizeTorsions
randomizeTorsions(dyn)
from atomAction import randomizeDomainPos
randomizeDomainPos("segid B") # randomize pos/orientation of Arf1
# set torsion angles from restraints, if available
#
#from torsionTools import setTorsionsFromTable
#setTorsionsFromTable(dihedralRestraintFilename)
protocol.initMinimize(dyn,potList=[noe,repel],
printInterval=50)
dyn.run() ; dyn.run()
protocol.initMinimize(dyn,potList=potList,
printInterval=50)
dyn.run() ; dyn.run()
print 'iter: %d energy: %f' % (k,potList.calcEnergy())
if potList.calcEnergy() < energyMin :
atomPosMin = xplor.simulation.atomPosArr()
energyMin = potList.calcEnergy()
pass
k += 1
pass
xplor.simulation.setAtomPosArr(atomPosMin)
#protocol.fixupCovalentGeom(maxIters=100,useVDW=1)
protocol.writePDB(loopInfo.filename()+".init")
_______________________________________________
Xplor-nih mailing list
[email protected]
https://dcb.cit.nih.gov/mailman/listinfo/xplor-nih