src.pdb
index
/Users/baker/Desktop/pdb2pqr/trunk/pdb2pqr/src/pdb.py

PDB parsing class
 
This module parses PDBs in accordance to PDB Format Description Version 2.2
(1996); it is not very forgiving.   Each class in this module corresponds
to a record in the PDB Format Description.  Much of the documentation for
the classes is taken directly from the above PDB Format Description.
 
----------------------------
 
PDB2PQR -- An automated pipeline for the setup, execution, and analysis of
Poisson-Boltzmann electrostatics calculations
 
    Copyright (c) 2002-2007, Jens Erik Nielsen, University College Dublin; 
    Nathan A. Baker, Washington University in St. Louis; Paul Czodrowski & 
    Gerhard Klebe, University of Marburg
 
    All rights reserved.
 
    Redistribution and use in source and binary forms, with or without modification, 
    are permitted provided that the following conditions are met:
 
            * Redistributions of source code must retain the above copyright notice, 
              this list of conditions and the following disclaimer.
            * Redistributions in binary form must reproduce the above copyright notice, 
              this list of conditions and the following disclaimer in the documentation 
              and/or other materials provided with the distribution.
            * Neither the names of University College Dublin, Washington University in 
              St. Louis, or University of Marburg nor the names of its contributors may 
              be used to endorse or promote products derived from this software without 
              specific prior written permission.
 
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
    IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
    INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
    BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
    OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
    OF THE POSSIBILITY OF SUCH DAMAGE.
 
----------------------------

 
Modules
       
copy
string
sys

 
Classes
       
ANISOU
ATOM
AUTHOR
CAVEAT
CISPEP
COMPND
CONECT
CRYST1
DBREF
END
ENDMDL
EXPDTA
FORMUL
HEADER
HELIX
HET
HETATM
HETNAM
HETSYN
HYDBND
JRNL
KEYWDS
LINK
MASTER
MODEL
MODRES
MOL2BOND
MOL2MOLECULE
MTRIX1
MTRIX2
MTRIX3
OBSLTE
ORIGX1
ORIGX2
ORIGX3
REMARK
REVDAT
SCALE1
SCALE2
SCALE3
SEQADV
SEQRES
SHEET
SIGATM
SIGUIJ
SITE
SLTBRG
SOURCE
SPRSDE
SSBOND
TER
TITLE
TURN
TVECT

 
class ANISOU
    ANISOU class
 
The ANISOU records present the anisotropic temperature factors.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line:
 
  COLUMNS  TYPE   FIELD   DEFINITION
  ------------------------------------------------------
   7-11    int    serial  Atom serial number.
  13-16    string name    Atom name.
  17       string altLoc  Alternate location indicator.
  18-20    string resName Residue name.
  22       string chainID Chain identifier.
  23-26    int    resSeq  Residue sequence number.
  27       string iCode   Insertion code.
  29-35    int    u00     U(1,1)
  36-42    int    u11     U(2,2)
  43-49    int    u22     U(3,3)
  50-56    int    u01     U(1,2)
  57-63    int    u02     U(1,3)
  64-70    int    u12     U(2,3)
  73-76    string segID   Segment identifier, left-justified.
  77-78    string element Element symbol, right-justified.
  79-80    string charge  Charge on the atom.

 
class ATOM
    ATOM class
 
The ATOM records present the atomic coordinates for standard residues.
They also present the occupancy and temperature factor for each atom.
Heterogen coordinates use the HETATM record type. The element symbol is
always present on each ATOM record; segment identifier and charge are
optional.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------------------
7-11      int   serial        Atom serial number.
13-16     string name          Atom name.
17        string altLoc        Alternate location indicator.
18-20     string resName       Residue name.
22        string chainID       Chain identifier.
23-26     int    resSeq        Residue sequence number.
27        string iCode         Code for insertion of residues.
31-38     float  x             Orthogonal coordinates for X in
                               Angstroms.
39-46     float  y             Orthogonal coordinates for Y in
                               Angstroms.
47-54     float  z             Orthogonal coordinates for Z in
                               Angstroms.
55-60     float  occupancy     Occupancy.
61-66     float  tempFactor    Temperature factor.
73-76     string segID         Segment identifier, left-justified.
77-78     string element       Element symbol, right-justified.
79-80     string charge        Charge on the atom.
__str__(self)
Print object as string
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------------------
7-11      int   serial        Atom serial number.
13-16     string name          Atom name.
17        string altLoc        Alternate location indicator.
18-20     string resName       Residue name.
22        string chainID       Chain identifier.
23-26     int    resSeq        Residue sequence number.
27        string iCode         Code for insertion of residues.
31-38     float  x             Orthogonal coordinates for X in
                               Angstroms.
39-46     float  y             Orthogonal coordinates for Y in
                               Angstroms.
47-54     float  z             Orthogonal coordinates for Z in
                               Angstroms.
55-60     float  occupancy     Occupancy.
61-66     float  tempFactor    Temperature factor.
73-76     string segID         Segment identifier, left-justified.
77-78     string element       Element symbol, right-justified.
79-80     string charge        Charge on the atom.

 
class AUTHOR
    AUTHOR field
 
