deerPotTools
index
/home/schwitrs/xplor/python/deerPotTools.py


 
Helper functions for creating and analyzing deerPot.DEERPot energy
terms.

 
Functions
       
analyze(potlist)
Perform analysis of DEERPot terms.
create_DEERPot(instanceName, restraints=[], verbose=True, nonTagSel='name N C CA O', paraAtomRadius=3.2, probWidth=0.7, distanceSigmoidWidth=None, fitExpt=True, varyWeights=False, zeroFit=False, dropInterval=0, minFrac=0.1, minR=1.0, deltaR=1.0, maxR=100, **kwargs)
Create a deerPot.DEERPot energy term using the specified
restraints. The restraints argument should be a list of
3-element sequences. The first two specify the atom selections of
the two tags, while the third specifies a P(r), either as a filename or as
a string containing the deer time trace; in either case the file contents
or string should contain lines in which the first two columns are
t and Trace(t), respectively. 
 
  nonTagSel            - selection for atoms which should be considered 
                         in the computation of tag weight due to overlap.
  paraAtomRadius       - radius of paramagnateic tag atom
  distanceSigmoidWidth - defaults to 3.0 angstroms.
  probWidth            - width of the distance distribution contribution
                         from a single pair of rotamers.
 
  zeroFit: scale experiment and shift input time values such that initial
           maximum is approximately 1 at time zero. This is performed
           using the function gaussianZeroFit.
  dropInterval: time interval (in micro sec) of the input experimental
                curve to omit at the end of the DEER trace.
 
The created TagSimulation instance is held in the tagSimulation member.
 
The follow optional arguments are handled by
tagPairDistTools.createTags, and documented there:
 
  numRotamers
  resname
  tagCoordFilename
  paraAtomname
  outSegidPref
doTestGrad(x, cost, dcost, eps=1e-06)
fitBackgroundModdepth(restraint, normalize=False, testGrad=False)
Given a DEERPot Restraint restraint, determine the modulation depth and
background contribution parameters which optimizes the restraint's 
score using a gradient search. When complete update restraint to contain
these new values.
 
The search proceeds as a sequence of gradient searches in modDepth and 
slope, beginning with modDepth values of (0.1,0.2,0.3,0.4,0.5) and slope
values of -5 1/usec.
 
For now, the background is represented by an exponential with slope k.
 
If normalize=True, a uniform scale factor is also determined.
 
If testGrad=True, a printout of gradient w/ respect to parameters is
printed before and after gradient minimization.
gaussianZeroFit(timeVals, expt, oneTolerance=0.005, testGrad=False)
Determine normalization and zero-time point correction.
 
Find max value of expt - then fit all values within
-t_0.. t_0 (with t_0 = -t_min) to Gaussian, repeat fit with t_0=-t_min/2
 
Return calibrated values of timeVals and expt with the maximum at t=0
with value approximately 1.
 
The oneTolerance argument specifies the maximum allowed difference between
the maximum of the fitted Gaussian and the value 1. The number of fit
data points around the experimental maximum is reduced by a factor of two
until oneTolerance is achieved.
randomizeWeights(pot, minFrac=None, verbose=False)
Randomize the rotamer populations in the DEERPot term passed as pot.
The minFrac term can be used to specify a minimum value allowed for
weights as minFrac * 1/N, where N is the number of rotamers.
 
The procedure involves randomly chosing N-1 angle values uniformly
distributed, and then encoding the weights in hyper-spherical coordinates.
It is likely that A Jacobian in this transformation prevents resulting
uniformly distributed weights.