RxDock 0.1.0
A fast, versatile, and open-source program for docking ligands to proteins and nucleic acids
Loading...
Searching...
No Matches
BaseIntraSF.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// Virtual base class for intramolecular scoring functions. Overrides Update()
14
15#ifndef _RBTBASEINTRASF_H_
16#define _RBTBASEINTRASF_H_
17
18#include "rxdock/BaseSF.h"
19#include "rxdock/Model.h"
20
21#include <nlohmann/json.hpp>
22
23using json = nlohmann::json;
24
25namespace rxdock {
26
27class BaseIntraSF : public virtual BaseSF {
28public:
29 // Class type string
30 static const std::string _CT;
31
33 // Constructors/destructors
34 virtual ~BaseIntraSF();
35
36 friend void to_json(json &j, const BaseIntraSF &baseIntraSF);
37 friend void from_json(const json &j, BaseIntraSF &baseIntraSF);
38
40 // Public methods
42
43 ModelPtr GetLigand() const;
44
45 // Override Observer pure virtual
46 // Notify observer that subject has changed
47 virtual void Update(Subject *theChangedSubject);
48
49 // Override BaseSF::ScoreMap to provide additional raw descriptors
50 virtual void ScoreMap(StringVariantMap &scoreMap) const;
51
52protected:
54 // Protected methods
57
58 // PURE VIRTUAL - Derived classes must override
59 virtual void SetupScore() = 0; // Called by Update when model has changed
60
61private:
63 // Private methods
65
66protected:
68 // Protected data
70
71private:
73 // Private data
75 ModelPtr m_spLigand;
76 // 26 Mar 2003 (DM) Remember the raw score for the initial ligand conformation
77 // This becomes the zero point for all subsequent score reporting
78 // i.e. all intramolecular scores are reported relative to the initial score
79 double m_zero;
80};
81
82void to_json(json &j, const BaseIntraSF &baseIntraSF);
83void from_json(const json &j, BaseIntraSF &baseIntraSF);
84
85} // namespace rxdock
86
87#endif //_RBTBASEINTRASF_H_
Definition BaseIntraSF.h:27
Definition BaseSF.h:28
Definition Subject.h:35