The AUTHOR record contains the names of the people responsible for the
contents of the entry.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing a line
 
COLUMNS  TYPE   FIELD      DEFINITION
--------------------------------------------------
11-70    string authorList List of the author names, separated by
                           commas

 
class CAVEAT
    CAVEAT field
 
CAVEAT warns of severe errors in an entry. Use caution when using an
entry containing this record.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line.
 
COLUMNS  TYPE   FIELD   DEFINITION
----------------------------------------------------
12-15    string idCode  PDB ID code of this entry.
20-70    string comment Free text giving the reason for the
                        CAVEAT.

 
class CISPEP
    CISPEP field
 
CISPEP records specify the prolines and other peptides found to be in
the cis conformation. This record replaces the use of footnote records
to list cis peptides.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD    DEFINITION
-----------------------------------------------------------
8-10     int    serNum   Record serial number.
12-14    string pep1     Residue name.
16       string chainID1 Chain identifier.
18-21    int    seqNum1  Residue sequence number.
22       string icode1   Insertion code.
26-28    string pep2     Residue name.
30       string chainID2 Chain identifier.
32-35    int    seqNum2  Residue sequence number.
36       string icode2   Insertion code.
44-46    int    modNum   Identifies the specific model.
54-59    float  measure  Measure of the angle in degrees.

 
class COMPND
    COMPND field
 
The COMPND record describes the macromolecular contents of an entry.
Each macromolecule found in the entry is described by a set of token:
value pairs, and is referred to as a COMPND record component. Since the
concept of a molecule is difficult to specify exactly, PDB staff may
exercise editorial judgment in consultation with depositors in
assigning these names.
 
For each macromolecular component, the molecule name, synonyms, number
assigned by the Enzyme Commission (EC), and other relevant details are
specified.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing a line
 
COLUMNS  TYPE   FIELD    DEFINITION
--------------------------------------------------
11-70    string compound Description of the molecular list 
                         components.

 
class CONECT
    CONECT class
 
The CONECT records specify connectivity between atoms for which
coordinates are supplied. The connectivity is described using the atom
serial number as found in the entry. CONECT records are mandatory for
HET groups (excluding water) and for other bonds not specified in the
standard residue connectivity table which involve atoms in standard
residues (see Appendix 4 for the list of standard residues). These
records are generated by the PDB.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD    DEFINITION
--------------------------------------------
 7-11    int    serial   Atom serial number              
12-16    int    serial1  Serial number of bonded atom    
17-21    int    serial2  Serial number of bonded atom    
22-26    int    serial3  Serial number of bonded atom    
27-31    int    serial4  Serial number of bonded atom    
32-36    int    serial5  Serial number of hydrogen bonded atom    
37-41    int    serial6  Serial number of hydrogen bonded atom    
42-46    int    serial7  Serial number of salt bridged    atom    
47-51    int    serial8  Serial number of hydrogen bonded atom    
52-56    int    serial9  Serial number of hydrogen bonded atom    
57-61    int    serial10 Serial number of salt bridged    atom

 
class CRYST1
    CRYST1 class
 
The CRYST1 record presents the unit cell parameters, space group, and Z
value. If the structure was not determined by crystallographic means,
CRYST1 simply defines a unit cube.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------------
 7-15    float  a      a (Angstroms).
16-24    float  b      b (Angstroms).
25-33    float  c      c (Angstroms).
34-40    float  alpha  alpha (degrees).
41-47    float  beta   beta (degrees).
48-54    float  gamma  gamma (degrees).
56-66    string sGroup Space group.
67-70    int    z      Z value.

 
class DBREF
    DBREF field
 
The DBREF record provides cross-reference links between PDB sequences
and the corresponding database entry or entries. A cross reference to
the sequence database is mandatory for each peptide chain with a length
greater than ten (10) residues. For nucleic acid entries a DBREF record
pointing to the Nucleic Acid Database (NDB) is mandatory when the
corresponding entry exists in NDB.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing a line.
 
COLUMNS  TYPE   FIELD       DEFINITION
------------------------------------------------------
8-11     string idCode      ID code of this entry.
13       string chainID     Chain identifier.
15-18    int    seqBegin    Initial sequence number of the PDB
                            sequence segment.
19       string insertBegin Initial insertion code of the PDB
                            sequence segment.
21-24    int    seqEnd      Ending sequence number of the PDB
                            sequence segment.
25       string insertEnd   Ending insertion code of the PDB
                            sequence segment.
27-32    string database    Sequence database name.  "PDB" when
                            a corresponding sequence database
                            entry has not been identified.
34-41    string dbAccession Sequence database accession code.
                            For GenBank entries, this is the
                            NCBI gi number.
43-54    string dbIdCode    Sequence database identification
                            code.  For GenBank entries, this is
                            the accession code.
56-60    int    dbseqBegin  Initial sequence number of the
                            database seqment.
61       string dbinsBeg    Insertion code of initial residue
                            of the segment, if PDB is the
                            reference.
63-67    int    dbseqEnd    Ending sequence number of the
                            database segment.
68       string dbinsEnd    Insertion code of the ending
                            residue of the segment, if PDB is
                            the reference.

 
class END
    END class
 
