deerPotTools
index


 
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=None, probWidth=0.7, distanceSigmoidWidth=None, fitExpt=True, minFrac=0.1, varyWeights=False, zeroFit=False, dropInterval=0, minR=1.0, deltaR=1.0, maxR=100, tagInfo=None, tagSim=None, **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. If specified, 
                         this value overrides that specified in the 
                         tagCoord file. If neither is specified, it is set
                         to 3.2 angstroms.
  distanceSigmoidWidth - parameter used to compute distance-based weight
                         based on tag atom distance to atoms in nonTagSel.
                         If specified, this value overrides that specified
                         in the tagCoord file. If neither is specified, it
                         is set to 3 angstroms.
  probWidth            - width of the distance distribution contribution
                         from a single pair of rotamers. If specified, this
                         value overrides that specified in the tagCoord 
                         file. If neither is specified, it is set to
                         0.7 angstroms.
 
  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.
  varyWeights          - configure the DEERPot instance to allow the 
                        population values of the rotater contributions
                        to vary with the use of pseudo atoms using the
                        aWeights facility. The value of the argument
                        can be an aWeights.AWeights object, or True
                        in which case, an object is created. [False] 
  minFrac              - if varyWeights=True, set the minimum allowed 
                        weight as a fraction of 1/N. For instance, if 
                        minFrac=0.1 and there are 20 rotamers the minimum 
                        population would be 0.1/20 [0.1].
  tagInfo              - pre-generated tagTool.TagInfo object.
  tagSim               - pre-generated tagSimualtion.TagSimulation
                        object.
 
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
 
The verbose argument can be a boolean, or an integer, where larger value 
results in more verbose output.
doTestGrad(x, cost, dcost, eps=1e-06)
fitBackgroundModdepth(restraint, normalize=False, absSlopeVals=(5,), modDepthVals=(0.1, 0.2, 0.3, 0.4, 0.5), 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 modDepthVals and negative slope
values of absSlopeVals in units of 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.