GLYLIB
0.3.0b
|
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