The END records are paired with MODEL records to group individual
structures found in a coordinate entry.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line (nothing to do)

 
class ENDMDL
    ENDMDL class
 
The ENDMDL records are paired with MODEL records to group individual
structures found in a coordinate entry.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line (nothing to do)

 
class EXPDTA
    EXPDTA field
 
The EXPDTA record identifies the experimental technique used. This may
refer to the type of radiation and sample, or include the spectroscopic
or modeling technique. Permitted values include:
 
ELECTRON DIFFRACTION
FIBER DIFFRACTION
FLUORESCENCE TRANSFER
NEUTRON DIFFRACTION
NMR
THEORETICAL MODEL
X-RAY DIFFRACTION
 
  Methods defined here:
__init__(self, line)
Initialize by parsing a line
 
COLUMNS  TYPE   FIELD     DEFINITION
--------------------------------------------------
11-70    string technique The experimental technique(s) with
                          optional comment describing the sample 
                          or experiment

 
class FORMUL
    FORMUL field
 
The FORMUL record presents the chemical formula and charge of a
non-standard group.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD    DEFINITION
-----------------------------------------------------
9-10     int    compNum  Component number
13-15    string hetID    Het identifier
19       string asterisk * for water
20-70    string text     Chemical formula

 
class HEADER
    HEADER field 
 
The HEADER record uniquely identifies a PDB entry through the idCode
field. This record also provides a classification for the entry.
Finally, it contains the date the coordinates were deposited at the
PDB.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing a line.  
 
COLUMNS  TYPE   FIELD          DEFINITION
---------------------------------------------------------
11-50    string classification Classifies the molecule(s)
51-59    string depDate        Deposition date.  This is the date
                               the coordinates were received by
                               the PDB
63-66    string idCode         This identifier is unique within PDB

 
class HELIX
    HELIX field
 
HELIX records are used to identify the position of helices in the
molecule. Helices are both named and numbered. The residues where the
helix begins and ends are noted, as well as the total length.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
------------------------------------------------------
8-10     int    serNum      Serial number of the helix.  This
                            starts at 1 and increases
                            incrementally.
12-14    string helixID     Helix identifier.  In addition to a
                            serial number, each helix is given an
                            alphanumeric character helix identifier.
16-18    string initResName Name of the initial residue.
20       string initChainID Chain identifier for the chain
                            containing this helix.
22-25    int    initSeqNum  Sequence number of the initial residue.
26       string initICode   Insertion code of the initial residue.
28-30    string endResName  Name of the terminal residue of
                            the helix.
32       string endChainID  Chain identifier for the chain
                            containing this helix.
34-37    int    endSeqNum   Sequence number of the terminal residue.
38       string endICode    Insertion code of the terminal residue.
39-40    int    helixClass  Helix class (see below).
41-70    string comment     Comment about this helix.
72-76    int    length      Length of this helix.

 
class HET
    HET field
 
HET records are used to describe non-standard residues, such as
prosthetic groups, inhibitors, solvent molecules, and ions for which
coordinates are supplied. Groups are considered HET if they are:
 - not one of the standard amino acids, and 
 - not one of the nucleic acids (C, G, A, T, U, and I), and 
 - not one of the modified versions of nucleic acids (+C, +G, +A, +T,
   +U, and +I), and 
 - not an unknown amino acid or nucleic acid where UNK is used to
   indicate the unknown residue name. 
Het records also describe heterogens for which the chemical identity is
unknown, in which case the group is assigned the hetID UNK.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD       DEFINITION
--------------------------------------------------------
8-10     string hetID       Het identifier, right-justified.
13       string ChainID     Chain identifier.
14-17    int    seqNum      Sequence number.
18       string iCode       Insertion code.
21-25    int    numHetAtoms Number of HETATM records for the
31-70    string text        Text describing Het group.

 
class HETATM
    HETATM class
 
The HETATM records present the atomic coordinate records for atoms
within "non-standard" groups. These records are used for water
molecules and atoms presented in HET groups.
 
  Methods defined here:
__init__(self, line, sybylType='A.aaa', lBonds=[], lBondedAtoms=[])
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------------------
7-11      int   serial        Atom serial number.
13-16     string name          Atom name.
17        string altLoc        Alternate location indicator.
18-20     string resName       Residue name.
22        string chainID       Chain identifier.
23-26     int    resSeq        Residue sequence number.
27        string iCode         Code for insertion of residues.
31-38     float  x             Orthogonal coordinates for X in
                               Angstroms.
39-46     float  y             Orthogonal coordinates for Y in
                               Angstroms.
47-54     float  z             Orthogonal coordinates for Z in
                               Angstroms.
55-60     float  occupancy     Occupancy.
61-66     float  tempFactor    Temperature factor.
73-76     string segID         Segment identifier, left-justified.
77-78     string element       Element symbol, right-justified.
79-80     string charge        Charge on the atom.
__str__(self)
Print object as string
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------------------
7-11      int   serial        Atom serial number.
13-16     string name          Atom name.
17        string altLoc        Alternate location indicator.
18-20     string resName       Residue name.
22        string chainID       Chain identifier.
23-26     int    resSeq        Residue sequence number.
27        string iCode         Code for insertion of residues.
31-38     float  x             Orthogonal coordinates for X in
                               Angstroms.
