ringGeom
index


 
Routines to calculate ring pucker and distortion.
 
It currently supports only 5-membered rings.

 
Functions
       
atan2(y, x, /)
Return the arc tangent (measured in radians) of y/x.
 
Unlike atan(y/x), the signs of both x and y are considered.
cos(x, /)
Return the cosine of x (measured in radians).
distortion(atoms)
calculate (in-plane) ring distortion coordinates. Returns
amplitude, phase as a tuple.
pucker(angles)
Calculate ring pucker amplitude and phase.
 
The amplitude and phase are returned in a (amplitude, phase)
tuple, and are as defined by:
 
C. Altona and M. Sundaralingam, JACS 94, 8205 (1972).  
 
The angles argument is a sequence with the endocyclic torsion angles (in
radians).  In the case of the sugar ring of nucleotides and nucleosides,
angles should be:
 
[nu2, nu3, nu4, nu0, nu1]
 
where nu2 is the torsion around the C2'-C3' bond, nu3, around
C3'-C4', nu4, around C4'-O4', etc.  Alternatively, angles can be a
sequence with atom.Atom instances representing the covalent
sequence of ring atoms.  For the sugar ring the atom sequence
should be:
 
[O4', C1', C2', C3', C4']
puckerRao(angles)
Calculate ring pucker amplitude and phase according to an
alternate formula.
 
The amplitude and phase are retuned in a (amplitude, phase) tuple,
and are as defined by:
 
S.T. Rao, E. Westhof and M. Sundaralingam, Acta Cryst. A37,
421-425 (1981). 
 
The angles argument is a sequence with the endocyclic torsion angles (in
radians).  In the case of the sugar ring of nucleotides and nucleosides,
angles should be:
 
[nu2, nu3, nu4, nu0, nu1]
 
where nu2 is the torsion around the C2'-C3' bond, nu3, around
C3'-C4', nu4, around C4'-O4', etc.  Alternatively, angles can be a
sequence with atom.Atom instances representing the covalent
sequence of ring atoms.  For the sugar ring example the atom
sequence should be:
 
[O4', C1', C2', C3', C4']
puckerRao_all(atom_names)
Calculate ring pucker amplitude and phase for all rings in the
structure. 
 
This function returns a list with (segid, resid, ((amplitude,
phase)) tuples, with the ring amplitude and phase in the specified
segment and residue defined by [S.T. Rao, E. Westhof and
M. Sundaralingam, Acta Cryst. A37, 421-425 (1981)] (and calculated
with the pucker2() function).
 
atom_names is a sequence with the names of the atoms in the ring (each a
string).  For nucleotides and nucleosides this sequence should be:
 
["O4'", "C1'", "C2'", "C3'", "C4'"]
pucker_all(atom_names)
Calculate ring pucker amplitude and phase for all rings in the
structure.  
 
This function returns a list with (segid, resid, ((amplitude,
phase)) tuples, with the ring amplitude and phase in the specified
segment and residue defined by [C. Altona and M. Sundaralingam,
JACS 94, 8205 (1972)] (and calculated with the pucker() function).
 
atom_names is a sequence with the names of the atoms in the ring (each a
string).  For nucleotides and nucleosides this sequence should be:
 
["O4'", "C1'", "C2'", "C3'", "C4'"]
reduce(...)
reduce(function, iterable[, initial]) -> value
 
Apply a function of two arguments cumulatively to the items of a sequence
or iterable, from left to right, so as to reduce the iterable to a single
value.  For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates
((((1+2)+3)+4)+5).  If initial is present, it is placed before the items
of the iterable in the calculation, and serves as a default when the
iterable is empty.
sin(x, /)
Return the sine of x (measured in radians).
sqrt(x, /)
Return the square root of x.

 
Data
        pi = 3.141592653589793