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


 
Tools to help create/analyze potential terms based on the difference between
a glob position computed from atomic coordinates and that supplied by a
bead model calculation.

 
Functions
       
analyze(potList)
perform analysis of GlobDiffPot terms and return nicely formatted
summary
create_GlobDiffPot(name, selection='not PSEUDO and not name H*', globSelection=None, globFilename=None, useChainID=False, psf=None, globMap=[('all', 'all', <function numElectronsWeighting at 0x7f9b6fd9e3a0>)])
Create a GlobDiffPot term based on the specified atom selection.
 
The name of the GlobDiffPot term is given by the name argument (string).
If globFilename is specified, the comparison is made with the coordinates
in that file (using globSelection).  It is an error to omit both the
globSelection and globFilename arguments.  For this potential term, the
order of globs in globSelection must match those generated from selection.
 
This potential term is based on the posSymmPot.PosSymmPot potential,
where glob coordinates are used as restraints to averages of atomic
postions. By default, the average is taken to be average position
weighted by the number of electrons per atom- each residue corresponds to
a single glob with the same segid and resid. This definition can be
altered by specifying an alternate value of globMap, a list of 2- or 3-
membered tuples. The first is used to select a subgroup of atoms for each
residue, while the second selects a single bead in the glob
representation, where each residue is represented by one or more beads.
Thus, in this current implementation a single bead cannot represent more
than a single residue. The optional third tuple member specifies a
weighting function used for computing a comparison position from the atomic
coordinates- if it is omitted, uniform weighting is implied.
 
If globFile (a string with a PDB filename) is specified, by default the
associated coordinates are loaded using protocol.loadPDB (with
deleteUnknownAtoms=True); this assumes a standard topology.  Non-standard
topology for the input PDB file can be accomodated with the psf argument,
which can be a string with the contents of a PSF file, a string with a PSF
filename, or a sequence with one of more PSF filenames.  If psf is
specified, the coordinates are loaded with protocol.initCoords, using
deleteUnknownAtoms=True. If the useChainID argument is set to True, the 
ChainID field in the glob file is used for the segment name.
 
The returned potential term has four members beyond those in a
 posSymmPot.PosSymmPot term:
 
    globFilename  - the value of the globFilename argument.
    selection     - an atomSel.AtomSel corresponding to the selection
                    argument.
    globSelection - an atomSel.AtomSel corresponding to the
                    globSelection argument.
    xsim          - a xplorSimulation.XplorSimulation generated for
                    containing glob position information if globFile is
                    specified.
loadGlobAtoms(pdbFilename, globSim, useChainID=False)
numElectronsWeighting(sel)
For the specified atomSel.AtomSel, return a normalized list
where each atom's weight is proportional to its number of electrons.

 
Data
        electronCounts = {'ADE': {"C1'": ("C1'", 'CH', 7.0, 'A', 'NUC'), 'C2': ('C2', 'CH', 7.0, 'A', 'NUC'), "C2'": ("C2'", 'CH', 7.0, 'A', 'NUC'), "C3'": ("C3'", 'CH', 7.0, 'A', 'NUC'), 'C4': ('C4', 'C', 6.0, 'A', 'NUC'), "C4'": ("C4'", 'CH', 7.0, 'A', 'NUC'), 'C5': ('C5', 'C', 6.0, 'A', 'NUC'), "C5'": ("C5'", 'CH2', 8.0, 'A', 'NUC'), 'C6': ('C6', 'C', 6.0, 'A', 'NUC'), 'C8': ('C8', 'CH', 7.0, 'A', 'NUC'), ...}, 'CYT': {"C1'": ("C1'", 'CH', 7.0, 'C', 'NUC'), 'C2': ('C2', 'C', 6.0, 'C', 'NUC'), "C2'": ("C2'", 'CH', 7.0, 'C', 'NUC'), "C3'": ("C3'", 'CH', 7.0, 'C', 'NUC'), 'C4': ('C4', 'C', 6.0, 'C', 'NUC'), "C4'": ("C4'", 'CH', 7.0, 'C', 'NUC'), 'C5': ('C5', 'CH', 7.0, 'C', 'NUC'), "C5'": ("C5'", 'CH2', 8.0, 'C', 'NUC'), 'C6': ('C6', 'CH', 7.0, 'C', 'NUC'), 'N1': ('N1', 'N', 7.0, 'C', 'NUC'), ...}, 'GUA': {"C1'": ("C1'", 'CH', 7.0, 'G', 'NUC'), 'C2': ('C2', 'C', 6.0, 'G', 'NUC'), "C2'": ("C2'", 'CH', 7.0, 'G', 'NUC'), "C3'": ("C3'", 'CH', 7.0, 'G', 'NUC'), 'C4': ('C4', 'C', 6.0, 'G', 'NUC'), "C4'": ("C4'", 'CH', 7.0, 'G', 'NUC'), 'C5': ('C5', 'C', 6.0, 'G', 'NUC'), "C5'": ("C5'", 'CH2', 8.0, 'G', 'NUC'), 'C6': ('C6', 'C', 6.0, 'G', 'NUC'), 'C8': ('C8', 'CH', 7.0, 'G', 'NUC'), ...}, 'URI': {"C1'": ("C1'", 'CH', 7.0, 'U', 'NUC'), 'C2': ('C2', 'C', 6.0, 'U', 'NUC'), "C2'": ("C2'", 'CH', 7.0, 'U', 'NUC'), "C3'": ("C3'", 'CH', 7.0, 'U', 'NUC'), 'C4': ('C4', 'C', 6.0, 'U', 'NUC'), "C4'": ("C4'", 'CH', 7.0, 'U', 'NUC'), 'C5': ('C5', 'CH', 7.0, 'U', 'NUC'), "C5'": ("C5'", 'CH2', 8.0, 'U', 'NUC'), 'C6': ('C6', 'CH', 7.0, 'U', 'NUC'), 'N1': ('N1', 'N', 7.0, 'U', 'NUC'), ...}}