39-46     float  y             Orthogonal coordinates for Y in
                               Angstroms.
47-54     float  z             Orthogonal coordinates for Z in
                               Angstroms.
55-60     float  occupancy     Occupancy.
61-66     float  tempFactor    Temperature factor.
73-76     string segID         Segment identifier, left-justified.
77-78     string element       Element symbol, right-justified.
79-80     string charge        Charge on the atom.

 
class HETNAM
    HETNAM field
 
This record gives the chemical name of the compound with the given
hetID.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
-----------------------------------------------------
12-14    string hetID  Het identifier, right-justified.
16-70    string text   Chemical name.

 
class HETSYN
    HETSYN field
 
This record provides synonyms, if any, for the compound in the
corresponding (i.e., same hetID) HETNAM record. This is to allow
greater flexibility in searching for HET groups.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD         DEFINITION
-----------------------------------------------------
12-14    string hetID         Het identifier, right-justified.
16-70    string hetSynonyms   List of synonyms

 
class HYDBND
    HYDBND field
 
The HYDBND records specify hydrogen bonds in the entry.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
-----------------------------------------------------------
13-16    string name1          Atom name.
17       string altLoc1        Alternate location indicator.
18-20    string resName1       Residue name.
22       string Chain1         Chain identifier.
23-27    int    resSeq1        Residue sequence number.
28       string ICode1         Insertion code.
30-33    string nameH          Hydrogen atom name.
34       string altLocH        Alternate location indicator.
36       string ChainH         Chain identifier.
37-41    int    resSeqH        Residue sequence number.
42       string iCodeH         Insertion code.
44-47    string name2          Atom name.
48       string altLoc2        Alternate location indicator.
49-51    string resName2       Residue name.
53       string chainID2       Chain identifier.
54-58    int    resSeq2        Residue sequence number.
59       string iCode2         Insertion code.
60-65    string sym1           Symmetry operator for 1st
                                              non-hydrogen atom.
67-72    string sym2           Symmetry operator for 2nd
                                  non-hydrogen atom.

 
class JRNL
    JRNL field
 
The JRNL record contains the primary literature citation that describes
the experiment which resulted in the deposited coordinate set. There is
at most one JRNL reference per entry. If there is no primary reference,
then there is no JRNL reference. Other references are given in REMARK
1.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
-----------------------------------------------
13-70    string text   See Details on web.

 
class KEYWDS
    KEYWDS field
 
The KEYWDS record contains a set of terms relevant to the entry. Terms
in the KEYWDS record provide a simple means of categorizing entries and
may be used to generate index files. This record addresses some of the
limitations found in the classification field of the HEADER record. It
provides the opportunity to add further annotation to the entry in a
concise and computer-searchable fashion.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing a line
 
COLUMNS  TYPE   FIELD   DEFINITION
--------------------------------------------------
11-70    string keywds  Comma-separated list of keywords relevant
                        to the entry

 
class LINK
    LINK field
 
The LINK records specify connectivity between residues that is not
implied by the primary structure. Connectivity is expressed in terms of
the atom names. This record supplements information given in CONECT
records and is provided here for convenience in searching.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD     DEFINITION
-----------------------------------------------------
13-16    string name1     Atom name.
17       string altLoc1   Alternate location indicator.
18-20    string resName1  Residue name.
22       string chainID1  Chain identifier.
23-26    int    resSeq1   Residue sequence number.
27       string iCode1    Insertion code.
43-46    string name2     Atom name.
47       string altLoc2   Alternate location indicator.
48-50    string resName2  Residue name.
52       string chainID2  Chain identifier.
53-56    int    resSeq2   Residue sequence number.
57       string iCode2    Insertion code.
60-65    string sym1      Symmetry operator for 1st atom.
67-72    string sym2      Symmetry operator for 2nd atom.

 
class MASTER
    MASTER class
 
The MASTER record is a control record for bookkeeping. It lists the
number of lines in the coordinate entry or file for selected record
types.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD     DEFINITION
-------------------------------------------------
11-15    int    numRemark Number of REMARK records
21-25    int    numHet    Number of HET records
26-30    int    numHelix  Number of HELIX records
31-35    int    numSheet  Number of SHEET records
36-40    int    numTurn   Number of TURN records
41-45    int    numSite   Number of SITE records
46-50    int    numXform  Number of coordinate transformation
                          records (ORIGX+SCALE+MTRIX)
51-55    int    numCoord  Number of atomic coordinate records
                          (ATOM+HETATM)
56-60    int    numTer    Number of TER records
61-65    int    numConect Number of CONECT records
66-70    int    numSeq    Number of SEQRES records

 
class MODEL
    MODEL class
 
The MODEL record specifies the model serial number when multiple
structures are presented in a single coordinate entry, as is often the
case with structures determined by NMR.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
-----------------------------------------------------
11-14    int    serial Model serial number.

 
class MODRES
    MODRES field
 
The MODRES record provides descriptions of modifications (e.g.,
chemical or post-translational) to protein and nucleic acid residues.
Included are a mapping between residue names given in a PDB entry and
standard residues.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing a line
 
