This file is indexed.

/usr/include/rdkit/GraphMol/MonomerInfo.h is in librdkit-dev 201603.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
//
//  Copyright (C) 2013 Greg Landrum
//
//   @@ All Rights Reserved @@
//  This file is part of the RDKit.
//  The contents are covered by the terms of the BSD license
//  which is included in the file license.txt, found at the root
//  of the RDKit source tree.
//
/*! \file MonomerInfo.h

  \brief Defines Monomer information classes

*/
#ifndef _RD_MONOMERINFO_H
#define _RD_MONOMERINFO_H

#include <string>
#include <boost/shared_ptr.hpp>

namespace RDKit {

//! The abstract base class for atom-level monomer info
class AtomMonomerInfo {
 public:
  typedef enum { UNKNOWN = 0, PDBRESIDUE, OTHER } AtomMonomerType;

  virtual ~AtomMonomerInfo(){};

  AtomMonomerInfo() : d_monomerType(UNKNOWN), d_name(""){};
  AtomMonomerInfo(AtomMonomerType typ, const std::string &nm = "")
      : d_monomerType(typ), d_name(nm){};
  AtomMonomerInfo(const AtomMonomerInfo &other)
      : d_monomerType(other.d_monomerType), d_name(other.d_name){};

  const std::string &getName() const { return d_name; };
  void setName(const std::string &nm) { d_name = nm; };
  AtomMonomerType getMonomerType() const { return d_monomerType; };
  void setMonomerType(AtomMonomerType typ) { d_monomerType = typ; };

  virtual AtomMonomerInfo *copy() const { return new AtomMonomerInfo(*this); }

 private:
  AtomMonomerType d_monomerType;
  std::string d_name;
};

//! Captures atom-level information about peptide residues
class AtomPDBResidueInfo : public AtomMonomerInfo {
 public:
  AtomPDBResidueInfo() : AtomMonomerInfo(PDBRESIDUE){};
  AtomPDBResidueInfo(const AtomPDBResidueInfo &other)
      : AtomMonomerInfo(other),
        d_serialNumber(other.d_serialNumber),
        d_altLoc(other.d_altLoc),
        d_residueName(other.d_residueName),
        d_residueNumber(other.d_residueNumber),
        d_chainId(other.d_chainId),
        d_insertionCode(other.d_insertionCode),
        d_occupancy(other.d_occupancy),
        d_tempFactor(other.d_tempFactor),
        df_heteroAtom(other.df_heteroAtom),
        d_secondaryStructure(other.d_secondaryStructure),
        d_segmentNumber(other.d_segmentNumber){};

  AtomPDBResidueInfo(const std::string &atomName, int serialNumber = 0,
                     const std::string &altLoc = "",
                     const std::string &residueName = "", int residueNumber = 0,
                     const std::string &chainId = "",
                     const std::string &insertionCode = "",
                     double occupancy = 1.0, double tempFactor = 0.0,
                     bool isHeteroAtom = false,
                     unsigned int secondaryStructure = 0,
                     unsigned int segmentNumber = 0)
      : AtomMonomerInfo(PDBRESIDUE, atomName),
        d_serialNumber(serialNumber),
        d_altLoc(altLoc),
        d_residueName(residueName),
        d_residueNumber(residueNumber),
        d_chainId(chainId),
        d_insertionCode(insertionCode),
        d_occupancy(occupancy),
        d_tempFactor(tempFactor),
        df_heteroAtom(isHeteroAtom),
        d_secondaryStructure(secondaryStructure),
        d_segmentNumber(segmentNumber){};

  int getSerialNumber() const { return d_serialNumber; };
  void setSerialNumber(int val) { d_serialNumber = val; };
  const std::string &getAltLoc() const { return d_altLoc; };
  void setAltLoc(const std::string &val) { d_altLoc = val; };
  const std::string &getResidueName() const { return d_residueName; };
  void setResidueName(const std::string &val) { d_residueName = val; };
  int getResidueNumber() const { return d_residueNumber; };
  void setResidueNumber(int val) { d_residueNumber = val; };
  const std::string &getChainId() const { return d_chainId; };
  void setChainId(const std::string &val) { d_chainId = val; };
  const std::string &getInsertionCode() const { return d_insertionCode; };
  void setInsertionCode(const std::string &val) { d_insertionCode = val; };
  double getOccupancy() const { return d_occupancy; };
  void setOccupancy(double val) { d_occupancy = val; };
  double getTempFactor() const { return d_tempFactor; };
  void setTempFactor(double val) { d_tempFactor = val; };
  bool getIsHeteroAtom() const { return df_heteroAtom; };
  void setIsHeteroAtom(bool val) { df_heteroAtom = val; };
  unsigned int getSecondaryStructure() const { return d_secondaryStructure; };
  void setSecondaryStructure(unsigned int val) { d_secondaryStructure = val; };
  unsigned int getSegmentNumber() const { return d_segmentNumber; };
  void setSegmentNumber(unsigned int val) { d_segmentNumber = val; };

  AtomMonomerInfo *copy() const {
    return static_cast<AtomMonomerInfo *>(new AtomPDBResidueInfo(*this));
  }

 private:
  // the fields here are from the PDB definition
  // (http://www.wwpdb.org/documentation/format33/sect9.html#ATOM) [9 Aug, 2013]
  // element and charge are not present since the atom itself stores that
  // information
  unsigned int d_serialNumber;
  std::string d_altLoc;
  std::string d_residueName;
  int d_residueNumber;
  std::string d_chainId;
  std::string d_insertionCode;
  double d_occupancy;
  double d_tempFactor;
  // additional, non-PDB fields:
  bool df_heteroAtom;  // is this from a HETATM record?
  unsigned int d_secondaryStructure;
  unsigned int d_segmentNumber;
};
};
//! allows AtomPDBResidueInfo objects to be dumped to streams
std::ostream &operator<<(std::ostream &target,
                         const RDKit::AtomPDBResidueInfo &apri);

#endif