OSDN Git Service

9014f13b5a7e13d516f75c039c54f2134b789417
[eos/base.git] / src / Objects / DataManip / pdbFile / doc / pdbFile.html
1 <H1> pdbFile </H1>
2
3 <UL>
4         <LI> Structure  <DL>
5         <DT> pdbFile
6                 <DD> This structure is used to treat a pdb File.
7                 <DD> pdbFile pdb;
8                 <DD> 
9                 <DD> pdb.PDB->ResidueSequenceNumber
10                 <DD> pdb.PDB->Coord.x
11                 <DD> pdb.PDB->Coord.y
12         </DL>
13         <LI> File  <UL>
14                 <LI> pdbFileRead (fpt, &pdb)
15                 <LI> pdbFileWrite(fpt, &pdb)
16         </UL>
17         <LI> Check <UL>
18                 <LI> pdbFileIsAtom
19                         <DD> if(pdbFileIsAtom(&pdb)) { }
20                 <LI> pdbFileIsCA
21                         <DD> if(pdbFileIsCA(&pdb)) { }
22                 <LI> pdbFileIsEndLine
23                         <DD> if(pdbFileIsEndLine(&pdb)) { }
24                 <LI> pdbRecordisNearby : Adjacent Residue or not
25                         <DD> if(pdbRecordisNearby(&pdbRecord, &pdbRecord)) { }
26                 <LI> pdbFileIsHelix
27                         <DD> if(pdbFileIsHelix(&pdb)) { }
28                 <LI> pdbFileIsSheet
29                         <DD> if(pdbFileIsSheet(&pdb)) { }
30                 <LI> pdbFileIsTurn
31                         <DD> if(pdbFileIsTurn(&pdb)) { }
32                 <LI> pdbFileIsNegative
33                         <DD> if(pdbFileIsNegative(&pdb)) { }
34                 <LI> pdbFileIsPositive
35                         <DD> if(pdbFileIsPositive(&pdb)) { }
36                 <LI> pdbFileIsCharge
37                         <DD> if(pdbFileIsCharge(&pdb)) { }
38         </UL>
39         <LI> Check2 <UL>
40                 <LI> lpdbDistanceCheck : mode 0: Near 1: Far ; compare the distance between pdb->current with p v.s. distance
41                         <DD> if(lpdbDistanceCheck(&pdb, p, distance, mode)) {
42                 <LI> lpdbDistanceNear
43                         <DD> if(lpdbDistanceNear(&pdb, p, distance, mode)) {
44                 <LI> lpdbDistanceFar
45                         <DD> if(lpdbDistanceFar(&pdb, p, distance, mode)) {
46         </UL>
47         <LI> Get and Set  <UL>
48                 <p><B>Get</B>
49                 <LI> pdbFileCoordGet(&pdb, &x, &y, &z)
50                 <LI> unsigned char pdbFileChainIdentifierGet(&pdb)
51                 <LI> pdbFileResidueSequenceNumberGet(&pdb)
52                 <LI> char* pdbFileResidueNameGet(&pdb,mode)
53                 <p><B>Set</B>
54                 <LI> pdbFileCoordSet(&pdb, x, y, z)
55                 <LI> pdbFileChainIdentifierSetAll(&pdb, c)
56                 <LI> pdbFileChainIdentifierSet(&pdb, c)
57                 <LI> pdbFileTemperatureFactorSet(&pdb, (double)temp)
58         </UL>
59         <LI> Seeking <UL>
60                 <LI> pdbFileTop(&pdb)
61                 <LI> pdbFileNext(&pdb)
62                 <LI> pdbFileNextAtom(&pdb)
63                 <LI> pdbFileNextCA(&pdb)
64                 <LI> pdbFileNextProtein(&pdb)
65                 <LI> pdbFileEnd(&pdb)
66         </UL>
67         <LI> New, append etc. <UL>
68                 <LI> pdbFileNew(&pdb)
69                 <LI> pdbFileAppend(&pdb)
70                 <LI> pdbFileFree(&pdb)
71         </UL>
72         <LI> Print  <UL>
73                 <LI> pdbFilePrint(fpt, &pdb); 
74                 <LI> pdbFileRecordPrint(fpt, &pdb); 
75                 <LI> pdbFileRecordTablePrint(fpt, &pdb); 
76         </UL>
77         <LI> Copy <UL>
78                 <LI> pdbFileOneRecordCopy(&pdb, &src)
79                 <LI> pdbFileCAOnlyCopyAll(&pdb, &src)
80                 <LI> pdbFileCopyAll(&pdb, &src)
81                 <LI> pdbFileOneProteinCopy(&pdb, &src, num)  
82                 <LI> pdbFileCAOnlyCopyAll(&pdb, &src)
83         </UL>
84         <LI> Translation and rotation <UL>
85                 <LI> pdbTrans
86                 <LI> pdbMatrixFileRead
87                 <LI> pdbMatrixFileWrite
88                 <LI> pdbMatrixFileFormat
89         </UL>
90         <LI> Transform <UL>
91                 <LI> lpdb2mrc3d
92                         <DD> lpdb2mrc3d(&mrc, &pdb, &linfo, mode)
93         </UL>
94 </UL>
95 <HR>
96 <A NAME="Information">
97 <H2>Information from source codes</H2>
98 </A>
99 <PRE>
100 ../src/lpdb2mrc2d.c:
101
102 ../src/lpdb2mrc3d.c:
103
104 ../src/lpdbCoord.c:
105
106 ../src/lpdbCoordInfo.c:
107
108 ../src/lpdbSelectedAtom.c:
109
110 ../src/lpdbSurface.c:
111
112 ../src/pdbFileRead.c:
113
114 ../src/pdbFileWrite.c:
115
116 ../src/pdbGet.c:
117
118 ../src/pdbInfoGet.c:
119
120 ../src/pdbRotation.c:
121
122 ../src/pdbSecondaryStructure.c:
123
124 ../src/pdbSet.c:
125
126 ../src/pdbTrans.c:
127
128 ../src/pdbUtil.c:
129 </PRE>
130 <HR>
131 <A NAME="include">
132 <H2>pdbFile.h</H2>
133 </A>
134 <PRE>
135 #ifndef PDB_FILE_H
136 #define PDB_FILE_H
137 /*
138 # %M% %Y% %I%
139 # The latest update : %G% at %U%
140 #
141 #%Z% pdbFile.h ver %I%
142 #%Z% Created by tacyas
143 #%Z%
144 #%Z% Usage : pdbFile.h 
145 #%Z% Attention
146 #%Z%
147 */
148 #include <stdio.h>
149 #include "Matrix3D.h"
150 #include "mrcImage.h"
151
152 /* constant begin */
153 #define PDB_FILE_RECORD_FULL_LENGTH (80)
154 #define PDB_FILE_RECORD_START       (0)
155 #define PDB_FILE_RECORD_LENGTH      (6)
156 #define PDB_FILE_ATOM_NUMBER_START  (6)
157 #define PDB_FILE_ATOM_NUMBER_LENGTH (5)
158 #define PDB_FILE_ATOM_NAME_START    (12)
159 #define PDB_FILE_ATOM_NAME_LENGTH   (4)
160 #define PDB_FILE_LOCATION_START     (16)
161 #define PDB_FILE_LOCATION_LENGTH    (1)
162 #define PDB_FILE_RESIDUE_START      (17)
163 #define PDB_FILE_RESIDUE_LENGTH     (3)
164 #define PDB_FILE_CHAIN_IDENT_START  (21)
165 #define PDB_FILE_CHAIN_IDENT_LENGTH (1)
166 #define PDB_FILE_RESNUM_START       (22)
167 #define PDB_FILE_RESNUM_LENGTH      (4)
168 #define PDB_FILE_INSERTION_START    (26)
169 #define PDB_FILE_INSERTION_LENGTH   (1)
170 #define PDB_FILE_X_START            (30)
171 #define PDB_FILE_X_LENGTH           (8)
172 #define PDB_FILE_Y_START            (38)
173 #define PDB_FILE_Y_LENGTH           (8)
174 #define PDB_FILE_Z_START            (46)
175 #define PDB_FILE_Z_LENGTH           (8)
176 #define PDB_FILE_OCCUPANCY_START    (54)
177 #define PDB_FILE_OCCUPANCY_LENGTH   (6)
178 #define PDB_FILE_TEMPERATURE_START  (60)
179 #define PDB_FILE_TEMPERATURE_LENGTH (6)
180 #define PDB_FILE_FOOT_START         (67)
181 #define PDB_FILE_FOOT_LENGTH        (3)
182 #define PDB_FILE_FOOTNOTE_START     (70)
183 #define PDB_FILE_FOOTNOTE_LENGTH    (10)
184 #define PDB_FILE_SEGID_START        (72)
185 #define PDB_FILE_SEGID_LENGTH       (4)
186 #define PDB_FILE_ELEMENT_START      (76)
187 #define PDB_FILE_ELEMENT_LENGTH     (2)
188 #define PDB_FILE_CHARGE_START       (78)
189 #define PDB_FILE_CHARGE_LENGTH      (2)
190 #define MAX_RESIDUE_NUMBER          (20)
191 #define RESIDUE_ONECHAR_MODE        (1)
192 #define RESIDUE_THREECHAR_MODE      (3)
193 #define PDB_FILE_ANISOU_U11_START   (28) 
194 #define PDB_FILE_ANISOU_U11_LENGTH  (7) 
195 #define PDB_FILE_ANISOU_U22_START   (35) 
196 #define PDB_FILE_ANISOU_U22_LENGTH  (7) 
197 #define PDB_FILE_ANISOU_U33_START   (42) 
198 #define PDB_FILE_ANISOU_U33_LENGTH  (7) 
199 #define PDB_FILE_ANISOU_U12_START   (49) 
200 #define PDB_FILE_ANISOU_U12_LENGTH  (7) 
201 #define PDB_FILE_ANISOU_U13_START   (56) 
202 #define PDB_FILE_ANISOU_U13_LENGTH  (7) 
203 #define PDB_FILE_ANISOU_U23_START   (63) 
204 #define PDB_FILE_ANISOU_U23_LENGTH  (7) 
205
206 #define pdbRecordAtom       ("ATOM  ")
207 #define pdbRecordHeteroAtom ("HETATM")
208 #define pdbRecordANISOU     ("ANISOU")
209 #define pdbRecordHelix      ("HELIX ")
210 #define pdbRecordSheet      ("SHEET ")
211 #define pdbRecordTurn       ("TURN  ")
212 #define pdbRecordEnd        ("END   ")
213
214 /* constant end */
215
216 /* struct begin */
217 typedef char  pdbFileParaTypeCharacter;
218 typedef long  pdbFileParaTypeInteger;
219 typedef float pdbFileParaTypeReal;
220
221 typedef struct residueName {
222   char residueName3[4];
223   char residueName1[2];
224 } residueName;
225
226 typedef struct pdbCoord {
227   pdbFileParaTypeReal x;
228   pdbFileParaTypeReal y;
229   pdbFileParaTypeReal z;
230 } pdbCoord;
231
232 typedef enum pdbSecondaryStructureHelixClass {
233         HelixClassRightHandedAlpha = 1,
234         HelixClassRightHandedOmega = 2,
235         HelixClassRightHandedPi    = 3,
236         HelixClassRightHandedGammda= 4,
237         HelixClassRightHanded310   = 5,
238         HelixClassLeftHandedAlpha  = 6,
239         HelixClassLeftHandedOmega  = 7,
240         HelixClassLeftHandedGammda = 9,
241         HelixClassPolyProline      = 10,
242 } pdbSecondaryStructureHelixClass;
243
244 typedef struct pdbSecondaryStructureHelix {
245         int  serNum;            /* Serial Number */
246         char* helixID;          /* HelixID : Three alpahnumeric characters */
247 /* informtion for the initial residue */
248         char* initResName;/* Name of the initial residue : Three alpahnumeric characters */ 
249         char initChainID;       /* Chain identifier */ 
250         int  initSeqNum;    /* Sequence number of the initial residue */
251         char initICode; 
252 /* informtion for the terminal residue */
253         char* endResName;/* Name of the initial residue : Three alpahnumeric characters */ 
254         char endChainID;        /* Chain identifier */ 
255         int  endSeqNum;    /* Sequence number of the initial residue */
256         char endICode; 
257
258         pdbSecondaryStructureHelixClass helixClass;
259         char* comment; 
260         int  length;
261 } pdbSecondaryStructureHelix;
262
263 typedef struct pdbSecondaryStructureSheet {
264         int  strand;            /* Strand number which starts 1 for eache strand wihtin a sheet and increases by one */  
265         char* sheetID;    /* Sheet ID */                        
266         int  numStrands;    /* Number of strands in sheet */
267
268 /* initial residue */
269         char* initResName;/* Name of the initial residue : Three alpahnumeric characters */ 
270         char initChainID;       /* Chain identifier */ 
271         int  initSeqNum;    /* Sequence number of the initial residue */
272         char initICode; 
273
274 /* informtion for the terminal residue */
275         char* endResName;/* Name of the initial residue : Three alpahnumeric characters */ 
276         char endChainID;        /* Chain identifier */ 
277         int  endSeqNum;    /* Sequence number of the initial residue */
278         char endICode; 
279
280         int sense;  /* 0: first strand, 1: parallel, -1: anti-paralle */ 
281
282         char* curAtom; /* Registration. Atom name in current strand */
283         char* curResName; /* Registration. Residue name in current strand */
284         char curChainID; /* Registration. Chain ID in current strand */
285         int  curResSeq;  /* Registration. Res sequence in current strand */
286         char curICode;  /* Registration. Insertion code in current strand */
287
288         char* prevAtom; /* Registration. Atom name in current strand */
289         char* prevResName; /* Registration. Residue name in current strand */
290         char prevChainID; /* Registration. Chain ID in current strand */
291         int prevResSeq;  /* Registration. Res sequence in current strand */
292         char prevICode;  /* Registration. Insertion code in current strand */
293 }pdbSecondaryStructureSheet;
294
295
296 typedef struct pdbSecondaryStructureTurn {
297         int  serNum;            /* Serial Number */
298         char* turnID;           /* Turn ID : Three alpahnumeric characters */
299 /* informtion for the initial residue */
300         char* initResName;/* Name of the initial residue : Three alpahnumeric characters */ 
301         char initChainID;       /* Chain identifier */ 
302         int  initSeqNum;    /* Sequence number of the initial residue */
303         char initICode; 
304 /* informtion for the terminal residue */
305         char* endResName;/* Name of the initial residue : Three alpahnumeric characters */ 
306         char endChainID;        /* Chain identifier */ 
307         int  endSeqNum;    /* Sequence number of the initial residue */
308         char endICode; 
309
310         char* comment; 
311 }pdbSecondaryStructureTurn;
312
313 typedef struct pdbSecondaryStructureNo {
314         int   serNum;           /* Serial Number */
315         char* noID;         /* Turn ID : Three alpahnumeric characters */
316 /* informtion for the initial residue */
317         char* initResName;/* Name of the initial residue : Three alpahnumeric characters */ 
318         char initChainID;       /* Chain identifier */ 
319         int  initSeqNum;    /* Sequence number of the initial residue */
320         char initICode; 
321 /* informtion for the terminal residue */
322         char* endResName;/* Name of the initial residue : Three alpahnumeric characters */ 
323         char endChainID;        /* Chain identifier */ 
324         int  endSeqNum;    /* Sequence number of the initial residue */
325         char endICode; 
326
327         char* comment; 
328 }pdbSecondaryStructureNo;
329
330 typedef enum pdbFileSecondaryStructureMode {
331         pdbFileSecondaryStructureModeNo    = 0,
332         pdbFileSecondaryStructureModeHelix = 1,
333         pdbFileSecondaryStructureModeSheet = 2,
334         pdbFileSecondaryStructureModeTurn  = 3
335 } pdbFileSecondaryStructureMode;
336
337 typedef struct pdbFileSecondaryStructureRecord pdbFileSecondaryStructureRecord; 
338 struct pdbFileSecondaryStructureRecord {
339         pdbFileSecondaryStructureMode mode;
340         pdbSecondaryStructureHelix*   helix;
341         pdbSecondaryStructureSheet*   sheet;
342         pdbSecondaryStructureTurn*    turn;
343         pdbSecondaryStructureNo*      no;
344
345         pdbFileSecondaryStructureRecord* prev;
346         pdbFileSecondaryStructureRecord* next;
347 };
348
349 typedef struct pdbFileSecondaryStructure {
350         int nSecondaryStructure;
351         pdbFileSecondaryStructureRecord* top;
352         pdbFileSecondaryStructureRecord* SecondaryStructure; 
353 } pdbFileSecondaryStructure;
354
355 typedef struct pdbRecord pdbRecord;
356
357 struct pdbRecord {
358   pdbFileParaTypeCharacter FullRecord[PDB_FILE_RECORD_FULL_LENGTH+1];
359
360   pdbFileParaTypeCharacter Record[PDB_FILE_RECORD_LENGTH+1];
361
362 /* ATOM and HETATM Record */
363   pdbFileParaTypeInteger   AtomSerialNumber;
364   pdbFileParaTypeCharacter AtomName[PDB_FILE_ATOM_NAME_LENGTH+1];
365   pdbFileParaTypeCharacter LocationIndicator;
366   pdbFileParaTypeCharacter ResidueName[PDB_FILE_RESIDUE_LENGTH+1];
367   pdbFileParaTypeCharacter ChainIdentifier;
368   pdbFileParaTypeInteger   ResidueSequenceNumber;
369   pdbFileParaTypeCharacter InsertionCode;
370   pdbCoord                 Coord;
371   pdbFileParaTypeReal      Occupancy;
372   pdbFileParaTypeReal      TemperatureFactor;
373   pdbFileParaTypeInteger   FootnoteNumber;
374   pdbFileParaTypeCharacter Footnote[PDB_FILE_FOOTNOTE_LENGTH+1];
375   pdbFileParaTypeCharacter SegID[PDB_FILE_SEGID_LENGTH+1];
376   pdbFileParaTypeCharacter Element[PDB_FILE_ELEMENT_LENGTH+1];
377   pdbFileParaTypeCharacter Charge[PDB_FILE_CHARGE_LENGTH+1];
378
379   int flagANISOU;
380   pdbRecord*               pAtomforANISOU;
381   pdbFileParaTypeReal      U11;
382   pdbFileParaTypeReal      U22;
383   pdbFileParaTypeReal      U33;
384   pdbFileParaTypeReal      U12;
385   pdbFileParaTypeReal      U13;
386   pdbFileParaTypeReal      U23;
387
388   pdbRecord*               prev;
389   pdbRecord*               next;
390
391 };
392
393 typedef struct pdbFile {
394   pdbRecord* top;
395   pdbRecord* PDB;
396   pdbFileParaTypeInteger nAtom;
397   pdbFileSecondaryStructure second;
398 } pdbFile;
399 /* struct end */
400
401 #ifdef __cplusplus
402 extern "C" {
403 #endif
404
405 /* prototype begin */
406 /* in pdbFileRead.c */
407 extern void pdbFileRead(FILE* fpt, pdbFile* pdb);
408 /* in pdbFileWrite.c */
409 extern void pdbFileWrite(FILE* fpt, pdbFile* pdb);
410 extern void pdbFileWriteCoord(FILE* fpt, pdbFile* pdb);
411 /*werewolf presents*/
412 extern void pdbFileTableWrite(FILE* fpt, pdbFile* pdb); 
413 extern void pdbFileWriteSecondaryStructure(FILE* fpt, pdbFileSecondaryStructure* second);
414
415
416 extern void pdbMatrixFileFormat(FILE* fpt);
417 extern void pdbMatrixFileRead(FILE* fpt, Matrix3D Matrix);
418 extern void pdbMatrixFileWrite(FILE* fpt, Matrix3D Matrix);
419
420 extern void pdbTrans(pdbFile* pdb, Matrix3D Matrix);
421 //extern void pdbTransCuda(pdbFile* pdb, Matrix3D Matrix);
422 extern void pdbTransCuda(float* hv, int n, Matrix3D Matrix);
423
424 extern void pdbFileResidueSequenceNumberIncrementAll(pdbFile* pdb, int n);
425 extern void pdbFileResidueSequenceNumberIncrement(pdbFile* pdb, int n);
426
427 extern void pdbFileChainIdentifierSetAll(pdbFile* pdb, unsigned char c);
428 extern void pdbFileChainIdentifierSet(pdbFile* pdb, unsigned char c);
429 extern unsigned char pdbFileChainIdentifierGet(pdbFile* pdb);
430
431 extern pdbFileParaTypeReal pdbFileTemperatureFactorGet(pdbFile* pdb);
432 extern void pdbFileTemperatureFactorSet(pdbFile* pdb, double temp);
433
434 extern pdbFileParaTypeReal pdbFileOccupancyGet(pdbFile* pdb);
435 extern void pdbFileOccupancySet(pdbFile* pdb, double temp);
436
437 extern long pdbFileCoordSet(pdbFile* pdb, pdbFileParaTypeReal x, pdbFileParaTypeReal y, pdbFileParaTypeReal z);
438
439 extern long pdbFileCoordGet(pdbFile* pdb, pdbFileParaTypeReal* x, pdbFileParaTypeReal* y, pdbFileParaTypeReal* z);
440 extern long pdbFileResidueSequenceNumberGet(pdbFile* pdb);
441 extern char* pdbFileResidueNameGet(pdbFile* pdb,int mode);
442
443 extern pdbRecord* pdbFileTop(pdbFile* pdb);
444 extern pdbRecord* pdbFileTopPointer(pdbFile* pdb);
445 extern pdbRecord* pdbFileNext(pdbFile* pdb);
446 extern pdbRecord* pdbFileNextAtom(pdbFile* pdb);
447 extern pdbRecord* pdbFileNextCA(pdbFile* pdb);
448 extern pdbRecord* pdbFilePrev(pdbFile* pdb);
449 extern pdbRecord* pdbFilePrevAtom(pdbFile* pdb);
450 extern pdbRecord* pdbFilePrevCA(pdbFile* pdb);
451 extern long pdbFileEnd(pdbFile* pdb);
452 extern long pdbFileGoToEnd(pdbFile* pdb);
453 extern long pdbFileIsEndLine(pdbFile* pdb);
454 extern long pdbFileIsAtom(pdbFile* pdb);
455 extern long pdbFileIsANISOU(pdbFile* pdb);
456 extern long pdbRecordIsNearby(pdbRecord record1,pdbRecord record2);
457 extern long pdbFileIsCA(pdbFile* pdb);
458 extern long pdbFileIsNegative(pdbFile* pdb);
459 extern long pdbFileIsPositive(pdbFile* pdb);
460 extern long pdbFileIsCharge(pdbFile* pdb);
461 extern long pdbFileIsSecondaryStructure(pdbFile* pdb);
462 extern long pdbFileIsHelix(pdbFile* pdb);
463 extern long pdbFileIsSheet(pdbFile* pdb);
464 extern long pdbFileIsTurn(pdbFile* pdb);
465 extern pdbRecord* pdbFileNew(pdbFile* pdb);
466 extern pdbRecord* pdbFileAppend(pdbFile* pdb);
467 extern pdbRecord* pdbFileFree(pdbFile* pdb);
468 extern pdbRecord* pdbFileRecordPrint(FILE* fpt, pdbFile* pdb);
469
470 extern pdbFileParaTypeInteger pdbZValueGet(pdbFile* pdb);
471 /*werewolf presented*/
472 extern pdbRecord* pdbFileRecordTablePrint(FILE* fpt, pdbFile* pdb);
473
474 extern pdbFileSecondaryStructureRecord* pdbFileSecondaryStructureRecordPrint(FILE* fpt, pdbFileSecondaryStructureRecord* second);
475 extern pdbRecord* pdbFileCAOnlyCopy(pdbFile* pdb, pdbFile* src);
476 extern void pdbFileCAOnlyCopyAll(pdbFile* pdb, pdbFile* src);
477 extern void pdbFileCopyAll(pdbFile* dst, pdbFile* src);
478 extern void pdbFileAppendAll(pdbFile* dst, pdbFile* src);
479 extern pdbRecord* pdbFileOneRecordCopy(pdbFile* dst, pdbFile* src);
480 extern void pdbFileOneProteinCopy(pdbFile* dst, pdbFile* src, long num);
481
482
483 extern void pdbRotationFollowingEulerAngle(pdbFile* pdb, char Mode[4], pdbFileParaTypeReal rot1, pdbFileParaTypeReal rot2, pdbFileParaTypeReal rot3);
484 extern void pdbRotationFollowingEulerAngleInverse(pdbFile* pdb, char Mode[4], pdbFileParaTypeReal rot1, pdbFileParaTypeReal rot2, pdbFileParaTypeReal rot3);
485 extern void pdbRotationXYZ(pdbFile* pdb, pdbFileParaTypeReal rotx, pdbFileParaTypeReal roty, pdbFileParaTypeReal rotz);
486 extern void pdbRotationZYX(pdbFile* pdb, pdbFileParaTypeReal rotx, pdbFileParaTypeReal roty, pdbFileParaTypeReal rotz);
487 extern void pdbRotationZXY(pdbFile* pdb, pdbFileParaTypeReal rotx, pdbFileParaTypeReal roty, pdbFileParaTypeReal rotz);
488 extern void pdbRotationYXZ(pdbFile* pdb, pdbFileParaTypeReal rotx, pdbFileParaTypeReal roty, pdbFileParaTypeReal rotz);
489
490 extern int pdbSecondaryStructureSetFromPDB(pdbFile* pdb, pdbFileSecondaryStructure* second);
491 extern int pdbNoSecondaryStructureSetFromPDB(pdbFile* pdb, pdbFileSecondaryStructure* second);
492 extern int pdbSecondaryStructureAppend(pdbFileSecondaryStructure* second);
493 extern pdbFileSecondaryStructureMode pdbFileWithSecondaryStructure(pdbFile* pdb, pdbFileSecondaryStructure* second);
494
495 /* prototype end */
496
497 #ifdef __cplusplus
498 }
499 #endif
500 #endif /* PDB_FILE_H */
501 </PRE>