COLUMNS  TYPE   FIELD   DEFINITION
---------------------------------------
8-11     string idCode  ID code of this entry.
13-15    string resName Residue name used in this entry.
17       string chainID Chain identifier.
19-22    int    seqNum  Sequence number.
23       string iCode   Insertion code.
25-27    string stdRes  Standard residue name.
30-70    string comment Description of the residue modification.

 
class MOL2BOND
    Bonding of MOL2 files
 
  Methods defined here:
__init__(self, frm, to, type, id=0)

 
class MOL2MOLECULE
    Tripos MOL2 molecule
For further information look at (web page exists: 25 August 2005):
http://www.tripos.com/index.php?family=modules,SimplePage,,,&page=sup_mol2&s=0
 
  Methods defined here:
__init__(self)
createPDBlineFromMOL2(self)
createlBondedAtoms(self)
Creates for each atom a list of the bonded Atoms
 
This becomes one attribute of MOL2ATOM!
parseAtoms(self, AtomList)
for parsing @<TRIPOS>ATOM
parseBonds(self, BondList)
for parsing @<TRIPOS>BOND
read(self, file)
Routines for reading MOL2 file

 
class MTRIX1
    MTRIX1 class
 
The MTRIXn (n = 1, 2, or 3) records present transformations expressing
non-crystallographic symmetry.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------
 8-10    int    serial Serial number
11-20    float  mn1    M11
21-30    float  mn2    M12
31-40    float  mn3    M13
46-55    float  vn     V1
60       int    iGiven 1 if coordinates for the representations
                which are approximately related by the
                transformations of the molecule are contained in
                the entry.  Otherwise, blank.

 
class MTRIX2
    MTRIX2 class
 
The MTRIXn (n = 1, 2, or 3) records present transformations expressing
non-crystallographic symmetry.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------
 8-10    int    serial Serial number
11-20    float  mn1    M21
21-30    float  mn2    M22
31-40    float  mn3    M23
46-55    float  vn     V2
60       int    iGiven 1 if coordinates for the representations
                which are approximately related by the
                transformations of the molecule are contained in
                the entry.  Otherwise, blank.

 
class MTRIX3
    MTRIX3 class
 
The MTRIX3 (n = 1, 2, or 3) records present transformations expressing
non-crystallographic symmetry.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------
 8-10    int    serial Serial number
11-20    float  mn1    M31
21-30    float  mn2    M32
31-40    float  mn3    M33
46-55    float  vn     V3
60       int    iGiven 1 if coordinates for the representations
                which are approximately related by the
                transformations of the molecule are contained in
                the entry.  Otherwise, blank.

 
class OBSLTE
    OBSLTE field
 
This record acts as a flag in an entry which has been withdrawn from
the PDB's full release. It indicates which, if any, new entries have
replaced the withdrawn entry.
 
The format allows for the case of multiple new entries replacing one
existing entry.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing a line.  
 
COLUMNS  TYPE   FIELD    DEFINITION
-----------------------------------------------
12-20    string repDate  Date that this entry was replaced.
22-25    string idCode   ID code of this entry.
32-35    string rIdCode  ID code of entry that replaced
                         this one.
37-40    string rIdCode  ID code of entry that replaced
                         this one.
42-45    string rIdCode  ID code of entry that replaced
                         this one.
47-50    string rIdCode  ID code of entry that replaced
                         this one.
52-55    string rIdCode  ID code of entry that replaced
                         this one.
57-60    string rIdCode  ID code of entry that replaced
                         this one.
62-65    string rIdCode  ID code of entry that replaced
                         this one.
67-70    string rIdCode  ID code of entry that replaced
                         this one.

 
class ORIGX1
    ORIGX1 class
 
The ORIGXn (n = 1, 2, or 3) records present the transformation from the
orthogonal coordinates contained in the entry to the submitted
coordinates.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------
11-20    float  on1    O11
21-30    float  on2    O12
31-40    float  on3    O13
46-55    float  tn     T1

 
class ORIGX2
    ORIGX2 class
 
The ORIGXn (n = 1, 2, or 3) records present the transformation from the
orthogonal coordinates contained in the entry to the submitted
coordinates.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------
11-20    float  on1    O21
21-30    float  on2    O22
31-40    float  on3    O23
46-55    float  tn     T2

 
class ORIGX3
    ORIGX3 class
 
The ORIGXn (n = 1, 2, or 3) records present the transformation from the
orthogonal coordinates contained in the entry to the submitted
coordinates.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------
11-20    float  on1    O31
21-30    float  on2    O32
31-40    float  on3    O33
46-55    float  tn     T3

 
class REMARK
    REMARK field
 
REMARK records present experimental details, annotations, comments, and
information not included in other records. In a number of cases,
REMARKs are used to expand the contents of other record types. A new
level of structure is being used for some REMARK records. This is
expected to facilitate searching and will assist in the conversion to a
relational database.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line

 
class REVDAT
    REVDAT field
 
REVDAT records contain a history of the modifications made to an entry
since its release.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing a line.
 
