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