This file is indexed.

/usr/include/mmdb/mmdb_defs.h is in libmmdb-dev 1.25.5-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
//  $Id: mmdb_defs.h,v 1.27 2012/01/26 17:52:20 ekr Exp $
//  =================================================================
//
//   CCP4 Coordinate Library: support of coordinate-related
//   functionality in protein crystallography applications.
//
//   Copyright (C) Eugene Krissinel 2000-2008.
//
//    This library is free software: you can redistribute it and/or
//    modify it under the terms of the GNU Lesser General Public
//    License version 3, modified in accordance with the provisions
//    of the license to address the requirements of UK law.
//
//    You should have received a copy of the modified GNU Lesser
//    General Public License along with this library. If not, copies
//    may be downloaded from http://www.ccp4.ac.uk/ccp4license.php
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU Lesser General Public License for more details.
//
//  =================================================================
//
//    23.06.13   <--  Date of Last Modification.
//                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//  -----------------------------------------------------------------
//
//  **** Module  :   MMDBF_Defs <interface>
//       ~~~~~~~~~
//  **** Project :   MacroMolecular Data Base (MMDB)
//       ~~~~~~~~~
//
//      Definition of types, constants and important classes.
//
//  (C) E. Krissinel 2000-2013
//
//  =================================================================
//

#ifndef __MMDB_Defs__
#define __MMDB_Defs__

#ifndef  __MatType__
#include "mattype_.h"
#endif

#define MMDB_MAJOR_VERSION    (1)
#define MMDB_MINOR_VERSION    (25)
#define MMDB_MICRO_VERSION    (5)


//  =======================  types  =================================

typedef  char         IDCode  [16];   // ID code of the entry
typedef  IDCode *     PIDCode;        // pointer to ID code
typedef  PIDCode &    RPIDCode;       // ref-ce to pointer to ID code
typedef  char         Date    [12];   // date DD-MMM-YYYY
typedef  char         RecName [7];    // name of PDB record

typedef  char         ChainID [10];   // chain ID
typedef  ChainID *    PChainID;       // pointer to chain ID
typedef  char         InsCode [10];   // insertion code
typedef  char         DBName  [10];   // sequence database name
typedef  char         DBAcCode[20];   // seq. database accession code
typedef  DBAcCode *   PDBAcCode;      // pointer to seq. db acc code
typedef  char         DBIdCode[20];   // seq. database ident-n code
typedef  DBIdCode *   PDBIdCode;      // pointer to DBIdCode
typedef  char         ResName [20];   // residue name
typedef  ResName  *   PResName;       // pointer to residue name
typedef  PResName *   PPResName;      // ptr to vector of residue names
typedef  char         HelixID [20];   // helix ID
typedef  char         StrandID[20];   // strand ID
typedef  char         SheetID [20];   // sheet ID
typedef  char         TurnID  [20];   // turn ID
typedef  char         LinkRID [20];   // Refmac link ID

typedef  char         SymGroup[100];  // group of space symmetry
typedef  realtype     vect3   [3];    // vector of 3 real numbers
typedef  vect3    *   pvect3;
typedef  pvect3   &   rpvect3;
typedef  realtype     vect4   [4];    // vector of 4 real numbers
typedef  vect3        mat33   [3];    // matrix 3x3 of real numbers

typedef  vect4        mat44   [4];    // matrix 4x4 of real numbers
typedef  mat44    *   pmat44;
typedef  mat44    &   rmat44;
typedef  pmat44   *   ppmat44;
typedef  pmat44   &   rpmat44;
typedef  mat33        mat633  [6];    // matrix 6x3x3 of real numbers

typedef  char         AtomName[20];   // name of the atom
typedef  AtomName *   PAtomName;      // pointer to atom name
typedef  char         AltLoc  [20];   // alternate location indicator
typedef  AltLoc   *   PAltLoc;        // pointer to alt loc indicator
typedef  char         SegID   [20];   // segment identifier
typedef  char         Element [10];   // chemical element name
typedef  Element  *   PElement;       // ptr to chemical element name
typedef  char         EnergyType[10]; // energy type name
typedef  EnergyType * PEnergyType;    // pointer to energy type name

// do not forget update this when change the above typedefs:
#define MaxMMDBNameLength  40
typedef  char     maxMMDBName[MaxMMDBNameLength];


//  =====================  constants  ===============================

//   ANY_RES should be used in selection functions for specifying
// "any residue" to select
#define ANY_RES  MinInt4

//    PRNK_XXXXX are the print keys. PRNK_Silent supresses all print
// inside mmdb_xxxx unless specifically ordered or catastrophic.
// PRNK_SimRWBROOK instructs mmdb to issue, whenever possible and
// necessary, printouts and warnings of RWBROOK (fortran) package.
#define  PRNK_Silent                0
#define  PRNK_SimRWBROOK            1