COLUMNS  TYPE   FIELD  DEFINITION
-------------------------------------------------------
8-10     int    modNum  Modification number.
14-22    string modDate Date of modification (or release for
                        new entries).  
24-28    string modId   Identifies this particular modification.
                        It links to the archive used internally by
                        PDB.
32       int    modType An integer identifying the type of
                        modification.  In case of revisions
                        with more than one possible modType,
                        the highest value applicable will be
                        assigned.
40-45    string record  Name of the modified record.
47-52    string record  Name of the modified record.
54-59    string record  Name of the modified record.
61-66    string record  Name of the modified record.

 
class SCALE1
    SCALE1 class
 
The SCALEn (n = 1, 2, or 3) records present the transformation from the
orthogonal coordinates as contained in the entry to fractional
crystallographic coordinates. Non-standard coordinate systems should be
explained in the remarks.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------
11-20    float  sn1    S11
21-30    float  sn2    S12
31-40    float  sn3    S13
46-55    float  un     U1

 
class SCALE2
    SCALE2 class
 
The SCALEn (n = 1, 2, or 3) records present the transformation from the
orthogonal coordinates as contained in the entry to fractional
crystallographic coordinates. Non-standard coordinate systems should be
explained in the remarks.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------
11-20    float  sn1    S21
21-30    float  sn2    S22
31-40    float  sn3    S23
46-55    float  un     U2

 
class SCALE3
    SCALE3 class
 
The SCALEn (n = 1, 2, or 3) records present the transformation from the
orthogonal coordinates as contained in the entry to fractional
crystallographic coordinates. Non-standard coordinate systems should be
explained in the remarks.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------
11-20    float  sn1    S31
21-30    float  sn2    S32
31-40    float  sn3    S33
46-55    float  un     U3

 
class SEQADV
    SEQADV field
 
The SEQADV record identifies conflicts between sequence information in
the ATOM records of the PDB entry and the sequence database entry given
on DBREF. Please note that these records were designed to identify
differences and not errors. No assumption is made as to which database
contains the correct data. PDB may include REMARK records in the entry
that reflect the depositor's view of which database has the correct
sequence.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD    DEFINITION
-----------------------------------------------------
8-11     string idCode   ID code of this entry.
13-15    string resName  Name of the PDB residue in conflict.
17       string chainID  PDB chain identifier.
19-22    int    seqNum   PDB sequence number.
23       string iCode    PDB insertion code.
25-28    string database Sequence database name.
30-38    string dbIdCode Sequence database accession
                         number.
40-42    string dbRes    Sequence database residue name.
44-48    int    dbSeq    Sequence database sequence number.
50-70    string conflict Conflict comment.

 
class SEQRES
    SEQRES field
 
SEQRES records contain the amino acid or nucleic acid sequence of
residues in each chain of the macromolecule that was studied.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing a line
 
COLUMNS  TYPE   FIELD   DEFINITION
-----------------------------------------------------
9-10     int    serNum  Serial number of the SEQRES record for the
                        current chain.  Starts at 1 and increments
                        by one each line.  Reset to 1 for each
                        chain.
12       string chainID Chain identifier.  This may be any single
                        legal character, including a blank which is
                        used if there is only one chain.
14-17    int    numRes  Number of residues in the chain.  This
                        value is repeated on every record.
20-22    string resName Residue name.
24-26    string resName Residue name.
28-30    string resName Residue name.
32-34    string resName Residue name.
36-38    string resName Residue name.
40-42    string resName Residue name.
44-46    string resName Residue name.
48-50    string resName Residue name.
52-54    string resName Residue name.
56-58    string resName Residue name.
60-62    string resName Residue name.
64-66    string resName Residue name.
68-70    string resName Residue name.

 
class SHEET
    SHEET field
 
SHEET records are used to identify the position of sheets in the
molecule. Sheets are both named and numbered. The residues where the
sheet begins and ends are noted.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD       DEFINITION
-------------------------------------------------
 8 - 10  int    strand      Strand number which starts at 1 for
                            each strand within a sheet and
                            increases by one.
12 - 14  string sheetID     Sheet identifier.
15 - 16  int    numStrands  Number of strands in sheet.
18 - 20  string initResName Residue name of initial residue.
22       string initChainID Chain identifier of initial residue in
                            strand.  
23 - 26  int    initSeqNum  Sequence number of initial residue in
                            strand.  
27       string initICode   Insertion code of initial residue in
                            strand.  
29 - 31  string endResName  Residue name of terminal residue.  
33       string endChainID  Chain identifier of terminal residue.  
34 - 37  int    endSeqNum   Sequence number of terminal residue.  
38       string endICode    Insertion code of terminal residue.  
39 - 40  int    sense       Sense of strand with respect to
                            previous strand in the sheet. 0 if
                            first strand, 1 if parallel, -1 if
                            anti-parallel.  
42 - 45  string curAtom     Registration. Atom name in current
                            strand.  
46 - 48  string curResName  Registration. Residue name in current
                            strand.  
50       string curChainId  Registration. Chain identifier in
                            current strand.  
51 - 54  int    curResSeq   Registration. Residue sequence number
                            in current strand.  
55       string curICode    Registration. Insertion code in current
                            strand.  
