definitions (8 September 2004) | index /home/todd/release/pdb2pqr/definitions.py

`Definitions for PDB2PQR
This file contains classes associated with Amino Acid and Rotamer
definitions as used by PDB2PQR.
Definition Files Created by
Jens Erik Nielsen
Ported to Python by Todd Dolinsky (todd@ccb.wustl.edu)
Washington University in St. Louis`

Modules

``

getopt math | os random | string sys |

Classes

``

structures.Atom(pdb.ATOM)
  DefinitionAtom
structures.Chain
  DefinitionChain
Definition
structures.Residue
  DefinitionResidue

class Definition
`` | `Definition class The Definition class contains the structured definitions found in the files and several mappings for easy access to the information.`

Methods defined here:

__init__(self)
  `Create a new Definition Object`

getAA(self)
  `Get the Amino Acid definition
  Returns
  The Amino Acid definition in self.chains[0]`

getNA(self)
  `Get the Nucleic Acid definition
  Returns
  The Nucleic Acid definition - a list of Nucleic Acid
  residues`

parseDefinition(self, reslines, name, restype)
  `Parse the definition file, obtaining information about each atom,
  its position, and its bonding information.
  Parameters
  reslines: A list of lines containing each of the atoms of the
  residue (list)
  name: The name of the Residue (string)
  restype: The type of the residue (int)
  Returns
  myResidue: The parsed residue (DefinitionResidue)`

parseRotamer(self, reslines)
  `Parse ROTAMER.DAT, obtaining information about each atom and its
  position.
  Parameters
  reslines: A list of lines containing each of the atoms of the
  residue (list)
  Returns
  myResidue: The parsed residue (DefinitionResidue)`

readDefinition(self, defpath)
  `Read a definition file
  Parameters
  deffile: The path to the definition file (string)
  Returns
  def: The definition chain (AADefinition)`

readRotamerDefinition(self)
  `Read the Rotamer definitions`

Data and non-method functions defined here:

__doc__ = '\n Definition class\n\n The Definitio...mappings for easy access to the information.\n '

__module__ = 'definitions'

class DefinitionAtom(structures.Atom)
`` | `Class DefinitionAtom The DefinitionAtom class inherits off the Atom class. It provides a trimmed down version of the initializating function from the Atom class for the definition files.`

Method resolution order:
  DefinitionAtom
  structures.Atom
  pdb.ATOM

Methods defined here:

__init__(self, serial, name, resName, x, y, z)
  `Initialize using a few basic parameters - set all other fields
  to null, which is necessary for debugging output by using the
  string function in the parent class.
  Parameters
  serial: Atom serial number (int)
  name: Atom name. (string)
  resName: Residue name. (string)
  resSeq: Residue sequence number. (int)
  x: Orthogonal coordinates for X in Angstroms. (float)
  y: Orthogonal coordinates for Y in Angstroms. (float)
  z: Orthogonal coordinates for Z in Angstroms. (float)`

isBackbone(self)
  `Return true if atom name is in backbone, otherwise false
  Returns
  state: 1 if true, 0 if false`

Data and non-method functions defined here:

__doc__ = '\n Class DefinitionAtom\n\n The Defin...Atom\n class for the definition files.\n '

__module__ = 'definitions'

Methods inherited from structures.Atom:

__str__(self)
  `Returns a string of the new atom type. Uses the ATOM string
  output but changes the first field to either by ATOM or
  HETATM as necessary.
  Returns
  out: String with ATOM/HETATM field set appropriately`

addExtraBond(self, bondedatom)
  `Add a bond to the list of extrabonds
  Parameters:
  bondedatom: The atom to bond to (Atom)`

addIntraBond(self, bondedatom)
  `Add a bond to the list of intrabonds
  Parameters:
  bondedatom: The atom to bond to (Atom)`

get(self, name)
  `Get a member of the Atom class
  Parameters
  name: The name of the member (string)
  Possible Values
  type: The type of Atom (either ATOM or HETATM)
  serial: Atom serial number
  name: Atom name
  altLoc: Alternate location
  resName: Residue name
  chainID: Chain identifier
  resSeq: Residue sequence number
  iCode: Code for insertion of residues
  x: Orthogonal coordinates for X in Angstroms.
  y: Orthogonal coordinates for Y in Angstroms.
  z: Orthogonal coordinates for Z in Angstroms.
  occupancy: Occupancy
  tempFactor: Temperature Factor
  segID: Segment identifier
  element: Element symbol
  charge: Charge on the atom
  bonds: The bonds associated with the atom
  interbonds: The intrabonds associated with the atom
  extrabonds: The extrabonds assocaited with the atom
  residue: The parent residue of the atom
  radius: The radius of the atom
  ffcharge: The forcefield charge on the atom
  hdonor: Whether the atom is a hydrogen donor
  hacceptor: Whether the atom is a hydrogen acceptor
  Returns
  item: The value of the member`

