RxDock 0.1.0
A fast, versatile, and open-source program for docking ligands to proteins and nucleic acids
Loading...
Searching...
No Matches
PolarIdxSF.h
1/***********************************************************************
2 * The rDock program was developed from 1998 - 2006 by the software team
3 * at RiboTargets (subsequently Vernalis (R&D) Ltd).
4 * In 2006, the software was licensed to the University of York for
5 * maintenance and distribution.
6 * In 2012, Vernalis and the University of York agreed to release the
7 * program as Open Source software.
8 * This version is licensed under GNU-LGPL version 3.0 with support from
9 * the University of Barcelona.
10 * http://rdock.sourceforge.net/
11 ***********************************************************************/
12
13// Indexed-grid-based intermolecular scoring function for all attractive polar
14// interactions (HBD,HBA,metal,guanidinium carbon)
15
16#ifndef _RBTPOLARIDXSF_H_
17#define _RBTPOLARIDXSF_H_
18
19#include "rxdock/BaseIdxSF.h"
20#include "rxdock/BaseInterSF.h"
21#include "rxdock/PolarSF.h"
22
23namespace rxdock {
24
25class PolarIdxSF : public BaseInterSF, public BaseIdxSF, public PolarSF {
26public:
27 // Class type string
28 static const std::string _CT;
29 // Parameter names
30 static const std::string _INCR;
31 static const std::string _ATTR;
32 // DM 12 Jun 2002 - score thresholds used for counting attractive and
33 // repulsive interactions
34 static const std::string _THRESHOLD_POS;
35 static const std::string _THRESHOLD_NEG;
36
37 RBTDLL_EXPORT static const std::string &GetIncr();
38
39 RBTDLL_EXPORT PolarIdxSF(const std::string &strName = "polar");
40 virtual ~PolarIdxSF();
41
42 // Override BaseSF::ScoreMap to provide additional raw descriptors
43 virtual void ScoreMap(StringVariantMap &scoreMap) const;
44
45protected:
46 virtual void SetupReceptor();
47 virtual void SetupLigand();
48 virtual void SetupSolvent();
49 virtual void SetupScore();
50 virtual double RawScore() const;
51
52 // Clear the receptor and ligand grids and lists respectively
53 // As we are not using smart pointers, there is some memory management to do
54 void ClearReceptor();
55 void ClearLigand();
56 void ClearSolvent();
57 // Helper function for above
58 void DeleteList(InteractionCenterList &icList);
59
60 // DM 25 Oct 2000 - track changes to parameter values in local data members
61 // ParameterUpdated is invoked by ParamHandler::SetParameter
62 void ParameterUpdated(const std::string &strName);
63
64private:
65 double ReceptorScore() const;
66 double SolventScore() const;
67 double InterScore() const;
68 double ReceptorSolventScore() const;
69 double LigandSolventScore() const;
70
71 double InterScore(const InteractionCenterList &posList,
72 const InteractionCenterList &negList, bool bCount) const;
73 InteractionGridPtr m_spPosGrid;
74 InteractionGridPtr m_spNegGrid;
75 InteractionCenterList m_recepPosList;
76 InteractionCenterList m_recepNegList;
77 InteractionCenterList m_flexRecPosList;
78 InteractionCenterList m_flexRecNegList;
79 InteractionListMap m_flexRecIntns;
80 InteractionListMap m_flexRecPrtIntns; // partitioned interactions
81
82 InteractionCenterList m_ligPosList;
83 InteractionCenterList m_ligNegList;
84
85 InteractionCenterList m_solventPosList;
86 InteractionCenterList m_solventNegList;
87 InteractionListMap m_solventIntns;
88
89 bool m_bAttr;
90 bool m_bFlexRec;
91 bool m_bSolvent;
92 // DM 12 Jun 2002 - keep track of number of ligand atoms involved in non-zero
93 // polar interactions
94 mutable int m_nPos; //#positive centers with non-zero scores
95 mutable int m_nNeg; //#negative centers with non-zero scores
96 double m_posThreshold;
97 double m_negThreshold;
98};
99
100} // namespace rxdock
101
102#endif //_RBTPOLARIDXSF_H_
Definition BaseIdxSF.h:30
Definition BaseInterSF.h:27
Definition PolarIdxSF.h:25
Definition PolarSF.h:30