/usr/include/mmdb/mmdb_sbase.h is in libmmdb-dev 1.25.5-2+b2.
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 | // $Id: mmdb_sbase.h,v 1.21 2012/01/26 17:52:21 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.
//
// =================================================================
//
// 21.02.06 <-- Date of Last Modification.
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// -----------------------------------------------------------------
//
// **** Module : mmdb_sbase <implementation>
// ~~~~~~~~~
// **** Classes : CSBase ( structure base manager )
// ~~~~~~~~~ CSBAtom ( SB atom class )
// CSBBond ( SB bond class )
// CSBStructure ( SB structure (monomer) class )
// CSBIndex ( SB index class )
//
// (C) E. Krissinel 2000-2008
//
// =================================================================
//
#ifndef __MMDB_SBase__
#define __MMDB_SBase__
#ifndef __MMDB_Manager__
#include "mmdb_manager.h"
#endif
#ifndef __MMDB_SBase0__
#include "mmdb_sbase0.h"
#endif
// =========================== CSBase ============================
DefineStructure(SAtomPair);
struct SAtomPair {
PCAtom a1,a2;
};
DefineClass(CSBase);
class CSBase : public CSBase0 {
public :
CSBase ();
~CSBase();
// CalcHBonds(..) calculates hydrogen bonds and salt bridges
// between atoms of residues given in Res1[0..nres1-1] and
// Res2[0..nres2-1]. H-bonds are returned in HBond[0..nHBonds-1]
// and salt bridges are returned in SBridge[0..nSBridges-1].
//
// On input:
// Res1, Res2 must belong to the same MMDB
// HBond, SBridge should be set NULL, otherwise the
// function attempts to deallocate them
// nHBonds, nSBridges ignored
// structFile may be a pointer to open SBase stucture
// file in order to save on file open
// operation. If structFile is set NULL,
// the function will open the SBase
// structure file by itself
// altLoc specifies the alternative location for
// donors and acceptors.
// altLoc==NULL the highest occupancy
// atoms are taken. If all
// occupancies are equal
// equal then atom with
// first altLoc taken
// altLoc!=NULL atoms with given altLoc
// are taken. If such
// altLoc is not found,
// the function acts as
// if NULL value for altLoc
// were given.
// ignoreNegSigOcc if it is set True, then the function
// ignores atoms with negative occupancy
// standard deviation. Such atoms may be
// hydrogens added by
// CSBase0::AddHydrogen(..) function, in
// general any atoms added by
// CSBAtom::MakeCAtom(..) function. Such
// added hydrogens are note guaranteed to
// be in correct place, therefore the
// function may mistake on some hydrogen
// bonds if they are not neglected.
//
// On output:
// Allocated arrays HBond[0..nHBonds-1] and
// SBridge[0..nSBridges-1]. If no bonds/bridges were found,
// the corresponding array is not allocated and set NULL.
// Application is responsible for deallocation of the arrays,
// when not needed, using statements
// if (HBond) delete[] HBond;
// if (SBridge) delete[] SBridge;
// HBond[i].a1, SBridge[i].a1 always refer atom from Res1[],
// and HBond[i].a2, SBridge[i].a2 always refer atom from
// Res2[].
//
int CalcHBonds ( PPCResidue Res1, int nres1,
PPCResidue Res2, int nres2,
RPSAtomPair HBond, int & nHBonds,
RPSAtomPair SBridge, int & nSBridges,
PCFile structFile=NULL, pstr altLoc=NULL,
Boolean ignoreNegSigOcc=False );
protected :
// Geometry parameters for H-bond calculations
realtype minDAdist,maxSBdist,maxDAdist,maxHAdist2;
realtype maxDHAcos,maxHAAcos,maxDAAcos,maxDDAcos;
void InitSBase ();
void FreeMemory();
};
#endif
|