RxDock 0.1.0
A fast, versatile, and open-source program for docking ligands to proteins and nucleic acids
Loading...
Searching...
No Matches
BaseIdxSF.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// Base class for indexed-grid-based scoring functions
14// Provides protected methods for subclasses to use to create indexing grids
15
16#ifndef _RBTBASEIDXSF_H_
17#define _RBTBASEIDXSF_H_
18
19#include "rxdock/BaseSF.h"
20#include "rxdock/InteractionGrid.h"
21#include "rxdock/NonBondedGrid.h"
22#include "rxdock/NonBondedHHSGrid.h"
23
24#include <nlohmann/json.hpp>
25
26using json = nlohmann::json;
27
28namespace rxdock {
29
30class BaseIdxSF : public virtual BaseSF {
31public:
32 // Class type string
33 static const std::string _CT;
34 // Parameter names
35 static const std::string _GRIDSTEP;
36 static const std::string _BORDER;
37
39 // Constructors/destructors
40 virtual ~BaseIdxSF();
41
43 // Public methods
45 double GetGridStep() const;
46 void SetGridStep(double step);
47 double GetBorder() const;
48 void SetBorder(double border);
49
50 friend void to_json(json &j, const BaseIdxSF &baseIdxSF);
51 friend void from_json(const json &j, BaseIdxSF &baseIdxSF);
52
53protected:
55 // Protected methods
57 BaseIdxSF();
58
59 InteractionGridPtr CreateInteractionGrid() const;
60 NonBondedGridPtr CreateNonBondedGrid() const;
61 NonBondedHHSGridPtr CreateNonBondedHHSGrid() const;
62 double GetMaxError() const;
63 // DM 12 Apr 2002
64 // Returns the maximum range of the scoring function,
65 // corrected for max grid error, and grid border around docking site
66 // This should be used by subclasses for selecting the receptor atoms to index
67 // GetCorrectedRange() = GetRange() + GetMaxError() + GetBorder()
68 double GetCorrectedRange() const;
69
70 // As this has a virtual base class we need a separate OwnParameterUpdated
71 // which can be called by concrete subclass ParameterUpdated methods
72 // See Stroustrup C++ 3rd edition, p395, on programming virtual base classes
73 void OwnParameterUpdated(const std::string &strName);
74
75private:
77 // Private methods
79
80protected:
82 // Protected data
84
85private:
87 // Private data
89 double m_gridStep;
90 double m_border;
91};
92
93void to_json(json &j, const BaseIdxSF &baseIdxSF);
94void from_json(const json &j, BaseIdxSF &baseIdxSF);
95
96} // namespace rxdock
97
98#endif //_RBTBASEIDXSF_H_
Definition BaseIdxSF.h:30
Definition BaseSF.h:28