This file is indexed.

/usr/include/BALL/STRUCTURE/peptideBuilder.h is in libball1.4-dev 1.4.3~beta1-3.

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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//

#ifndef BALL_STRUCTURE_PEPTIDEBUILDER_H
#define BALL_STRUCTURE_PEPTIDEBUILDER_H

#ifndef BALL_STRUCTURE_PEPTIDES_H
#	include <BALL/STRUCTURE/peptides.h>
#endif

namespace BALL
{
	class FragmentDB;

	namespace Peptides
	{
		/** This class represents one amino acid in the sequence.
				\ingroup StructurePeptideBuilder
		*/
		class BALL_EXPORT AminoAcidDescriptor
		{
			public:
	   
	   /** Default constructor.
	    */
	   AminoAcidDescriptor();
	   
	   /** Detailed constructor. Here, type is considered to be
	    *  either a three - letter or a one letter string for the
	    *  amino acid type, phi is the torsion angle phi, psi is
	    *  the psi torsion angle and omega is the angle of the peptide
	    *  bond. By default, a standard alpha-helical geometry is constructed.
	    */
	   AminoAcidDescriptor(const String& type, const Angle& phi=Angle(-47.,false),
			       const Angle& psi=Angle(-58.,false), const Angle& omega=Angle(180.,false));
	   /// Default angles: sheet ????
	   
	   /** Destructor.
	    */
	   virtual ~AminoAcidDescriptor();
	   
	   /** copy constructor
	    */
	   AminoAcidDescriptor(const AminoAcidDescriptor& aad);

	   /** Set the type of the amino acid. type is considered to be a
	    *  one - or three letter code.
	    */
	   void setAminoAcidType(const String& type);
	   
	   /** Set the torsion angle phi.
	    */
	   void setPhi(const Angle& phi);
	   
	   /** Set the torsion angle psi.
	    */
	   void setPsi(const Angle& psi);
	   
	   /** Set the peptide bond angle omega.
	    */
	   void setOmega(const Angle& omega);
	   
	   /** Returns the type of this amino acid.
	    */
	   const String& getType() const;
	   
	   /** Returns the torsion angle phi.
	    */
	   const Angle& getPhi() const;
	   
	   /** Returns the torsion angle psi.
	    */
	   const Angle& getPsi() const;
	   
	   /** Returns the angle of the peptide bond omega.
	    */
	   const Angle& getOmega() const;
	   
	 protected:
	   
	   String type_;
	   Angle phi_;
	   Angle psi_;
	   Angle omega_;
	 };
       
   /** Build a Peptide from a sequence and the corresponing angles.
			 Dont forget to call setFragmentDB() before using this class.
			\ingroup StructurePeptideBuilder
   */
   class BALL_EXPORT PeptideBuilder
	 {
		 public:

	   /** Default constructor.
	    */
	   PeptideBuilder();
	   
	   /** Detailed constructor. This constructor takes a vector of
	    * 	AminoAcidDescriptors and prepares everything for the construction
	    * 	process.
	    */
	   PeptideBuilder(const std::vector<AminoAcidDescriptor>& sequence);

		 /** Construct a peptide from a one-letter code sequence.
		 */
		 PeptideBuilder(const String& sequence, const Angle& phi = Angle(-47., false),
										const Angle& psi = Angle(-58., false), const Angle& omega = Angle(180., false));
	   
	   /** copy constructor 
	    */
	   PeptideBuilder(const PeptideBuilder& pc);

	   /** Destructor.
	    */
	   virtual ~PeptideBuilder();
	   
	   /** Adds another amino acid to the sequence.
	    */
	   void addAminoAcid(const String& type, const Angle& phi=Angle(-47.,false),
			     const Angle& psi=Angle(-58.,false), const Angle& omega=Angle(180.,false));
	   // Sheet angles ???
	   
	   /** Adds another amino acid to the sequence.
	    */   
	   void addAminoAcid(const AminoAcidDescriptor& aad);

	   /** Sets the name of the chain.
	    */  
	   void setChainName(const String& name);
	  
	   /** Returns the name of the chain.
	    */  
	   const String& getChainName() const;

	   /** Sets the name of the protein.
	    */  
	   void setProteinName(const String& name);
	  
	   /** Returns the name of the protein.
	    */  
	   const String& getProteinName() const;

	   /** Constructs the peptide and returns it.
	    */
	   Protein* construct();

		 ///
		 void setFragmentDB(const FragmentDB* db)
			 ;

		 ///
		 const FragmentDB* getFragmentDB() const
			 ;
	   
	 protected:
	   std::vector<AminoAcidDescriptor> sequence_;
	   String chainname_;
	   String proteinname_;
	   
		 /// The proline flag
		 bool is_proline_;
		 FragmentDB* fragment_db_;

	   /** some helper functions for the construction of the residue; for internal use only
	    * omega is not yet implemented
	    */
	   Residue* createResidue_(const String& type, const int id);
	   void	insert_(Residue& resnew, Residue& resold);
	   void	transform_(const Angle& phi, const Angle& psi, Residue& resold, Residue& resnew);
	   void peptide_(Residue& resold, Residue& resnew);
		 void setOmega_(Residue& resold, Residue& residue, const Angle& omega);
	   PDBAtom* getAtomByName_(Residue& res, const String& name);
	 };
       
  } // namespace Peptides

} // namespace BALL

#endif // BALL_STRUCTURE_PEPTIDEBUILDER_H