RDKit
Open-source cheminformatics and machine learning.
Toggle main menu visibility
Loading...
Searching...
No Matches
PMI.h
Go to the documentation of this file.
1
//
2
// Copyright (C) 2016 Greg Landrum
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
11
#include <
RDGeneral/export.h
>
12
#ifndef PMI_H_SEPT2016
13
#define PMI_H_SEPT2016
14
#include <string>
15
16
#ifdef RDK_BUILD_DESCRIPTORS3D
17
namespace
RDKit
{
18
class
ROMol
;
19
namespace
Descriptors
{
20
//! Normalized principal moments ratio 1 (=I1/I3)
21
//! from Sauer and Schwarz JCIM 43:987-1003 (2003)
22
//! https://doi.org/10.1021/ci025599w
23
RDKIT_DESCRIPTORS_EXPORT
double
NPR1(
const
ROMol &,
int
confId = -1,
24
bool
useAtomicMasses =
true
,
25
bool
force =
false
);
26
const
std::string NPR1Version =
"1.0.0"
;
27
//! Normalized principal moments ratio 2 (=I2/I3)
28
//! from Sauer and Schwarz JCIM 43:987-1003 (2003)
29
//! https://doi.org/10.1021/ci025599w
30
RDKIT_DESCRIPTORS_EXPORT
double
NPR2(
const
ROMol &,
int
confId = -1,
31
bool
useAtomicMasses =
true
,
32
bool
force =
false
);
33
const
std::string NPR2Version =
"1.0.0"
;
34
35
//! First (smallest) principal moment of inertia
36
RDKIT_DESCRIPTORS_EXPORT
double
PMI1(
const
ROMol &,
int
confId = -1,
37
bool
useAtomicMasses =
true
,
38
bool
force =
false
);
39
const
std::string PMI1Version =
"1.0.0"
;
40
//! second principal moment of inertia
41
RDKIT_DESCRIPTORS_EXPORT
double
PMI2(
const
ROMol &,
int
confId = -1,
42
bool
useAtomicMasses =
true
,
43
bool
force =
false
);
44
const
std::string PMI2Version =
"1.0.0"
;
45
//! Third (largest) principal moment of inertia
46
RDKIT_DESCRIPTORS_EXPORT
double
PMI3(
const
ROMol &,
int
confId = -1,
47
bool
useAtomicMasses =
true
,
48
bool
force =
false
);
49
const
std::string PMI3Version =
"1.0.0"
;
50
51
/*!
52
Radius of gyration
53
from G. A. Arteca "Molecular Shape Descriptors"
54
Reviews in Computational Chemistry vol 9
55
https://doi.org/10.1002/9780470125861.ch5
56
57
Definition (eq: A4):
58
sqrt(t_1 + t_2 + t_3) where t_i is the ith moment from the gyration matrix
59
*/
60
RDKIT_DESCRIPTORS_EXPORT
double
radiusOfGyration(
const
ROMol &,
int
confId = -1,
61
bool
useAtomicMasses =
true
,
62
bool
force =
false
);
63
const
std::string radiusOfGyrationVersion =
"1.0.0"
;
64
/*!
65
Inertial shape factor
66
from Todeschini and Consoni "Descriptors from Molecular Geometry"
67
Handbook of Chemoinformatics
68
https://doi.org/10.1002/9783527618279.ch37
69
70
Definition:
71
pm2 / (pm1*pm3)
72
*/
73
RDKIT_DESCRIPTORS_EXPORT
double
inertialShapeFactor(
const
ROMol &,
74
int
confId = -1,
75
bool
useAtomicMasses =
true
,
76
bool
force =
false
);
77
const
std::string inertialShapeFactorVersion =
"1.0.0"
;
78
/*!
79
Molecular eccentricity
80
from G. A. Arteca "Molecular Shape Descriptors"
81
Reviews in Computational Chemistry vol 9
82
https://doi.org/10.1002/9780470125861.ch5
83
84
Definition (eq 4):
85
sqrt(pm_3**2 -pm_1**2) / pm_3**2 where pm_i is the ith moment of inertia
86
*/
87
RDKIT_DESCRIPTORS_EXPORT
double
eccentricity(
const
ROMol &,
int
confId = -1,
88
bool
useAtomicMasses =
true
,
89
bool
force =
false
);
90
const
std::string eccentricityVersion =
"1.0.0"
;
91
/*!
92
molecular asphericity
93
from A. Baumgaertner, "Shapes of flexible vesicles"
94
J. Chem. Phys. 98:7496 (1993)
95
https://doi.org/10.1063/1.464689
96
97
Definition (eq 11):
98
0.5 * ((t_3-t_2)**2 + (t_3-t_1)**2 + (t_2-t_1)**2)/(t_1+t_2+t_3)**2
99
where t_i is the ith moment from the gyration matrix
100
101
Some explanation of that definition: the text of the paper mentions axes
102
of inertia, but then the definition of the radius of gyration in eq.9 clearly
103
uses the moments of the gyration matrix. The text under equation 11 has the
104
appropriate inequalities and limits for the moments of gyration, but the
105
description of the geometry provided corresponds to the moments of inertia.
106
The definition here corresponds to what Dragon generates and seem logical
107
108
*/
109
RDKIT_DESCRIPTORS_EXPORT
double
asphericity(
const
ROMol &,
int
confId = -1,
110
bool
useAtomicMasses =
true
,
111
bool
force =
false
);
112
const
std::string asphericityVersion =
"1.0.0"
;
113
/*!
114
Spherocity index
115
from Todeschini and Consoni "Descriptors from Molecular Geometry"
116
Handbook of Chemoinformatics
117
https://doi.org/10.1002/9783527618279.ch37
118
119
Definition:
120
3 * t_1 / (t_1+t_2+t_3)
121
where the moments of the gyration matrix are calculated without weights
122
*/
123
RDKIT_DESCRIPTORS_EXPORT
double
spherocityIndex(
const
ROMol &,
int
confId = -1,
124
bool
force =
false
);
125
const
std::string spherocityIndexVersion =
"1.0.0"
;
126
}
// namespace Descriptors
127
}
// namespace RDKit
128
#endif
129
#endif
RDKit::ROMol
Definition
ROMol.h:344
export.h
RDKIT_DESCRIPTORS_EXPORT
#define RDKIT_DESCRIPTORS_EXPORT
Definition
export.h:141
RDKit::Descriptors
Definition
AtomFeat.h:32
RDKit
Std stuff.
Definition
Abbreviations.h:19
GraphMol
Descriptors
PMI.h
Generated on
for RDKit by
1.17.0