BALL  1.4.1
haighMallionShiftProcessor.h
Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: haighMallionShiftProcessor.h,v 1.16.10.6 2007-04-12 13:53:54 anne Exp $
00005 //
00006 
00007 #ifndef BALL_COMMON_H
00008 # include <BALL/common.h>
00009 #endif
00010 
00011 #ifndef BALL_CONCEPT_PROCESSOR_H
00012 # include <BALL/CONCEPT/processor.h>
00013 #endif
00014 
00015 #ifndef BALL_NMR_SHIFTMODULE_H
00016 # include<BALL/NMR/shiftModule.h>
00017 #endif
00018 
00019 #ifndef BALL_DATATYPE_STRINGHASHMAP_H
00020 # include <BALL/DATATYPE/stringHashMap.h>
00021 #endif
00022 
00023 #include <list>
00024 
00025 namespace BALL 
00026 {
00030   class BALL_EXPORT HaighMallionShiftProcessor
00031     : public ShiftModule
00032   {
00033     public:
00034 
00035     BALL_CREATE(HaighMallionShiftProcessor)
00036     
00037     
00040 
00044     static const char* PROPERTY__RING_CURRENT_SHIFT;
00045     
00047 
00050 
00053     HaighMallionShiftProcessor();
00054     
00057     HaighMallionShiftProcessor(const HaighMallionShiftProcessor& processor);
00058 
00061     virtual ~HaighMallionShiftProcessor();
00062     
00063     
00065 
00068 
00085     virtual void init();
00086 
00088     
00089 
00091 
00094     
00100     virtual bool start();
00101     
00102     
00108     virtual Processor::Result operator () (Composite& atom);
00109     
00110       
00123     virtual bool finish();
00124 
00125     
00127     
00128 
00129     protected:
00130     
00131     /*_ A flag indicating whether Hydrogens are effected by all effectors or 
00132         just by effectors of the same residue.
00133         Set this flag by specifying the option {\tt H_influenced_by_all_effectors = true} in 
00134         the HaighMallionRingCurrent section of the parameter file.
00135         Default is false.
00136     */
00137     bool                    H_influenced_by_all_effectors_;
00138   
00139     /*_ A flag indicating whether HA Hydrogens are effected by all effectors or 
00140         just by effectors of the same residue.
00141         Set this flag by specifying the option {\tt HA_influenced_by_all_effectors = true} in 
00142         the HaighMallionRingCurrent section of the parameter file.
00143         Default is false.
00144     */
00145     bool                    HA_influenced_by_all_effectors_;
00146 
00147     /*_ A flag indicating whether a cutoff for the ring current effect is used. 
00148         Set this flag by specifying the option {\tt   use_cut_off = true} in 
00149         the HaighMallionRingCurrent section of the parameter file.
00150         Default is false.
00151     */
00152     bool                    use_cut_off_;
00153 
00154 
00155     /*_ A cut off value for the ring current effect computation via Haigh Mallion.
00156         Set this flag by specifying the option {\tt   cut_off = 15.} in 
00157         the HaighMallionRingCurrent section of the parameter file.
00158         Default is 15.*15.
00159     */
00160     float                   cut_off2_;          
00161     
00162     /*_ A flag indicating whether all hydrogens are targets. 
00163         Set this flag by specifying the option {\tt all_hydrogen_are_targets = true} in 
00164         the HaighMallionRingCurrent section of the parameter file.
00165         Default is false.
00166     */
00167     bool                    all_hydrogen_are_targets_;
00168 
00173     bool                    correct_CA_shifts_;
00174 
00175     /*_ A flag indicating whether for the computation of the ring current effect
00176         the target has to be projected onto the effector ring plane or not.
00177         Set this flag by specifying the option {\tt project_target_to_ring_plane = true} in 
00178         the HaighMallionRingCurrent section of the parameter file.
00179         Default is false.
00180      */
00181     bool                    project_target_to_ring_plane_;
00182 
00183     /*_ The values of the target nucleus factors F.
00184      */
00185     StringHashMap<float>    target_nucleus_factors_;
00186 
00187     /*_ The default value of the target nucleus factors F for hydrogen atoms.
00188      */
00189     float                   default_hydrogen_target_nucleus_factor_;
00190 
00191     /*_ The default factor of negative ring current factors
00192      */
00193     float                   negative_ringcurrent_factor_ ;
00194     
00195     /*_ The effector residues stored as a vector of atoms the collected by {\tt operator ()}.
00196     */  
00197     std::vector< std::vector<Atom*> >     effectors_;
00198     
00199     /*_ The effector residue types stored as a vector of strings collected by {\tt operator ()}.
00200         This is necessary to allow, e.g., TRP1 and TRP2 as two different kinds of rings.
00201     */  
00202     std::vector<String>               effector_types_;
00203 
00204     /*_ The effector names collected from the ini-file by {\tt init ()}.
00205     */
00206     std::vector<BALL::String>         effector_names_;
00207     
00208     /*_ The intensities of the effecting residues collected from the ini-file by {\tt init ()}.
00209     */
00210     StringHashMap<float>              intensity_factors_;
00211     
00212     /*_ The ring atom names of the effecting residues collected from the ini-file by {\tt init ()}.
00213     */
00214     std::vector< std::vector<BALL::String> >    ring_atoms_;
00215     
00216     /*_ The targeted atom names collected by {\tt init ()}.
00217     */
00218     std::vector< BALL::String>              target_names_;
00219   
00220     /*_ The targeted atoms collected by {\tt operator ()}.
00221     */
00222     std::vector<Atom* >                   targets_;
00223   
00224     private:
00225 
00226     void      printParameters_();
00227     void      printEffectors_();
00228     void      printTargets_();
00229     void      postprocessing_();
00230     
00231   };
00232   
00233 } // namespace BALL
00234 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines