GLYLIB  0.3.0b
structures.h
Go to the documentation of this file.
00001 /** \file structures.h 
00002 \brief Very poorly named file containing structures
00003 pertinent to the loading of pdb files.  Recommend name change.
00004 
00005 Begun a long time ago by BLFoley and if it was modified at some point since 
00006 then, the person who did so was likely Mike Tessier. */
00007 
00008 #if !defined(GLYLIB_PDB_STRUCTURES)
00009 #define GLYLIB_PDB_STRUCTURES
00010 
00011 /** \addtogroup PDB
00012  * @{
00013  */
00014 typedef struct {
00015         int a; /* integer describing the class for this record name */
00016         int b; /* integer describing record type in class */
00017 } linetype;
00018 typedef struct {
00019         char c[81]; /* pointers to characters in field */
00020 } linefield;
00021 typedef struct {
00022         char f[250]; // "for" string
00023         char r[250]; // "report" string
00024 } queery_set;
00025 typedef struct { 
00026         int a; // integer describing the class for this record name
00027         int b; // integer describing record type in class
00028         char m; /* Character to override modify flags */
00029         int n; /* the line number in the file */
00030         linefield f[25]; /* pointer to field */
00031         int ignore; /* if = 0 line already printed.  Ignore */
00032 } linedef;
00033 typedef struct {
00034         char c[50]; // for sets of short strings
00035 } charlist;
00036 
00037 typedef struct {
00038         char typ[100]; /* type of line -- padded for extra info.  Also
00039                         used for line rule designations. */
00040         int f; /* number of fields */
00041         /* Since the length of any one line is 80 characters, there can be,
00042         *         at most (one hopes) 80 fields.  */
00043         int c[80]; /* number of characters in field */
00044         /*fieldinfo fi[80];  change information for each field */
00045         int i; /* toggle -- 0 for no change information, 1 if exists.
00046                         Others designations can be added... */
00047         char t[80]; /* type of entry for each field:
00048         integer = i
00049         character = c
00050         string = s
00051         float = f
00052         double = d
00053         */
00054 } pdb_line_info;
00055 typedef struct {
00056 /* This structure defines a pdb line.  It defines it by class as given
00057   in the pdb format instructions.  Doing it this way allows rules to be
00058   set per class -- for example, one class should be present, at most, once
00059   in any pdb file.  */
00060         pdb_line_info b[25]; /* pointer to record type -- currently, there
00061                               are 22 record types in the most populated
00062                               class of records. */ 
00063         char r[50]; /* String containing a rule for this entire set of
00064                        lines. */
00065 } pdb_line;
00066 
00067 /* Begin declarations for amber line structure definitions */
00068 pdb_line pdb_a[6]; /* There are 6 record classes, currently (20051104)*/
00069 /* Begin declarations for modify-file rules.  The rules, for now, are limited
00070  * to rules involving HETATM entries.  Eventually, there will be more. */
00071 pdb_line mod_a[6];
00072 /* Pointer to a structure to keep track of user-specified modifications 
00073  * -- will be allocated in init_struct */
00074 pdb_line umod_a[6];
00075 /* Declare a pointer to a linedef.  This will be allocated in init_struct */
00076 linedef *ln;
00077 queery_set QS; //only one allowed currently
00078 /** @}*/
00079 
00080 #endif
 All Classes Files Functions Variables Typedefs Defines