BALL 1.5.0
Loading...
Searching...
No Matches
EFShiftProcessor.h
Go to the documentation of this file.
1// -*- Mode: C++; tab-width: 2; -*-
2// vi: set ts=2:
3//
4// $Id: EFShiftProcessor.h,v 1.23.10.5 2007-04-12 13:53:52 anne Exp $
5//
6
7#ifndef BALL_NMR_EFSHIFTPROCESSOR_H
8#define BALL_NMR_EFSHIFTPROCESSOR_H
9
10#ifndef BALL_NMR_SHIFT_MODULE_H
12#endif
13
14#ifndef BALL_KERNEL_EXPRESSION_H
16#endif
17
18namespace BALL
19{
20 class Atom;
21
26 : public ShiftModule
27 {
28 public:
29
31
32
35
36
39 static const char* PROPERTY__EF_SHIFT;
40
42
45
49 ;
50
54 ;
55
59 ;
60
62
65
90 virtual void init()
91 ;
92
94
97
103 virtual bool start()
104 ;
105
106
115 virtual Processor::Result operator () (Composite& composite)
116 ;
117
136 virtual bool finish()
137 ;
138
140
141 protected:
142
143 /*_ The list of all target bonds collected by {\tt operator ()}.
144 * The first element of the pair is the origin of the bond, the second the destination.
145 * The shift _always_ applies to the first element of the pair.
146 */
147 std::vector<std::pair<Atom*, Atom*> > bond_list_;
148
149 /*_ The index of the expression that matched to result in the corresponding element in bond_list_
150 */
151 std::vector<Index> expression_number_;
152
153 /*_ The list of charged atoms (effectors).
154 */
155 std::list<Atom*> effector_list_;
156
157 /*_ The expressions describing the first atom of a bond.
158 */
159 std::vector<Expression> first_atom_expressions_;
160
161 /*_ The expressions describing the first atom of a bond.
162 */
163 std::vector<Expression> second_atom_expressions_;
164
165 /*_ The parameter $\varepsilon_1$.
166 */
167 std::vector<float> epsilon1_;
168
169 /*_ The parameter $\varepsilon_2$.
170 */
171 std::vector<float> epsilon2_;
172
173 /*_ The charge assignment map.
174 */
175 StringHashMap<float> charge_map_;
176
177 /*_ A flag indicating whether effectors in the same residues are to be considered.
178 Set this flag by specifying the option {\tt exclude_residue_field = true} in
179 the ElectricFieldShift section of the parameter file.
180 Default is false.
181 */
182 bool exclude_residue_field_;
183
184 /*_ A flag indicating whether effectors in adjacent residues are to be considered.
185 Set this flag by specifying the option {\tt exclude_adjacent_residue_field = true} in
186 the ElectricFieldShift section of the parameter file.
187 Default is false.
188 */
189 bool exclude_adjacent_residue_field_;
190
191 /*_ A flag indicating whether carbonyl effectors are to be considered for amid targets.
192 Set this flag by specifying the option {\tt carbonyl_influences_amide_field = false} in
193 the ElectricFieldShift section of the parameter file.
194 Default is false.
195 */
196 bool carbonyl_influences_amide_field_;
197
198
199 /*_ A flag indicating whether solvent atoms do act as effectors.
200 Set this flag by specifying the option {\tt exclude exclude_solvent_field = true} in
201 the ElectricFieldShift section of the parameter file.
202 Default is false.
203 */
204 bool exclude_solvent_field_;
205
206
207
208 /*_ A cut off value for the electric field effect.
209 Any effector that is further away than this cut off is ignored.
210 The distance is read from the option {\tt cut_off} in the
211 section <TT> ElectricFieldEffect </TT> from the parameter file.
212 This member contains the squared value(!) of the distance.
213 */
214 float cut_off2_;
215
216
217 /*_ A factor for switching the charge unit between esu and elementary charges.
218 The unit is read from the option {\tt unit} of the section
219 <TT> Charges </TT> from the parameter file.
220 For numeric aspects, in the init() function the esu unit is divided by
221 the charge_factor_, such that the molecules charges (which are given
222 by PDB.org in elementary units) can easily be multiplied with.
223 When computing the shift, the charge_factor is again multiplied with.
224 Default is 1.0
225 */
226
227 float charge_factor_;
228
229 private:
230
231 /*_ Some debugging functions printing parameter/effector/target information
232 * to the Log-stream.
233 */
234 void printParameters_();
235 void printEffectors_();
236 void printTargets_();
237
238 /*_ A function to perform some ShiftX-y postprocessing:
239 add for all CA-atoms 0.2 times the EF-shift-value of the bound HA-atoms
240 */
241 void postprocessing_();
242
243 };
244
245} // namespace BALL
246
247#endif // BALL_NMR_EFSHIFTPROCESSOR_H
#define BALL_CREATE(name)
Definition create.h:62
STL namespace.
char Atom[5]
Definition PDBdefs.h:257
#define BALL_EXPORT