getCoords(self)
  `Return the x,y,z coordinates of the atom in list form
  Returns
  List of the coordinates (list)`

isHydrogen(self)
  `Is this atom a Hydrogen atom?
  returns
  value: 1 if Atom is a Hydrogen, 0 otherwise`

set(self, name, value)
  `Set a member of the Atom class
  Parameters
  name: The name of the member (string)
  value: The value to set the member to
  Possible Values
  type: The type of Atom (either ATOM or HETATM)
  serial: Atom serial number
  name: Atom name
  altLoc: Alternate location
  resName: Residue name
  chainID: Chain identifier
  resSeq: Residue sequence number
  iCode: Code for insertion of residues
  x: Orthogonal coordinates for X in Angstroms.
  y: Orthogonal coordinates for Y in Angstroms.
  z: Orthogonal coordinates for Z in Angstroms.
  occupancy: Occupancy
  tempFactor: Temperature Factor
  segID: Segment identifier
  element: Element symbol
  charge: Charge on the atom
  residue: The parent residue of the atom
  radius: The radius of the atom
  ffcharge: The forcefield charge on the atom
  hdonor: Whether the atom is a hydrogen donor
  hacceptor: Whether the atom is a hydrogen acceptor
  Returns
  item: The value of the member`

class DefinitionChain(structures.Chain)
`` | `DefinitionChain class The DefinitionChain class extends the chain class to provide lookups for atom information.`

Methods defined here:

__init__(self, ID)
  `Initialize like the Chain constructor, but add necessary
  features
  Parameters
  ID: The ID of the chain`

addResidue(self, residue)
  `Add a residue to the chain
  Parameters
  residue: The residue to be added (Residue)`

getResidue(self, name)
  `Retrieve a residue from the mapping
  Parameters
  name: The name of the residue to retrieve (string)`

Data and non-method functions defined here:

__doc__ = '\n DefinitionChain class\n\n The Defi...rovide\n lookups for atom information.\n '

__module__ = 'definitions'

Methods inherited from structures.Chain:

get(self, name)
  `Get a member of the Chain class
  Parameters
  name: The name of the member
  Possible Values
  ID: The ID of the chain
  Residues: The list of residues within the Chain
  Returns
  item: The value of the member`

getAtoms(self)
  `Return a list of Atom objects contained in this chain
  Returns
  atomlist: List of Atom objects (list)`

numAtoms(self)
  `Get the number of atoms for the chain
  Returns
  count: Number of atoms in the chain (int)`

numResidues(self)
  `Get the number of residues for the chain
  Returns
  count: Number of residues in the chain (int)`

renumberResidues(self)
  `Renumber Atoms based on actual Residue number and not PDB resSeq`

class DefinitionResidue(structures.Residue)
`` | `DefinitionResidue class The DefinitionResidue class extends the Residue class to allow for a trimmed down initializing function.`

Methods defined here:

__init__(self, name, type)
  `Initialize the class using a few parameters
  Parameters:
  name: The abbreviated amino acid name of the DefinitionResidue
  type: The typecode associated with the residue
  Available typecodes are:
  1: Protein residue
  2: Drug/small-molecule
  3: Water
  number: ID number for residue`

addDihedral(self, atom)
  `Add the atom to the list of dihedral bonds
  Parameters:
  atom: The atom to be added`

makeBondList(self, residue, atomname)
  `For the given atomname, make a list of bonded atoms.
  First get all atoms present in the residue that are
  directly bonded to the atom - if this number is
  less than REFATOM_SIZE, take those atoms that are present and
  bonded to initial bond list and use them.
  Parameters
  residue: The residue to check for present atoms (Residue)
  atomname: The atom name to sedd the list of bonds (string)
  Returns
  bonds: A list of atomnames that are within two bonds of
  the atom and present in residue (list)`

Data and non-method functions defined here:

