1
2
3
4
5
6
7
8
9
10 """ Descriptors derived from a molecule's 3D structure
11
12 """
13 from __future__ import print_function
14 from rdkit.Chem import rdMolDescriptors
15
16
17 if hasattr(rdMolDescriptors, 'CalcPMI1'):
18 PMI1 = lambda *x, **y: rdMolDescriptors.CalcPMI1(*x, **y)
19 PMI1.version = rdMolDescriptors._CalcPMI1_version
20 PMI1.__doc__ = """ First (smallest) principal moment of inertia
21
22
23 **Arguments**
24
25 - inMol: a molecule
26
27 - confId: (optional) the conformation ID to use
28
29 - useAtomicMasses: (optional) toggles use of atomic masses in the
30 calculation. Defaults to True
31 """
32
33 PMI2 = lambda *x, **y: rdMolDescriptors.CalcPMI2(*x, **y)
34 PMI2.version = rdMolDescriptors._CalcPMI2_version
35 PMI2.__doc__ = """ Second principal moment of inertia
36
37 **Arguments**
38
39 - inMol: a molecule
40
41 - confId: (optional) the conformation ID to use
42
43 - useAtomicMasses: (optional) toggles use of atomic masses in the
44 calculation. Defaults to True
45 """
46
47 PMI3 = lambda *x, **y: rdMolDescriptors.CalcPMI3(*x, **y)
48 PMI3.version = rdMolDescriptors._CalcPMI3_version
49 PMI3.__doc__ = """ Third (largest) principal moment of inertia
50
51 **Arguments**
52
53 - inMol: a molecule
54
55 - confId: (optional) the conformation ID to use
56
57 - useAtomicMasses: (optional) toggles use of atomic masses in the
58 calculation. Defaults to True
59 """
60
61 NPR1 = lambda *x, **y: rdMolDescriptors.CalcNPR1(*x, **y)
62 NPR1.version = rdMolDescriptors._CalcNPR1_version
63 NPR1.__doc__ = """ Normalized principal moments ratio 1 (=I1/I3)
64
65 from Sauer and Schwarz JCIM 43:987-1003 (2003)
66 https://dx.doi.org/10.1021/ci025599w
67
68
69 **Arguments**
70
71 - inMol: a molecule
72
73 - confId: (optional) the conformation ID to use
74
75 - useAtomicMasses: (optional) toggles use of atomic masses in the
76 calculation. Defaults to True
77 """
78
79 NPR2 = lambda *x, **y: rdMolDescriptors.CalcNPR2(*x, **y)
80 NPR2.version = rdMolDescriptors._CalcNPR2_version
81 NPR2.__doc__ = """ Normalized principal moments ratio 2 (=I2/I3)
82
83 from Sauer and Schwarz JCIM 43:987-1003 (2003)
84 https://dx.doi.org/10.1021/ci025599w
85
86
87 **Arguments**
88
89 - inMol: a molecule
90
91 - confId: (optional) the conformation ID to use
92
93 - useAtomicMasses: (optional) toggles use of atomic masses in the
94 calculation. Defaults to True
95 """
96
97 RadiusOfGyration = lambda *x, **y: rdMolDescriptors.CalcRadiusOfGyration(*x, **y)
98 RadiusOfGyration.version = rdMolDescriptors._CalcRadiusOfGyration_version
99 RadiusOfGyration.__doc__ = """ Radius of gyration
100
101 from Todeschini and Consoni "Descriptors from Molecular Geometry"
102 Handbook of Chemoinformatics
103 http://dx.doi.org/10.1002/9783527618279.ch37
104
105 Definition:
106 for planar molecules: sqrt( sqrt(pm3*pm2)/MW )
107 for nonplanar molecules: sqrt( 2*pi*pow(pm3*pm2*pm1,1/3)/MW )
108
109 **Arguments**
110
111 - inMol: a molecule
112
113 - confId: (optional) the conformation ID to use
114
115 - useAtomicMasses: (optional) toggles use of atomic masses in the
116 calculation. Defaults to True
117 """
118
119 InertialShapeFactor = lambda *x, **y: rdMolDescriptors.CalcInertialShapeFactor(*x, **y)
120 InertialShapeFactor.version = rdMolDescriptors._CalcInertialShapeFactor_version
121 InertialShapeFactor.__doc__ = """ Inertial shape factor
122
123 from Todeschini and Consoni "Descriptors from Molecular Geometry"
124 Handbook of Chemoinformatics
125 http://dx.doi.org/10.1002/9783527618279.ch37
126
127 Definition:
128 pm2 / (pm1*pm3)
129
130 **Arguments**
131
132 - inMol: a molecule
133
134 - confId: (optional) the conformation ID to use
135
136 - useAtomicMasses: (optional) toggles use of atomic masses in the
137 calculation. Defaults to True
138 """
139
140 Eccentricity = lambda *x, **y: rdMolDescriptors.CalcEccentricity(*x, **y)
141 Eccentricity.version = rdMolDescriptors._CalcEccentricity_version
142 Eccentricity.__doc__ = """ molecular eccentricity
143
144 from Todeschini and Consoni "Descriptors from Molecular Geometry"
145 Handbook of Chemoinformatics
146 http://dx.doi.org/10.1002/9783527618279.ch37
147
148 Definition:
149 sqrt(pm3**2 -pm1**2) / pm3**2
150
151 **Arguments**
152
153 - inMol: a molecule
154
155 - confId: (optional) the conformation ID to use
156
157 - useAtomicMasses: (optional) toggles use of atomic masses in the
158 calculation. Defaults to True
159 """
160
161 Asphericity = lambda *x, **y: rdMolDescriptors.CalcAsphericity(*x, **y)
162 Asphericity.version = rdMolDescriptors._CalcAsphericity_version
163 Asphericity.__doc__ = """ molecular asphericity
164
165 from Todeschini and Consoni "Descriptors from Molecular Geometry"
166 Handbook of Chemoinformatics
167 http://dx.doi.org/10.1002/9783527618279.ch37
168
169 Definition:
170 0.5 * ((pm3-pm2)**2 + (pm3-pm1)**2 + (pm2-pm1)**2)/(pm1**2+pm2**2+pm3**2)
171
172 **Arguments**
173
174 - inMol: a molecule
175
176 - confId: (optional) the conformation ID to use
177
178 - useAtomicMasses: (optional) toggles use of atomic masses in the
179 calculation. Defaults to True
180 """
181
182 SpherocityIndex = lambda *x, **y: rdMolDescriptors.CalcSpherocityIndex(*x, **y)
183 SpherocityIndex.version = rdMolDescriptors._CalcSpherocityIndex_version
184 SpherocityIndex.__doc__ = """ Molecular spherocityIndex
185
186 from Todeschini and Consoni "Descriptors from Molecular Geometry"
187 Handbook of Chemoinformatics
188 http://dx.doi.org/10.1002/9783527618279.ch37
189
190 Definition:
191 3 * pm1 / (pm1+pm2+pm3) where the moments are calculated without weights
192
193 **Arguments**
194
195 - inMol: a molecule
196
197 - confId: (optional) the conformation ID to use
198
199 """
200