Bioplib
Protein Structure C Library
 All Data Structures Files Functions Variables Typedefs Macros Pages
GetCGPDB.c
Go to the documentation of this file.
1 /************************************************************************/
2 /**
3 
4  \file GetCGPDB.c
5 
6  \version V1.2
7  \date 07.07.14
8  \brief Find CofG of a PDB linked list
9 
10  \copyright (c) UCL / Dr. Andrew C. R. Martin 1992-4
11  \author Dr. Andrew C. R. Martin
12  \par
13  Institute of Structural & Molecular Biology,
14  University College London,
15  Gower Street,
16  London.
17  WC1E 6BT.
18  \par
19  andrew@bioinf.org.uk
20  andrew.martin@ucl.ac.uk
21 
22 **************************************************************************
23 
24  This code is NOT IN THE PUBLIC DOMAIN, but it may be copied
25  according to the conditions laid out in the accompanying file
26  COPYING.DOC.
27 
28  The code may be modified as required, but any modifications must be
29  documented so that the person responsible can be identified.
30 
31  The code may not be sold commercially or included as part of a
32  commercial product except as described in the file COPYING.DOC.
33 
34 **************************************************************************
35 
36  Description:
37  ============
38 
39 
40 **************************************************************************
41 
42  Usage:
43  ======
44 
45 **************************************************************************
46 
47  Revision History:
48  =================
49 - V1.0 01.10.92 Original
50 - V1.1 03.10.94 Added GetCofGPDBRange(), FindCofGPDBSCRange() and
51  fixed NULL coord search in GetCofGPDB()
52 - V1.2 07.07.14 Use bl prefix for functions By: CTP
53 
54 *************************************************************************/
55 /* Doxygen
56  -------
57  #GROUP Handling PDB Data
58  #SUBGROUP Calculations
59  #FUNCTION blGetCofGPDB()
60  Finds the CofG of a PDB linked list, ignoring NULL coordinates.
61 */
62 /************************************************************************/
63 /* Includes
64 */
65 #include <math.h>
66 
67 #include "pdb.h"
68 #include "macros.h"
69 #include "MathType.h"
70 
71 /************************************************************************/
72 /* Defines
73 */
74 
75 /************************************************************************/
76 /* Prototypes
77 */
78 
79 /************************************************************************/
80 /* Variables global to this file only
81 */
82 
83 
84 /************************************************************************/
85 /*>void blGetCofGPDB(PDB *pdb,VEC3F *cg)
86  -------------------------------------
87 *//**
88 
89  \param[in] *pdb Start of PDB linked list
90  \param[out] *cg Centre of geometry of specified region
91 
92  Finds the CofG of a PDB linked list, ignoring NULL coordinates.
93 
94 - 01.10.92 Original
95 - 03.10.94 Fixed NULL coordinate ignoring
96 - 07.07.14 Use bl prefix for functions By: CTP
97 */
98 void blGetCofGPDB(PDB *pdb,
99  VEC3F *cg)
100 {
101  int natom;
102  PDB *p;
103 
104  cg->x = 0.0;
105  cg->y = 0.0;
106  cg->z = 0.0;
107  natom = 0;
108  for(p=pdb; p; NEXT(p))
109  {
110  if(p->x < 9999.0 || p->y < 9999.0 || p->z < 9999.0)
111  {
112  cg->x += p->x;
113  cg->y += p->y;
114  cg->z += p->z;
115  natom++;
116  }
117  }
118  cg->x /= natom;
119  cg->y /= natom;
120  cg->z /= natom;
121 }
122 
Include file for PDB routines.
REAL x
Definition: MathType.h:70
Definition: pdb.h:298
#define NEXT(x)
Definition: macros.h:249
Useful macros.
Definition: MathType.h:69
REAL z
Definition: pdb.h:300
void blGetCofGPDB(PDB *pdb, VEC3F *cg)
Definition: GetCGPDB.c:98
Type definitions for maths.
REAL z
Definition: MathType.h:70
REAL y
Definition: MathType.h:70
REAL x
Definition: pdb.h:300
REAL y
Definition: pdb.h:300