This file is indexed.

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

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
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
#ifndef BALL_STRUCTURE_SIDECHAINPLACEMENTPROCESSOR_H
#define BALL_STRUCTURE_SIDECHAINPLACEMENTPROCESSOR_H

#ifndef BALL_CONCEPT_PROCESSOR_H
	#include <BALL/CONCEPT/processor.h>
#endif

#ifndef BALL_KERNEL_ATOMCONTAINER_H
	#include <BALL/KERNEL/atomContainer.h>
#endif

#ifndef BALL_DATATYPE_OPTIONS_H
# include <BALL/DATATYPE/options.h>
#endif

namespace BALL 
{
	/**	Side Chain Placement Processor
			\ingroup StructureMiscellaneous
	*/
	
	/** Placement of side chains.
	 * 
	 *  Given the path to the SCWRL binary in the option Option::SCWRL_BINARY_PATH;
	 *  the processor computes side chain conformations for the given side chains. 
	 *  If no selection is given all side chains are considered.
	 *  The option Option::MUTATE_SELECTED_SIDE_CHAINS can be used to mutate selected
	 *  amino acids as specified in the member mutated_sequence_.
	 *
	 *  <br> 
	 *  Example code: <br> 	
	 *  \code
	 *
	    	SideChainPlacementProcessor scpp;
				scpp.options.set(SideChainPlacementProcessor::Option::MUTATE_SELECTED_SIDE_CHAINS, true);

				System sys;	
				PDBFile mol("myfile.pdb"); 
				mol >> sys;
				String mutated_seq = "arCdcCeg";
				scpp.setMutations(mutated_seq);
				sys.apply(scpp); 

 	    \endcode
	 */ 
	class BALL_EXPORT SideChainPlacementProcessor 
		: public UnaryProcessor<AtomContainer> 
	{
		public:

			/** @name Constant Definitions
			*/
			//@{
			/// Option names
			struct BALL_EXPORT Option
			{	
				/**	technique to compute the side chain placement
				*/
				static const char* METHOD; 
				
				/** the path to the scwrl binary 
				 */
				static const char* SCWRL_BINARY_PATH;	

				/** An optional input file name for Scwrl.
				 *
				 *  If this is set to "" (default), we will use a
				 *  temporary file that is cleaned after the processor has
				 *  finished.
				 */
				static const char* SCWRL_INPUT_FILE;

				/** An optional input sequence file name for Scwrl.
				 *
				 *  If this is set to "" (default), we will use a
				 *  temporary file that is cleaned after the processor has
				 *  finished.
				 */
				static const char* SCWRL_SEQUENCE_FILE;

				/** An optional file name for the Scwrl output.
				 *
				 *  If this is set to "" (default), we will use a
				 *  temporary file that is cleaned after the processor has
				 *  finished and that is created by Scwrl itself.
				 *
				 *  If this is set to something else, we skip the Scwrl
				 *  execution and read in this file directly.
				 */
				static const char* SCWRL_OUTPUT_FILE;

				/** mutate and compute side chain positions for selected amino acids
				 */
				static const char* MUTATE_SELECTED_SIDE_CHAINS;
				
			};

			/// Default values for options
			struct BALL_EXPORT Default
			{
				static const String METHOD;
				static const String SCWRL_BINARY_PATH;
				static const bool   MUTATE_SELECTED_SIDE_CHAINS;
				static const String SCWRL_INPUT_FILE;
				static const String SCWRL_SEQUENCE_FILE;
				static const String SCWRL_OUTPUT_FILE;
			};

			struct BALL_EXPORT Method
			{
				/**
				 * SCWRL4 is a program for predicting side-chain conformations for a given protein backbone.
				 */
				static const String SCWRL_4_0;
				//static const String SCWRL_SERVER; 
				//static const String ILP;
			};
			
			//@}
		
			BALL_CREATE(SideChainPlacementProcessor);

			/** @name	Constructors and Destructors
			*/
			//@{
					
			///	Default Constructor
			SideChainPlacementProcessor();
		
			/// Copy Construcor
			SideChainPlacementProcessor(const SideChainPlacementProcessor& scpp);
		
			/// Destructor
			virtual ~SideChainPlacementProcessor();
			//@}

			/**	@name	Processor-related methods 
			*/
			//@{

			/// Processor method which is called before the operator()-call.
			virtual bool start();
	
			/** Clears the datastructures.
			* 	<b>NOTE:</b> The options remain!
			* 	Use setDefaultOptions() to clear the options.
			*/
			void clear();

			/** Operator () for the processor 
			 *
			 * Called with \link Default Default\endlink-options the processor 
			 * assigns side chain torsion angles to residues. 
			 * 
			 * The processor can be applied to a system, a protein, or a chain.
			 * The selection mechanism can be used to restrict the processor to
			 * certain residues. If no selection is given all side chains are considered.
	 		 * The option Option::MUTATE_SELECTED_SIDE_CHAINS can be used to mutate selected
			 * amino acids as specified in the member mutated_sequence_ 
			 * (see \link setMutations(String mutationed_seq) setMutations(String mutationed_seq) \endlink.
 			 *
			 * 	@param  ac  the AtomContainer to which the processor is applied. 
			 */
			virtual Processor::Result operator ()(AtomContainer& ac);

			/// Processor method which is called after the operator()-call.
			virtual bool finish();

			//@}
		
			/**	@name	Accessors
			*/
			//@{
			
			/** Resets the options to default values.
			*/
			void setDefaultOptions();
			
			/** Set the mutation indicating sequence.
			*/
			void setMutations(String mutated_seq) {mutated_sequence_ = mutated_seq;} 
			
			/** Get the mutated sequence.
			 */
			const String& getMutations() const {return mutated_sequence_;}
			
			/** Get the mutated sequence.
			 */
			String getMutations() {return mutated_sequence_;}

			//@}
			/** @name Assignment
			*/
			//@{

			/// assignment operator
			SideChainPlacementProcessor& operator = (const SideChainPlacementProcessor& scpp);
			
			
			//@}
			/** @name Public Attributes
			*/
			//@{
			/// options
			Options options;

			//@}
		
		protected:
			/** Reads, checks and stores the options. 	
			 *
			 * @return bool - false if one of the options got an invalid value.
			 * @return bool - true otherwise
			 */
			bool readOptions_(); 
		
			/// Sequence in OneLetterCode with mutated residues.
			String mutated_sequence_;	

			// The processor state. 
			bool valid_;

	};

} // namespace BALL 


#endif // BALL_STRUCTURE_SIDECHAINPLACEMENTPROCESSOR_H