RxDock 0.1.0
A fast, versatile, and open-source program for docking ligands to proteins and nucleic acids
Loading...
Searching...
No Matches
SAIdxSF.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// Desolvation scoring function based on Weighted Solvent Accessible Surface
14// Area
15
16#ifndef _RBTSAIDXSF_H_
17#define _RBTSAIDXSF_H_
18
19#include "rxdock/AnnotationHandler.h"
20#include "rxdock/BaseIdxSF.h"
21#include "rxdock/BaseInterSF.h"
22#include "rxdock/NonBondedHHSGrid.h"
23#include "rxdock/ParameterFileSource.h"
24#include "rxdock/SATypes.h"
25
26namespace rxdock {
27
28class SAIdxSF : public BaseInterSF, public BaseIdxSF, public AnnotationHandler {
29public:
30 RBTDLL_EXPORT SAIdxSF(const std::string &strName = "solv");
31 virtual ~SAIdxSF();
32 // write score components
33 virtual void ScoreMap(StringVariantMap &scoreMap) const;
34
35 static const std::string _CT;
36 static const std::string _INCR;
37
38 // Request Handling method
39 // Handles the Partition request
40 virtual void HandleRequest(RequestPtr spRequest);
41
42protected:
43 virtual void SetupReceptor();
44 virtual void SetupLigand();
45 virtual void SetupSolvent();
46 virtual void SetupScore();
47 virtual double RawScore(void) const;
48
49 // clear indexed grids
50 void ClearReceptor(void);
51 void ClearLigand(void);
52 void ClearSolvent(void);
53
54 double GetASP(HHSType::eType, double) const;
55 double GetP_i(HHSType::eType) const;
56 double GetR_i(HHSType::eType) const;
57 void PrintWeightMatrix() const;
58
59private:
60 struct solvprms {
61 solvprms(double r0, double p0, double asp0, bool b)
62 : r(r0), p(p0), asp(asp0), chg_scaling(b) {}
63 double r;
64 double p;
65 double asp;
66 bool chg_scaling;
67 };
68
69 typedef std::vector<SAIdxSF::solvprms> SolvTable;
70 void Setup();
71 HHS_SolvationRList CreateInteractionCenters(const AtomList &atomList) const;
72 void BuildIntraMap(HHS_SolvationRList &ICList) const;
73 void BuildIntraMap(HHS_SolvationRList &ICList1,
74 HHS_SolvationRList &ICList2) const;
75
76 // Sum the surface energies (ASP*area) for the list of solvation interaction
77 // centers
78 double TotalEnergy(const HHS_SolvationRList &intnCenters) const;
79 void Partition(HHS_SolvationRList &intnCenters, double dist = 0.0);
80
81 HHS_SolvationRList theLSPList; // All ligand solvation interaction centers
82 HHS_SolvationRList
83 theRSPList; // All rigid receptor solvation interaction centers
84 HHS_SolvationRList
85 theFlexList; // All flexible receptor solvation interaction centers
86 HHS_SolvationRList
87 theCavList; // Subset of rigid receptor list within range of docking site
88 // Subset of rigid receptor list NOT within range of docking site
89 // but within range of the flexible atoms
90 // Must remember to restore the invariant areas for these atoms
91 // before updating the overlap of the flexible atoms
92 HHS_SolvationRList thePeriphList;
93 HHS_SolvationRList
94 theSolventList; // DM 21 Dec 2005 - explicit solvent interaction centers
95 NonBondedHHSGridPtr theIdxGrid;
96 SolvTable m_solvTable;
97 ParameterFileSourcePtr m_spSolvSource; // File source for solvation params
98 double m_maxR; // Maximum radius of any atom type, used to adjust Range()
99 // dynamically
100 bool m_bFlexRec; // Is receptor flexible?
101 mutable double
102 m_lig_0; // Solvation energy of the free ligand (initial conformation)
103 mutable double
104 m_lig_free; // Solvation energy of the free ligand (current conformation)
105 mutable double m_lig_bound; // Solvation energy of the bound ligand
106 // (current conformation)
107 mutable double m_site_0; // Solvation energy of the free docking site
108 // (initial conformation)
109 mutable double m_site_free; // Solvation energy of the free docking site
110 // (current conformation)
111 mutable double m_site_bound; // Solvation energy of the bound docking site
112 // (current conformation)
113 mutable double m_solvent_0; // Solvation energy of the free explicit
114 // solvent (initial conformation)
115 mutable double m_solvent_free; // Solvation energy of the free explicit
116 // solvent (current conformation)
117 mutable double m_solvent_bound; // Solvation energy of the bound explicit
118 // solvent (current conformation)
119};
120
121} // namespace rxdock
122
123#endif // _RBTSAIDXSF_H_
Definition AnnotationHandler.h:28
Definition BaseIdxSF.h:30
Definition BaseInterSF.h:27
Definition SAIdxSF.h:28