//  Error_XXXX may be returned by XX::ConvertPDBString() and GetCIF(..)
// functions.
//  Error_WrongSection is returned if the string passed into function
// does not belong to the corresponding PDB section.

#define  Error_NoError               0
#define  Error_Ok                    0
#define  Error_WrongSection          1

#define  Error_WrongChainID          2
#define  Error_WrongEntryID          3

//  Error_SEQRES_serNum is returned by CSeqRes::ConvertPDBASCII() if
//  serial numbers of SEQRES records do not increment by 1
#define  Error_SEQRES_serNum         4

//  Error_SEQRES_numRes is returned by CSeqRes::ConvertPDBASCII() if
//  SEQRES records show different number of residues
#define  Error_SEQRES_numRes         5

//  Error_SEQRES_extraRes is returned by CSeqRes::ConvertPDBASCII() if
//  SEQRES contains more residues than specified
#define  Error_SEQRES_extraRes       6

#define  Error_NCSM_Unrecognized     7
#define  Error_NCSM_AlreadySet       8
#define  Error_NCSM_WrongSerial      9
#define  Error_NCSM_UnmatchIG       10

#define  Error_ATOM_Unrecognized    11
#define  Error_ATOM_AlreadySet      12
#define  Error_ATOM_NoResidue       13
#define  Error_ATOM_Unmatch         14

#define  Error_CantOpenFile         15
#define  Error_UnrecognizedInteger  16
#define  Error_WrongModelNo         17
#define  Error_DuplicatedModel      18
#define  Error_NoModel              19
#define  Error_ForeignFile          20
#define  Error_WrongEdition         21

//  CIF specific
#define  Error_NotACIFFile          22
#define  Error_NoData               23
#define  Error_UnrecognCIFItems     24
#define  Error_MissingCIFField      25
#define  Error_EmptyCIFLoop         26
#define  Error_UnexpEndOfCIF        27
#define  Error_MissgCIFLoopField    28
#define  Error_NotACIFStructure     29
#define  Error_NotACIFLoop          30
#define  Error_UnrecognizedReal     31

#define  Error_NoSheetID            32
#define  Error_WrongSheetID         33
#define  Error_WrongStrandNo        34

//   Error_WrongNumberOfStrands may be issued when reading
// sheet data from CIF
#define  Error_WrongNumberOfStrands 35

//   Error_WrongSheetOrder may be issued when reading
// sheet data from CIF
#define  Error_WrongSheetOrder      36

//   Error_HBondInconsistency may be issued when reading
// sheet data from CIF
#define  Error_HBondInconsistency   37

//   Error_EmptyResidueName is issued when PDB ATOM record
// does not have a residue name
#define  Error_EmptyResidueName     38

//   Error_DuplicateSeqNum is issued when PDB ATOM records
// show the sequence number and insertion code assigned
// to more than one residue name
#define  Error_DuplicateSeqNum      39

//   Error_NoLogicalName may be returned by file i/o functions
// if the specified environmental variable for file name
// is not found.
#define  Error_NoLogicalName        40

//   Error_EmptyFile may be returned at reading non-existing
// coordinate files
#define  Error_EmptyFile            41


//   Error_CIF_EmptyRow is the event of encountering
// an empty row in _atom_site loop. It is handled
// internally and has no effect on API
#define  Error_CIF_EmptyRow      99999

#define  Error_GeneralError1     10000


//  ClassID_XXXX are used by container classes for proper
// creating containered classes when reading from binary file.

enum ClassID {
  ClassID_Template   ,
  ClassID_String     ,
  ClassID_ObsLine    ,
  ClassID_TitleLine  ,
  ClassID_CAVEAT     ,
  ClassID_Compound   ,
  ClassID_Source     ,
  ClassID_ExpData    ,
  ClassID_MdlType    ,
  ClassID_Author     ,
  ClassID_RevData    ,
  ClassID_Supersede  ,
  ClassID_Journal    ,
  ClassID_Remark     ,
  ClassID_DBReference,
  ClassID_SeqAdv     ,
  ClassID_ModRes     ,
  ClassID_Het        ,
  ClassID_NCSMatrix  ,
  ClassID_TVect      ,
  ClassID_Helix      ,
  ClassID_Turn       ,
  ClassID_Link       ,
  ClassID_LinkR      ,
  ClassID_CisPep
};


//  =====================  classes  ===============================

DefineClass(CAtom)
DefineClass(CResidue)
DefineClass(CChain)
DefineClass(CModel)
DefineClass(CMMDBManager)


#endif