Bioplib
Protein Structure C Library
 All Data Structures Files Functions Variables Typedefs Macros Pages
GetCofGPDBRange.c
Go to the documentation of this file.
1 /************************************************************************/
2 /**
3 
4  \file GetCofGPDBRange.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 blGetCofGPDBRange()
60  Find CofG of a range in 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 blGetCofGPDBRange(PDB *start, PDB *stop, VEC3F *cg)
86  --------------------------------------------------------
87 *//**
88 
89  \param[in] *start Start of region of interest in PDB list
90  \param[in] *stop Beginning of next residue
91  \param[out] *cg Centre of geometry of specified region
92 
93  Find CofG of a range in a PDB linked list, ignoring NULL coordinates
94  (specified as all coords==9999.000)
95 
96 - 03.10.94 Original By: ACRM
97 - 07.07.14 Use bl prefix for functions By: CTP
98 */
99 void blGetCofGPDBRange(PDB *start, PDB *stop, 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 
109  for(p=start; p!=NULL && p!=stop; NEXT(p))
110  {
111  if(p->x < 9999.0 || p->y < 9999.0 || p->z < 9999.0)
112  {
113  cg->x += p->x;
114  cg->y += p->y;
115  cg->z += p->z;
116  natom++;
117  }
118  }
119 
120  cg->x /= natom;
121  cg->y /= natom;
122  cg->z /= natom;
123 }
124 
Include file for PDB routines.
REAL x
Definition: MathType.h:70
#define NULL
Definition: array2.c:99
Definition: pdb.h:298
#define NEXT(x)
Definition: macros.h:249
Useful macros.
Definition: MathType.h:69
REAL z
Definition: pdb.h:300
void blGetCofGPDBRange(PDB *start, PDB *stop, VEC3F *cg)
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