__doc__ = '\n DefinitionResidue class\n\n The De...\n trimmed down initializing function.\n '

__module__ = 'definitions'

Methods inherited from structures.Residue:

addAtom(self, atom)
  `Add the atom object to the residue.
  Parameters
  atom: The object to be added (ATOM)`

addChiangle(self, value)
  `Add the value to the list of chiangles
  Parameters
  value: The value to be added (float)`

addDebumpAtom(self, atom)
  `Add an atom to the check for debumping
  Parameters
  atom: The atom to add to the list`

addMissing(self, value)
  `Add the value to the list of missing atoms
  Parameters
  value: The name of the missing atom (string)`

checkAtomNames(self)
  `Check to see if there are any misnamed hydrogens within the
  residue. Converts hydrogens of type 1HH1 and 2H* to HH11 and
  H*2 to easily compare with the Amino Acid definition file. Also
  converts H*1 and H*2 to H*2 and H*3 when necessary. Rename the
  atom and update the residue.`

createAtom(self, name, newcoords, type)
  `Add a new atom object to the residue. Uses an atom
  currently in the residue to seed the new atom
  object, then replaces the coordinates and name accordingly.
  Parameters
  name: The name of the new atom (string)
  newcoords: The x,y,z coordinates of the new atom (list)
  type: The type of atom, ATOM or HETATM`

get(self, name)
  `Get a member of the Residue class
  Parameters
  name: The name of the member (string)
  Possible Values
  atoms: The atoms in the residue
  name: The name of the residue
  chainID: The chainID associated with the residue
  resSeq: The sequence number of the residue
  icode: The iCode of the residue
  SSbonded: 1 if the residue has a SS bond, 0 otherwise
  SSbondpartner: The residue of the bond partner
  type: The type associated with this residue
  isNterm: 1 if the residue is the N-Terminus, 0 otherwise
  isCterm: 1 if the residue is the C-Terminus, 0 otherwise
  missing: List of missing atoms of the residue
  Returns
  item: The value of the member`

getAtom(self, name)
  `Retrieve an atom from the mapping
  Parameters
  resname: The name of the residue to retrieve (string)`

getCharge(self)
  `Get the total charge of the residue. In order to get rid
  of floating point rounding error, do the string
  transformation.
  Returns:
  charge: The charge of the residue (float)`

numAtoms(self)
  `Get the number of atoms for the residue
  Returns
  count: Number of atoms in the residue (int)`

removeAtom(self, atomname)
  `Remove an atom from the residue object.
  Parameters
  atomname: The name of the atom to be removed (string)`

renameAtom(self, oldname, newname)
  `Rename an atom to a new name
  Parameters
  oldname: The old atom name (string)
  newname: The new atom name (string)`

set(self, name, value)
  `Set a member of the Residue class to a specific value
  Parameters
  name: The name of the object to set (string)
  value: The object to append
  Possible Values
  atoms: The atoms in the residue
  name: The name of the residue
  chain: The chainID associated with the residue
  resSeq: The sequence number of the residue
  icode: The iCode of the residue
  SSbonded: 1 if the residue has a SS bond, 0 otherwise
  SSbondpartner: The residue of the bond partner
  type: The type associated with this residue
  isNterm: 1 if the residue is the N-Terminus, 0 otherwise
  isCterm: 1 if the residue is the C-Terminus, 0 otherwise
  isDirty: 1 if the residue is not missing atoms,
  0 otherwise
  Notes
  resSeq points to the residue.setResSeq function
  Returns
  item: The value of the member`

setResSeq(self, value)
  `Set the atom field resSeq to a certain value and
  change the residue's information. The icode field is no longer
  useful.
  Parameters
  value: The new value of resSeq (int)`

updateIntraBonds(self, defresidue)
  `Update the IntraBonds for each atom in the residue
  Parameters
  defresidue: The definition residue (DefinitionResidue)`

Functions

``

acos(...)
  `acos(x)
  Return the arc cosine (measured in radians) of x.`

asin(...)
  `asin(x)
  Return the arc sine (measured in radians) of x.`

atan(...)
  `atan(x)
  Return the arc tangent (measured in radians) of x.`

atan2(...)
  `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.`

ceil(...)
  `ceil(x)
  Return the ceiling of x as a float.
  This is the smallest integral value >= x.`

cos(...)
  `cos(x)
  Return the cosine of x (measured in radians).`

