00001
00002
00003
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
00092 float angle_tolerance_;
00093
00094
00095
00096 float scoring_tolerance_;
00097
00098 };
00099
00100 }
00101
00102
00103 #endif // BALL_MOLMEC_SLICK_SLICK_AROMATIC_RING_STACKING_H