15#ifndef _RBTAROMIDXSF_H_
16#define _RBTAROMIDXSF_H_
18#include "rxdock/AnnotationHandler.h"
19#include "rxdock/BaseIdxSF.h"
20#include "rxdock/BaseInterSF.h"
21#include "rxdock/Plane.h"
23#include <nlohmann/json.hpp>
25using json = nlohmann::json;
34 static const std::string _CT;
36 static const std::string _INCR;
37 static const std::string _R12;
38 static const std::string _DR12MIN;
39 static const std::string _DR12MAX;
40 static const std::string _DAMIN;
41 static const std::string _DAMAX;
43 static const std::string _THRESHOLD;
45 AromIdxSF(
const std::string &strName =
"arom");
48 friend void to_json(json &j,
const AromIdxSF &aromIdxSF);
49 friend void from_json(
const json &j,
AromIdxSF &aromIdxSF);
55 virtual void SetupReceptor();
56 virtual void SetupLigand();
57 virtual void SetupScore();
58 virtual double RawScore()
const;
67 void ParameterUpdated(
const std::string &strName);
81 double R0, DRMin, DRMax, slope;
82 f1prms(
double R,
double DMin,
double DMax)
83 : R0(R), DRMin(DMin), DRMax(DMax), slope(1.0 / (DMax - DMin)) {}
86 inline f1prms GetRprms()
const {
return f1prms(m_R12, m_DR12Min, m_DR12Max); }
87 inline f1prms GetAprms()
const {
return f1prms(0.0, m_DAMin, m_DAMax); }
90 inline double f1(
double DR,
const f1prms &prms)
const {
91 return (DR > prms.DRMax) ? 0.0
92 : (DR > prms.DRMin) ? 1.0 - prms.slope * (DR - prms.DRMin)
99 const InteractionCenterList &IC2List,
const f1prms &Rprms,
100 const f1prms &Aprms)
const;
102 const InteractionCenterList &IC2List)
const;
108 InteractionCenterList m_recepAromList;
109 InteractionCenterList m_recepGuanList;
110 InteractionCenterList m_ligAromList;
111 InteractionCenterList m_ligGuanList;
130void to_json(json &j,
const Bond &bond);
131void from_json(
const json &j,
Bond &bond);
Definition AnnotationHandler.h:28
Definition AromIdxSF.h:31
Definition BaseIdxSF.h:30
Definition BaseInterSF.h:27
Definition InteractionGrid.h:29