cosh(...)
  `cosh(x)
  Return the hyperbolic cosine of x.`

exp(...)
  `exp(x)
  Return e raised to the power of x.`

fabs(...)
  `fabs(x)
  Return the absolute value of the float x.`

floor(...)
  `floor(x)
  Return the floor of x as a float.
  This is the largest integral value <= x.`

fmod(...)
  `fmod(x,y)
  Return fmod(x, y), according to platform C. x % y may differ.`

frexp(...)
  `frexp(x)
  Return the mantissa and exponent of x, as pair (m, e).
  m is a float and e is an int, such that x = m * 2.**e.
  If x is 0, m and e are both 0. Else 0.5 <= abs(m) < 1.0.`

hypot(...)
  `hypot(x,y)
  Return the Euclidean distance, sqrt(x*x + y*y).`

ldexp(...)
  `ldexp(x, i) -> x * (2**i)`

log(...)
  `log(x) -> the natural logarithm (base e) of x.`

log10(...)
  `log10(x) -> the base 10 logarithm of x.`

modf(...)
  `modf(x)
  Return the fractional and integer parts of x. Both results carry the sign
  of x. The integer part is returned as a real.`

pow(...)
  `pow(x,y)
  Return x**y (x to the power of y).`

sin(...)
  `sin(x)
  Return the sine of x (measured in radians).`

sinh(...)
  `sinh(x)
  Return the hyperbolic sine of x.`

sqrt(...)
  `sqrt(x)
  Return the square root of x.`

tan(...)
  `tan(x)
  Return the tangent of x (measured in radians).`

tanh(...)
  `tanh(x)
  Return the hyperbolic tangent of x.`

Data

``

AAFILE = 'AA.DAT'
AAS = ['ALA', 'ARG', 'ASN', 'ASP', 'CYS', 'GLN', 'GLU', 'GLH', 'GLY', 'HIS', 'HID', 'HIE', 'HIP', 'HSD', 'HSE', 'HSP', 'ILE', 'LEU', 'LYS', 'MET', ...]
AMBER_FILE = 'AMBER.DAT'
BACKBONE = ['N', 'CA', 'C', 'O', 'O2', 'HA', 'HN', 'H', 'tN']
BONDED_SS_LIMIT = 2.5
BUMP_DIST = 2.0
BUMP_HDIST = 1.5
CELL_SIZE = 2
CHARMM_FILE = 'CHARMM.DAT'
DIHEDRAL = 57.2958
HYDRO_BONDCOORDS = [[7.5810000000000004, 2.0899999999999999, 12.506], [6.4580000000000002, 2.1619999999999999, 13.159000000000001], [5.1449999999999996, 2.2090000000000001, 12.452999999999999]]
HYDRO_COORDS = [6.476, 2.1859999999999999, 14.159000000000001]
LARGE_TORSION_ANGLE = 1000.0
NAFILE = 'NA.DAT'
NAS = ['A', 'A5', 'A3', 'C', 'C5', 'C3', 'G', 'G5', 'G3', 'T', 'T5', 'T3', 'U', 'U5', 'U3']
NTERM2_COORDS = [-24.001000000000001, 50.223999999999997, -22.225999999999999]
NTERM3_COORDS = [-24.869, 48.845999999999997, -22.77]
NTERM_COORDS = [[-24.196000000000002, 48.789999999999999, -20.800000000000001], [-25.552, 49.881, -21.847999999999999], [-24.645, 49.491, -22.007000000000001]]
OXT_COORDS = [-1.5289999999999999, 1.8580000000000001, 0.69499999999999995]
PARSE_FILE = 'PARSE.DAT'
PEPTIDE_DIST = 1.7
PEP_TRANS_CA = [-2.3130000000000002, 2.7839999999999998, 1.0229999999999999]
PEP_TRANS_N = [-1.252, 1.877, 0.88300000000000001]
REFATOM_SIZE = 3
REPAIR_LIMIT = 10
ROTAMERFILE = 'ROTAMER.DAT'
SMALL = 9.9999999999999995e-08
__author__ = 'Jens Erik Nielsen, Todd Dolinsky'
__date__ = '8 September 2004'
__file__ = './definitions.pyc'
__name__ = 'definitions'
e = 2.7182818284590451
pi = 3.1415926535897931

Author
`` |  | Jens Erik Nielsen, Todd Dolinsky