57 - 60  string prevAtom    Registration. Atom name in previous
                            strand.  
61 - 63  string prevResName Registration. Residue name in previous
                            strand.  
65       string prevChainId Registration. Chain identifier in
                            previous strand.  
66 - 69  int    prevResSeq  Registration. Residue sequence number
                            in previous strand.  
70       string prevICode   Registration. Insertion code in
                            previous strand.

 
class SIGATM
    SIGATM class
 
The SIGATM records present the standard deviation of atomic parameters
as they appear in ATOM and HETATM records.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD    DEFINITION
---------------------------------------------
7-11      int   serial   Atom serial number.
13-16     string name    Atom name.
17        string altLoc  Alternate location indicator.
18-20     string resName Residue name.
22        string chainID Chain identifier.
23-26     int    resSeq  Residue sequence number.
27        string iCode   Code for insertion of residues.
31-38     float  sigX    Standard devition of orthogonal
                         coordinates for X in Angstroms.
39-46     float  sigY    Standard devition of orthogonal
                         coordinates for Y in Angstroms.
47-54     float  sigZ    Standard devition of orthogonal
                         coordinates for Z in Angstroms.
55-60     float  sigOcc  Standard devition of occupancy.
61-66     float  sigTemp Standard devition of temperature factor.
73-76     string segID   Segment identifier, left-justified.
77-78     string element Element symbol, right-justified.
79-80     string charge  Charge on the atom.

 
class SIGUIJ
    SIGUIJ class
 
The SIGUIJ records present the anisotropic temperature factors.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line:
 
  COLUMNS  TYPE   FIELD   DEFINITION
  ------------------------------------------------------
   7-11    int    serial  Atom serial number.
  13-16    string name    Atom name.
  17       string altLoc  Alternate location indicator.
  18-20    string resName Residue name.
  22       string chainID Chain identifier.
  23-26    int    resSeq  Residue sequence number.
  27       string iCode   Insertion code.
  29-35    int    sig11   Sigma U(1,1)
  36-42    int    sig22   Sigma U(2,2)
  43-49    int    sig33   Sigma U(3,3)
  50-56    int    sig12   Sigma U(1,2)
  57-63    int    sig13   Sigma U(1,3)
  64-70    int    sig23   Sigma U(2,3)
  73-76    string segID   Segment identifier, left-justified.
  77-78    string element Element symbol, right-justified.
  79-80    string charge  Charge on the atom.

 
class SITE
    SITE class
 
The SITE records supply the identification of groups comprising
important sites in the macromolecule.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing the line
 
COLUMNS  TYPE   FIELD    DEFINITION
--------------------------------------------------------------
 8-10    int    seqNum   Sequence number.
12-14    string siteID   Site name.
16-17    int    numRes   Number of residues comprising site.
19-21    string resName1 Residue name for first residue
                         comprising site.
23       string chainID1 Chain identifier for first residue
                         comprising site.
24-27    int    seq1     Residue sequence number for first
                         residue comprising site.
28       string iCode1   Insertion code for first residue
                         comprising site.
30-32    string resName2 Residue name for second residue
                         comprising site.
34       string chainID2 Chain identifier for second residue
                         comprising site.
35-38    int    seq2     Residue sequence number for second
                         residue comprising site.
39       string iCode2   Insertion code for second residue
                         comprising site.
41-43    string resName3 Residue name for third residue
                         comprising site.
45       string chainID3 Chain identifier for third residue
                         comprising site.
46-49    int    seq3     Residue sequence number for third
                         residue comprising site.
50       string iCode3   Insertion code for third residue
                         comprising site.
52-54    string resName4 Residue name for fourth residue
                         comprising site.
56       string chainID4 Chain identifier for fourth residue
                         comprising site.
57-60    int    seq4     Residue sequence number for fourth
                         residue comprising site.
61       string iCode4   Insertion code for fourth residue
                         comprising site.

 
class SLTBRG
    SLTBRG field
 
The SLTBRG records specify salt bridges in the entry.
records and is provided here for convenience in searching.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD     DEFINITION
-----------------------------------------------------
13-16    string name1     Atom name.
17       string altLoc1   Alternate location indicator.
18-20    string resName1  Residue name.
22       string chainID1  Chain identifier.
23-26    int    resSeq1   Residue sequence number.
27       string iCode1    Insertion code.
43-46    string name2     Atom name.
47       string altLoc2   Alternate location indicator.
48-50    string resName2  Residue name.
52       string chainID2  Chain identifier.
53-56    int    resSeq2   Residue sequence number.
57       string iCode2    Insertion code.
60-65    string sym1      Symmetry operator for 1st atom.
67-72    string sym2      Symmetry operator for 2nd atom.

 
class SOURCE
    SOURCE field
 
The SOURCE record specifies the biological and/or chemical source of
each biological molecule in the entry. Sources are described by both
the common name and the scientific name, e.g., genus and species.
Strain and/or cell-line for immortalized cells are given when they help
to uniquely identify the biological entity studied.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing a line
 
COLUMNS  TYPE   FIELD   DEFINITION
--------------------------------------------------
11-70    string source  Identifies the source of the macromolecule
                        in a token: value format

 
class SPRSDE
    SPRSDE field
 
