aromaticRingStacking.h

Go to the documentation of this file.
00001 // $id$
00002 
00003 // THIS IS PRELIMINARY AND UNTESTED CODE! Use at your own risk.
00004 
00005 #ifndef BALL_SCORING_COMPONENTS_AROMATIC_RING_STACKING_H
00006 #define BALL_SCORING_COMPONENTS_AROMATIC_RING_STACKING_H
00007 
00008 #include <BALL/SCORING/COMMON/scoringComponent.h>
00009 #include <BALL/SCORING/COMMON/scoringFunction.h>
00010 #include <BALL/DATATYPE/options.h>
00011 
00012 #include <BALL/SCORING/COMPONENTS/CHPI.h>
00013 
00014 namespace BALL
00015 {
00016 
00020   class AromaticRingStacking
00021     : public ScoringComponent
00022   {
00023 
00024     public:
00025 
00026     struct Option
00027     {
00028       static const String VERBOSITY;
00029 
00030       static const String F2F_PLANE_DISTANCE_LOWER;
00031       static const String F2F_PLANE_DISTANCE_UPPER;
00032       static const String F2F_LATERAL_DISPLACEMENT_LOWER;
00033       static const String F2F_LATERAL_DISPLACEMENT_UPPER;
00034 
00035       static const String F2E_CENTER_DISTANCE_LOWER;
00036       static const String F2E_CENTER_DISTANCE_UPPER;
00037 
00038       static const String SCORING_TOLERANCE;
00039     };
00040 
00041     struct Default
00042     {
00043       static const Size VERBOSITY;
00044 
00045       static const float F2F_PLANE_DISTANCE_LOWER;
00046       static const float F2F_PLANE_DISTANCE_UPPER;
00047       static const float F2F_LATERAL_DISPLACEMENT_LOWER;
00048       static const float F2F_LATERAL_DISPLACEMENT_UPPER;
00049 
00050       static const float F2E_CENTER_DISTANCE_LOWER;
00051       static const float F2E_CENTER_DISTANCE_UPPER;
00052 
00053       static const float SCORING_TOLERANCE;
00054     };
00055 
00056     
00057     AromaticRingStacking()
00058       ;
00059 
00060     AromaticRingStacking(ScoringFunction& sf)
00061       ;
00062 
00063     AromaticRingStacking(const AromaticRingStacking& ars)
00064       ;
00065 
00066     ~AromaticRingStacking()
00067       ;
00068 
00069     virtual bool setup()
00070       ;
00071 
00072     virtual double  calculateScore()
00073       ;
00074 
00075     private:
00076 
00077     std::vector< std::pair<const CHPI::AromaticRing*, const CHPI::AromaticRing*> > possible_interactions_;
00078 
00079     std::vector<CHPI::AromaticRing> receptor_rings_;
00080 
00081     std::vector<CHPI::AromaticRing> ligand_rings_;
00082 
00083     float f2f_plane_distance_lower_;
00084     float f2f_plane_distance_upper_;
00085     float f2f_lateral_displacemant_lower_;
00086     float f2f_lateral_displacemant_upper_;
00087 
00088     float f2e_center_distance_lower_;
00089     float f2e_center_distance_upper_;
00090 
00091     //_ The tolerance for judging angles to be "equal"
00092     float angle_tolerance_;
00093 
00094     //_ The tolerance area for creating scores instead of simply counted
00095     //_ interactions.
00096     float scoring_tolerance_;
00097 
00098   };
00099 
00100 }
00101 
00102 
00103 #endif // BALL_MOLMEC_SLICK_SLICK_AROMATIC_RING_STACKING_H