RDKit
Open-source cheminformatics and machine learning.
Toggle main menu visibility
Loading...
Searching...
No Matches
GasteigerParams.h
Go to the documentation of this file.
1
//
2
// Copyright (C) 2003-2015 Rational Discovery LLC
3
//
4
// @@ All Rights Reserved @@
5
// This file is part of the RDKit.
6
// The contents are covered by the terms of the BSD license
7
// which is included in the file license.txt, found at the root
8
// of the RDKit source tree.
9
//
10
#include <
RDGeneral/export.h
>
11
#ifndef _RD_GASTEIGERPARAMS_H
12
#define _RD_GASTEIGERPARAMS_H
13
14
#include <
RDGeneral/types.h
>
15
#include <
RDGeneral/Exceptions.h
>
16
#include <string>
17
#include <map>
18
19
namespace
RDKit
{
20
extern
std::string
paramData
;
21
extern
std::string
additionalParamData
;
22
23
// this is a constant used during the iteration procedure for the hydrogen atoms
24
// for the remaining atoms it is computed on the fly
25
constexpr
double
IONXH
= 20.02;
26
27
constexpr
double
DAMP_SCALE
= 0.5;
28
constexpr
double
DAMP
= 0.5;
29
30
class
RDKIT_PARTIALCHARGES_EXPORT
GasteigerParams
{
31
/* \brief Container for all the partial charge parameters
32
*
33
* It is filled by the paramData string defined in GasteigerParams.cpp
34
* The main data member is a STL map that take a pair<std::string,
35
*std::string>
36
* of element name and mode (hybridization or bonding mode) and return a
37
*vector
38
* of three parameters, used in the iterative partial charges equalization
39
*procedure
40
*/
41
42
public
:
43
static
const
GasteigerParams
*
getParams
(
const
std::string &
paramData
=
""
);
44
45
~GasteigerParams
() { d_paramMap.clear(); }
46
47
DOUBLE_VECT
getParams
(std::string elem, std::string mode,
48
bool
throwOnFailure =
false
)
const
{
49
std::pair<std::string, std::string> query(elem, mode);
50
std::map<std::pair<std::string, std::string>,
DOUBLE_VECT
>::const_iterator
51
iter;
52
iter = d_paramMap.find(query);
53
if
(iter != d_paramMap.end()) {
54
return
iter->second;
55
}
else
{
56
if
(throwOnFailure) {
57
std::string message =
58
"ERROR: No Gasteiger Partial Charge parameters for Element: "
;
59
message += elem;
60
message +=
" Mode: "
;
61
message += mode;
62
throw
ValueErrorException
(message);
63
}
else
{
64
iter =
65
d_paramMap.find(std::make_pair(std::string(
"X"
), std::string(
"*"
)));
66
if
(iter != d_paramMap.end()) {
67
return
iter->second;
68
}
else
{
69
std::string message =
70
"ERROR: Default Gasteiger Partial Charge parameters are missing"
;
71
throw
ValueErrorException
(message);
72
}
73
}
74
}
75
}
76
77
GasteigerParams
(std::string
paramData
=
""
);
78
79
private
:
80
std::map<std::pair<std::string, std::string>,
DOUBLE_VECT
> d_paramMap;
81
82
static
class
GasteigerParams
*ds_instance;
83
};
84
};
// namespace RDKit
85
86
#endif
Exceptions.h
RDKit::GasteigerParams::~GasteigerParams
~GasteigerParams()
Definition
GasteigerParams.h:45
RDKit::GasteigerParams::getParams
DOUBLE_VECT getParams(std::string elem, std::string mode, bool throwOnFailure=false) const
Definition
GasteigerParams.h:47
RDKit::GasteigerParams::GasteigerParams
GasteigerParams(std::string paramData="")
RDKit::GasteigerParams::getParams
static const GasteigerParams * getParams(const std::string ¶mData="")
ValueErrorException
Class to allow us to throw a ValueError from C++ and have it make it back to Python.
Definition
Exceptions.h:41
export.h
RDKIT_PARTIALCHARGES_EXPORT
#define RDKIT_PARTIALCHARGES_EXPORT
Definition
export.h:511
RDKit
Std stuff.
Definition
Abbreviations.h:19
RDKit::DAMP_SCALE
constexpr double DAMP_SCALE
Definition
GasteigerParams.h:27
RDKit::additionalParamData
std::string additionalParamData
RDKit::DAMP
constexpr double DAMP
Definition
GasteigerParams.h:28
RDKit::paramData
std::string paramData
RDKit::DOUBLE_VECT
std::vector< double > DOUBLE_VECT
Definition
types.h:248
RDKit::IONXH
constexpr double IONXH
Definition
GasteigerParams.h:25
types.h
GraphMol
PartialCharges
GasteigerParams.h
Generated on
for RDKit by
1.17.0