RxDock 0.1.0
A fast, versatile, and open-source program for docking ligands to proteins and nucleic acids
Loading...
Searching...
No Matches
VdwIdxSF.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 vdw interactions
14#ifndef _RBTVDWIDXSF_H_
15#define _RBTVDWIDXSF_H_
16
17#include "rxdock/BaseIdxSF.h"
18#include "rxdock/BaseInterSF.h"
19#include "rxdock/VdwSF.h"
20
21#include <nlohmann/json.hpp>
22
23using json = nlohmann::json;
24
25namespace rxdock {
26
27class VdwIdxSF : public BaseInterSF, public BaseIdxSF, public VdwSF {
28public:
29 // Class type string
30 static const std::string _CT;
31 // Parameter names
32 // DM 12 Jun 2002 - score thresholds used for counting attractive and
33 // repulsive interactions (thresholds represent partial vdW scores summed per
34 // ligand atom, used for outputting ligand atom counts)
35 static const std::string _THRESHOLD_ATTR;
36 static const std::string _THRESHOLD_REP;
37 // DM 03 Feb 2003 - score threshold for outputting individual (atom-atom)
38 // lipophilic vdW interactions i.e between two non-polar carbons/hydrogens
39 static const std::string _ANNOTATION_LIPO;
40 // DM 10 Apr 2003 - vdw annotation can be quite slow so provide boolean option
41 // to disable
42 static const std::string _ANNOTATE;
43 // DM 14 Jun 2006 - option to disable solvent performance enhancements, mainly
44 // for testing
45 static const std::string _FAST_SOLVENT;
46
47 RBTDLL_EXPORT VdwIdxSF(const std::string &strName = "vdw");
48 virtual ~VdwIdxSF();
49
50 friend void to_json(json &j, const VdwIdxSF &vdwIdxSF);
51 friend void from_json(const json &j, VdwIdxSF &vdwIdxSF);
52
53 // Override BaseSF::ScoreMap to provide additional raw descriptors
54 virtual void ScoreMap(StringVariantMap &scoreMap) const;
55
56protected:
57 virtual void SetupReceptor();
58 virtual void SetupLigand();
59 virtual void SetupSolvent();
60 virtual void SetupScore();
61 virtual double RawScore() const;
62 double InterScore() const;
63 double ReceptorScore() const;
64 double SolventScore() const;
65 double ReceptorSolventScore() const;
66 double LigandSolventScore() const;
67
68 // DM 25 Oct 2000 - track changes to parameter values in local data members
69 // ParameterUpdated is invoked by ParamHandler::SetParameter
70 void ParameterUpdated(const std::string &strName);
71
72private:
73 void RenderAnnotationsByResidue(std::vector<std::string> &retVal) const;
74
75 NonBondedGridPtr m_spGrid; // Indexing grid for receptor
76 NonBondedGridPtr m_spSolventGrid; // Indexing grid for fixed/tethered solvent
77 AtomList m_recAtomList;
78 AtomRList m_recRigidAtomList;
79 AtomRList m_recFlexAtomList;
80 AtomRList m_ligAtomList;
81 AtomRList m_solventAtomList; // All solvent atoms
82 AtomRList m_solventFixTethAtomList; // Fixed or tethered solvent atoms
83 AtomRList m_solventFreeAtomList; // Free solvent atoms
84 AtomRListList m_recFlexIntns; // Intra-target flexible interactions
85 AtomRListList
86 m_recFlexPrtIntns; // Intra-target flexible partitioned interactions
87 AtomRListList
88 m_solventFixTethIntns; // Intra-solvent intns between fixed/tethered atoms
89 AtomRListList m_solventFixTethPrtIntns; // Partitioned intns between
90 // fixed/tethered solvent
91 AtomRListList
92 m_solventFreeIntns; // Intra-solvent intns between free solvent atoms
93 // DM 12 Jun 2002 - keep track of number of ligand atoms involved in non-zero
94 // vdW interactions
95 mutable int m_nAttr; //#atoms with net attractive (-ve) vdw scores
96 mutable int m_nRep; //#atoms with net repulsive (+ve) vdw scores
97 double m_attrThreshold;
98 double m_repThreshold;
99 double m_lipoAnnot;
100 bool m_bAnnotate;
101 bool m_bFlexRec;
102 bool m_bFastSolvent;
103};
104
105void to_json(json &j, const VdwIdxSF &vdwIdxSF);
106void from_json(const json &j, VdwIdxSF &vdwIdxSF);
107
108} // namespace rxdock
109
110#endif //_RBTVDWIDXSF_H_
Definition BaseIdxSF.h:30
Definition BaseInterSF.h:27
Definition VdwIdxSF.h:27
Definition VdwSF.h:30