BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
haighMallionShiftProcessor.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: haighMallionShiftProcessor.h,v 1.16.10.6 2007-04-12 13:53:54 anne Exp $
5 //
6 
7 #ifndef BALL_COMMON_H
8 # include <BALL/common.h>
9 #endif
10 
11 #ifndef BALL_CONCEPT_PROCESSOR_H
12 # include <BALL/CONCEPT/processor.h>
13 #endif
14 
15 #ifndef BALL_NMR_SHIFTMODULE_H
16 # include<BALL/NMR/shiftModule.h>
17 #endif
18 
19 #ifndef BALL_DATATYPE_STRINGHASHMAP_H
21 #endif
22 
23 #include <list>
24 
25 namespace BALL
26 {
31  : public ShiftModule
32  {
33  public:
34 
36 
37 
40 
44  static const char* PROPERTY__RING_CURRENT_SHIFT;
45 
47 
50 
54 
58 
61  virtual ~HaighMallionShiftProcessor();
62 
63 
65 
68 
85  virtual void init();
86 
88 
89 
91 
94 
100  virtual bool start();
101 
102 
108  virtual Processor::Result operator () (Composite& atom);
109 
110 
123  virtual bool finish();
124 
125 
127 
128 
129  protected:
130 
131  /*_ A flag indicating whether Hydrogens are effected by all effectors or
132  just by effectors of the same residue.
133  Set this flag by specifying the option {\tt H_influenced_by_all_effectors = true} in
134  the HaighMallionRingCurrent section of the parameter file.
135  Default is false.
136  */
137  bool H_influenced_by_all_effectors_;
138 
139  /*_ A flag indicating whether HA Hydrogens are effected by all effectors or
140  just by effectors of the same residue.
141  Set this flag by specifying the option {\tt HA_influenced_by_all_effectors = true} in
142  the HaighMallionRingCurrent section of the parameter file.
143  Default is false.
144  */
145  bool HA_influenced_by_all_effectors_;
146 
147  /*_ A flag indicating whether a cutoff for the ring current effect is used.
148  Set this flag by specifying the option {\tt use_cut_off = true} in
149  the HaighMallionRingCurrent section of the parameter file.
150  Default is false.
151  */
152  bool use_cut_off_;
153 
154 
155  /*_ A cut off value for the ring current effect computation via Haigh Mallion.
156  Set this flag by specifying the option {\tt cut_off = 15.} in
157  the HaighMallionRingCurrent section of the parameter file.
158  Default is 15.*15.
159  */
160  float cut_off2_;
161 
162  /*_ A flag indicating whether all hydrogens are targets.
163  Set this flag by specifying the option {\tt all_hydrogen_are_targets = true} in
164  the HaighMallionRingCurrent section of the parameter file.
165  Default is false.
166  */
167  bool all_hydrogen_are_targets_;
168 
173  bool correct_CA_shifts_;
174 
175  /*_ A flag indicating whether for the computation of the ring current effect
176  the target has to be projected onto the effector ring plane or not.
177  Set this flag by specifying the option {\tt project_target_to_ring_plane = true} in
178  the HaighMallionRingCurrent section of the parameter file.
179  Default is false.
180  */
181  bool project_target_to_ring_plane_;
182 
183  /*_ The values of the target nucleus factors F.
184  */
185  StringHashMap<float> target_nucleus_factors_;
186 
187  /*_ The default value of the target nucleus factors F for hydrogen atoms.
188  */
189  float default_hydrogen_target_nucleus_factor_;
190 
191  /*_ The default factor of negative ring current factors
192  */
193  float negative_ringcurrent_factor_ ;
194 
195  /*_ The effector residues stored as a vector of atoms the collected by {\tt operator ()}.
196  */
197  std::vector< std::vector<Atom*> > effectors_;
198 
199  /*_ The effector residue types stored as a vector of strings collected by {\tt operator ()}.
200  This is necessary to allow, e.g., TRP1 and TRP2 as two different kinds of rings.
201  */
202  std::vector<String> effector_types_;
203 
204  /*_ The effector names collected from the ini-file by {\tt init ()}.
205  */
206  std::vector<BALL::String> effector_names_;
207 
208  /*_ The intensities of the effecting residues collected from the ini-file by {\tt init ()}.
209  */
210  StringHashMap<float> intensity_factors_;
211 
212  /*_ The ring atom names of the effecting residues collected from the ini-file by {\tt init ()}.
213  */
214  std::vector< std::vector<BALL::String> > ring_atoms_;
215 
216  /*_ The targeted atom names collected by {\tt init ()}.
217  */
218  std::vector< BALL::String> target_names_;
219 
220  /*_ The targeted atoms collected by {\tt operator ()}.
221  */
222  std::vector<Atom* > targets_;
223 
224  private:
225 
226  void printParameters_();
227  void printEffectors_();
228  void printTargets_();
229  void postprocessing_();
230 
231  };
232 
233 } // namespace BALL
234 
#define BALL_CREATE(name)
Definition: create.h:62
#define BALL_EXPORT
Definition: COMMON/global.h:50