The SPRSDE records contain a list of the ID codes of entries that were
made obsolete by the given coordinate entry and withdrawn from the PDB
release set. One entry may replace many. It is PDB policy that only the
principal investigator of a structure has the authority to withdraw it.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD      DEFINITION
-----------------------------------------------
12-20    string sprsdeDate Date this entry superseded the
                           listed entries. 
22-25    string idCode     ID code of this entry. 
32-35    string sIdCode    ID code of a superseded entry.
37-40    string sIdCode    ID code of a superseded entry.
42-45    string sIdCode    ID code of a superseded entry.
47-50    string sIdCode    ID code of a superseded entry.
52-55    string sIdCode    ID code of a superseded entry.
57-60    string sIdCode    ID code of a superseded entry.
62-65    string sIdCode    ID code of a superseded entry.
67-70    string sIdCode    ID code of a superseded entry.

 
class SSBOND
    SSBOND field
 
The SSBOND record identifies each disulfide bond in protein and
polypeptide structures by identifying the two residues involved in the
bond.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
-----------------------------------------------------
 8 - 10  int    serNum         Serial number.
16       string chainID1       Chain identifier.
18 - 21  int    seqNum1        Residue sequence number.
22       string icode1         Insertion code.
30       string chainID2       Chain identifier.
32 - 35  int    seqNum2        Residue sequence number.
36       string icode2         Insertion code.
60 - 65  string sym1           Symmetry operator for 1st residue.
67 - 72  string sym2           Symmetry operator for 2nd residue.

 
class TER
    TER class
 
The TER record indicates the end of a list of ATOM/HETATM records for a
chain.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line:
 
COLUMNS  TYPE   FIELD   DEFINITION
-------------------------------------------
 7-11    int    serial  Serial number.
18-20    string resName Residue name.
22       string chainID Chain identifier.
23-26    int    resSeq  Residue sequence number.
27       string iCode   Insertion code.

 
class TITLE
    TITLE field
 
The TITLE record contains a title for the experiment or analysis that
is represented in the entry. It should identify an entry in the PDB in
the same way that a title identifies a paper.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing a line.
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------------------
11-70    string title  Title of the experiment

 
class TURN
    TURN field
 
The TURN records identify turns and other short loop turns which
normally connect other secondary structure segments.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line 
 
COLUMNS  TYPE   FIELD       DEFINITION
---------------------------------------------------------
8-10     int    seq         Turn number; starts with 1 and
                            increments by one.  
12-14    string turnId      Turn identifier 
16-18    string initResName Residue name of initial residue in
                            turn.  
20       string initChainId Chain identifier for the chain
                            containing this turn.  
21-24    int    initSeqNum  Sequence number of initial residue in
                            turn.  
25       string initICode   Insertion code of initial residue in
                            turn.  
27-29    string endResName  Residue name of terminal residue of
                            turn.  
31       string endChainId  Chain identifier for the chain
                            containing this turn.  
32-35    int    endSeqNum   Sequence number of terminal residue of
                            turn.  
36       string endICode    Insertion code of terminal residue of
                            turn.  
41-70    string comment     Associated comment.

 
class TVECT
    TVECT class
 
The TVECT records present the translation vector for infinite
covalently connected structures.
 
  Methods defined here:
__init__(self, line)
Initialize by parsing line
 
COLUMNS  TYPE   FIELD  DEFINITION
---------------------------------
 8-10    int    serial Serial number
11-20    float  t1     Components of translation vector
21-30    float  t2     Components of translation vector
31-40    float  t2     Components of translation vector
41-70    string text   Comments

 
Functions
       
getRandom()
Download a random PDB and return the path name.
Returns
  path name of downloaded file
main()
Main driver for testing.  Parses set number of random PDBs
readAtom(line)
 If the ATOM/HETATM is not column-formatted, try to get some
 information by parsing whitespace from the right.  Look for
 five floating point numbers followed by the residue number.
 
 Parameters
     line:  The line to parse(string)
if record == ATOM:
     self.serial = int(string.strip(line[6:11]))
     self.name = string.strip(line[12:16])
     self.altLoc = string.strip(line[16])
     self.resName = string.strip(line[17:20])
     self.chainID = string.strip(line[21])
     self.resSeq = int(string.strip(line[22:26]))
     self.iCode = string.strip(line[26])
     self.x = float(string.strip(line[30:38]))
     self.y = float(string.strip(line[38:46]))
     self.z = float(string.strip(line[46:54]))
     try:
         self.occupancy = float(string.strip(line[54:60]))
         self.tempFactor = float(string.strip(line[60:66]))
         self.segID = string.strip(line[72:76])
         self.element = string.strip(line[76:78])
         self.charge = string.strip(line[78:80])
     except ValueError, IndexError:
         self.occupancy = 0.00
         self.tempFactor = 0.00
         self.segID = 0
         self.element = 0
         self.charge = 0
 else: raise ValueError, record
readPDB(file)
Parse PDB-format data into array of Atom objects.
Parameters
  file:  open file object 
Returns (dict, errlist)
  dict:  a dictionary indexed by PDB record names 
  errlist:  a list of record names that couldn't be parsed