chython 2.4__cp312-cp312-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- chython/__init__.py +31 -0
- chython/_functions.py +69 -0
- chython/algorithms/__init__.py +18 -0
- chython/algorithms/_isomorphism.cp312-win_amd64.pyd +0 -0
- chython/algorithms/_isomorphism.pyx +189 -0
- chython/algorithms/aromatics/__init__.py +27 -0
- chython/algorithms/aromatics/_rules.py +124 -0
- chython/algorithms/aromatics/kekule.py +530 -0
- chython/algorithms/aromatics/test/__init__.py +18 -0
- chython/algorithms/aromatics/test/test_kekule.py +160 -0
- chython/algorithms/aromatics/test/test_thiele.py +263 -0
- chython/algorithms/aromatics/thiele.py +226 -0
- chython/algorithms/calculate2d/__init__.py +23 -0
- chython/algorithms/calculate2d/clean2d.js +1 -0
- chython/algorithms/calculate2d/molecule.py +149 -0
- chython/algorithms/calculate2d/reaction.py +80 -0
- chython/algorithms/depict.py +523 -0
- chython/algorithms/fingerprints/__init__.py +48 -0
- chython/algorithms/fingerprints/linear.py +208 -0
- chython/algorithms/fingerprints/morgan.py +137 -0
- chython/algorithms/fingerprints/test/__init__.py +18 -0
- chython/algorithms/fingerprints/test/test_linear.py +127 -0
- chython/algorithms/fingerprints/test/test_morgan.py +79 -0
- chython/algorithms/isomorphism.py +667 -0
- chython/algorithms/mapping/__init__.py +28 -0
- chython/algorithms/mapping/_groups.py +94 -0
- chython/algorithms/mapping/_reactions.py +72 -0
- chython/algorithms/mapping/attention.py +216 -0
- chython/algorithms/mapping/fixmapper.py +84 -0
- chython/algorithms/mapping/groups.py +137 -0
- chython/algorithms/mcs.py +202 -0
- chython/algorithms/morgan.py +82 -0
- chython/algorithms/rings.py +551 -0
- chython/algorithms/smiles.py +556 -0
- chython/algorithms/standardize/__init__.py +30 -0
- chython/algorithms/standardize/_charged.py +115 -0
- chython/algorithms/standardize/_groups.py +926 -0
- chython/algorithms/standardize/_metal_organics.py +189 -0
- chython/algorithms/standardize/_reagents.py +44 -0
- chython/algorithms/standardize/_salts.py +68 -0
- chython/algorithms/standardize/molecule.py +479 -0
- chython/algorithms/standardize/reaction.py +429 -0
- chython/algorithms/standardize/resonance.py +196 -0
- chython/algorithms/standardize/salts.py +128 -0
- chython/algorithms/standardize/saturation.py +378 -0
- chython/algorithms/standardize/test/__init__.py +18 -0
- chython/algorithms/standardize/test/test_groups.py +118 -0
- chython/algorithms/stereo.py +1222 -0
- chython/algorithms/tautomers/__init__.py +171 -0
- chython/algorithms/tautomers/_acid.py +59 -0
- chython/algorithms/tautomers/_base.py +116 -0
- chython/algorithms/tautomers/_keto_enol.py +107 -0
- chython/algorithms/tautomers/acid_base.py +214 -0
- chython/algorithms/tautomers/heteroarenes.py +108 -0
- chython/algorithms/tautomers/keto_enol.py +148 -0
- chython/algorithms/tautomers/test/__init__.py +18 -0
- chython/algorithms/tautomers/test/test_tautomers.py +80 -0
- chython/algorithms/test/__init__.py +18 -0
- chython/algorithms/test/test_isomorphism.py +58 -0
- chython/algorithms/test/test_smiles.py +76 -0
- chython/algorithms/x3dom.py +355 -0
- chython/containers/__init__.py +43 -0
- chython/containers/_pack_v2.cp312-win_amd64.pyd +0 -0
- chython/containers/_pack_v2.pyx +271 -0
- chython/containers/_unpack_v0v2.cp312-win_amd64.pyd +0 -0
- chython/containers/_unpack_v0v2.pyx +300 -0
- chython/containers/bonds.py +255 -0
- chython/containers/cgr.py +115 -0
- chython/containers/graph.py +200 -0
- chython/containers/molecule.py +695 -0
- chython/containers/query.py +66 -0
- chython/containers/reaction.py +324 -0
- chython/exceptions.py +114 -0
- chython/files/MRVrw.py +523 -0
- chython/files/PDBrw.py +257 -0
- chython/files/RDFrw.py +298 -0
- chython/files/SDFrw.py +221 -0
- chython/files/__init__.py +29 -0
- chython/files/_convert.py +207 -0
- chython/files/_mapping.py +117 -0
- chython/files/_xyz.cp312-win_amd64.pyd +0 -0
- chython/files/_xyz.pyx +74 -0
- chython/files/daylight/__init__.py +24 -0
- chython/files/daylight/parser.py +157 -0
- chython/files/daylight/smarts.py +107 -0
- chython/files/daylight/smiles.py +245 -0
- chython/files/daylight/test/__init__.py +18 -0
- chython/files/daylight/test/test_daylight_smarts.py +289 -0
- chython/files/daylight/test/test_daylight_smiles.py +101 -0
- chython/files/daylight/test/test_parser.py +118 -0
- chython/files/daylight/test/test_tokenize.py +77 -0
- chython/files/daylight/tokenize.py +376 -0
- chython/files/libinchi/__init__.py +22 -0
- chython/files/libinchi/libinchi.dll +0 -0
- chython/files/libinchi/wrapper.py +555 -0
- chython/files/mdl/__init__.py +25 -0
- chython/files/mdl/emol.py +209 -0
- chython/files/mdl/erxn.py +67 -0
- chython/files/mdl/mol.py +144 -0
- chython/files/mdl/read.py +225 -0
- chython/files/mdl/rxn.py +67 -0
- chython/files/mdl/stereo.py +63 -0
- chython/files/mdl/write.py +165 -0
- chython/files/xyz.py +78 -0
- chython/periodictable/__init__.py +69 -0
- chython/periodictable/base/__init__.py +25 -0
- chython/periodictable/base/dynamic.py +149 -0
- chython/periodictable/base/element.py +452 -0
- chython/periodictable/base/groups.py +90 -0
- chython/periodictable/base/periods.py +46 -0
- chython/periodictable/base/query.py +473 -0
- chython/periodictable/base/vector.py +119 -0
- chython/periodictable/groupI.py +252 -0
- chython/periodictable/groupII.py +223 -0
- chython/periodictable/groupIII.py +1154 -0
- chython/periodictable/groupIV.py +210 -0
- chython/periodictable/groupIX.py +196 -0
- chython/periodictable/groupV.py +192 -0
- chython/periodictable/groupVI.py +183 -0
- chython/periodictable/groupVII.py +162 -0
- chython/periodictable/groupVIII.py +161 -0
- chython/periodictable/groupX.py +166 -0
- chython/periodictable/groupXI.py +164 -0
- chython/periodictable/groupXII.py +158 -0
- chython/periodictable/groupXIII.py +239 -0
- chython/periodictable/groupXIV.py +262 -0
- chython/periodictable/groupXV.py +276 -0
- chython/periodictable/groupXVI.py +457 -0
- chython/periodictable/groupXVII.py +324 -0
- chython/periodictable/groupXVIII.py +260 -0
- chython/reactor/__init__.py +24 -0
- chython/reactor/base.py +212 -0
- chython/reactor/deprotection.py +565 -0
- chython/reactor/groups.py +128 -0
- chython/reactor/reactions/__init__.py +157 -0
- chython/reactor/reactions/_amidation.py +58 -0
- chython/reactor/reactions/_amine_isocyanate.py +52 -0
- chython/reactor/reactions/_buchwald_hartwig.py +50 -0
- chython/reactor/reactions/_esterification.py +49 -0
- chython/reactor/reactions/_macmillan.py +43 -0
- chython/reactor/reactions/_reductive_amination.py +50 -0
- chython/reactor/reactions/_sonogashira.py +49 -0
- chython/reactor/reactions/_sulfonamidation.py +52 -0
- chython/reactor/reactions/_suzuki_miyaura.py +88 -0
- chython/reactor/reactions/ufe.py +99 -0
- chython/reactor/reactor.py +170 -0
- chython/reactor/retro/__init__.py +77 -0
- chython/reactor/retro/_amidation.py +39 -0
- chython/reactor/retro/_aryl_amination.py +32 -0
- chython/reactor/retro/_mitsunobu.py +49 -0
- chython/reactor/retro/_sonogashira.py +49 -0
- chython/reactor/retro/_suzuki_miyaura.py +54 -0
- chython/reactor/scaffold.py +122 -0
- chython/reactor/test/__init__.py +18 -0
- chython/reactor/test/test_deprotection.py +57 -0
- chython/reactor/test/test_reactor.py +40 -0
- chython/reactor/test/test_scaffold.py +57 -0
- chython/reactor/test/test_transformer.py +40 -0
- chython/reactor/transformer.py +62 -0
- chython/utils/__init__.py +57 -0
- chython/utils/free_wilson.py +114 -0
- chython/utils/grid.py +130 -0
- chython/utils/rdkit.py +165 -0
- chython/utils/retro.py +139 -0
- chython/utils/svg.py +57 -0
- chython/utils/test/__init__.py +18 -0
- chython/utils/test/test_rdkit.py +71 -0
- chython-2.4.dist-info/LICENSE +165 -0
- chython-2.4.dist-info/METADATA +101 -0
- chython-2.4.dist-info/RECORD +171 -0
- chython-2.4.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Copyright 2019-2024 Ramil Nugmanov <nougmanoff@protonmail.com>
|
|
4
|
+
# This file is part of chython.
|
|
5
|
+
#
|
|
6
|
+
# chython is free software; you can redistribute it and/or modify
|
|
7
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
|
8
|
+
# the Free Software Foundation; either version 3 of the License, or
|
|
9
|
+
# (at your option) any later version.
|
|
10
|
+
#
|
|
11
|
+
# This program is distributed in the hope that it will be useful,
|
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
# GNU Lesser General Public License for more details.
|
|
15
|
+
#
|
|
16
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
+
# along with this program; if not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
#
|
|
19
|
+
from .base import Element
|
|
20
|
+
from .base.groups import GroupI
|
|
21
|
+
from .base.periods import *
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class H(Element, PeriodI, GroupI):
|
|
25
|
+
__slots__ = ()
|
|
26
|
+
|
|
27
|
+
@property
|
|
28
|
+
def atomic_number(self):
|
|
29
|
+
return 1
|
|
30
|
+
|
|
31
|
+
@property
|
|
32
|
+
def isotopes_distribution(self):
|
|
33
|
+
return {1: 0.999885, 2: 0.000115, 3: 0.}
|
|
34
|
+
|
|
35
|
+
@property
|
|
36
|
+
def isotopes_masses(self):
|
|
37
|
+
return {1: 1.007825, 2: 2.014102, 3: 3.016049}
|
|
38
|
+
|
|
39
|
+
@property
|
|
40
|
+
def _common_valences(self):
|
|
41
|
+
return 1,
|
|
42
|
+
|
|
43
|
+
@property
|
|
44
|
+
def _valences_exceptions(self):
|
|
45
|
+
return (1, False, 0, ()), (0, True, 0, ()), (-1, False, 0, ())
|
|
46
|
+
|
|
47
|
+
@property
|
|
48
|
+
def atomic_radius(self):
|
|
49
|
+
return 0.53
|
|
50
|
+
|
|
51
|
+
@property
|
|
52
|
+
def mdl_isotope(self):
|
|
53
|
+
return 1
|
|
54
|
+
|
|
55
|
+
@property
|
|
56
|
+
def is_forming_single_bonds(self):
|
|
57
|
+
return True
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class Li(Element, PeriodII, GroupI):
|
|
61
|
+
__slots__ = ()
|
|
62
|
+
|
|
63
|
+
@property
|
|
64
|
+
def atomic_number(self):
|
|
65
|
+
return 3
|
|
66
|
+
|
|
67
|
+
@property
|
|
68
|
+
def isotopes_distribution(self):
|
|
69
|
+
return {6: 0.0759, 7: 0.9241}
|
|
70
|
+
|
|
71
|
+
@property
|
|
72
|
+
def isotopes_masses(self):
|
|
73
|
+
return {6: 6.015122, 7: 7.016004}
|
|
74
|
+
|
|
75
|
+
@property
|
|
76
|
+
def _common_valences(self):
|
|
77
|
+
return 0, 1
|
|
78
|
+
|
|
79
|
+
@property
|
|
80
|
+
def _valences_exceptions(self):
|
|
81
|
+
return (1, False, 0, ()),
|
|
82
|
+
|
|
83
|
+
@property
|
|
84
|
+
def atomic_radius(self):
|
|
85
|
+
return 167
|
|
86
|
+
|
|
87
|
+
@property
|
|
88
|
+
def mdl_isotope(self):
|
|
89
|
+
return 7
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
class Na(Element, PeriodIII, GroupI):
|
|
93
|
+
__slots__ = ()
|
|
94
|
+
|
|
95
|
+
@property
|
|
96
|
+
def atomic_number(self):
|
|
97
|
+
return 11
|
|
98
|
+
|
|
99
|
+
@property
|
|
100
|
+
def isotopes_distribution(self):
|
|
101
|
+
return {22: 0., 23: 1.0}
|
|
102
|
+
|
|
103
|
+
@property
|
|
104
|
+
def isotopes_masses(self):
|
|
105
|
+
return {22: 21.994437, 23: 22.98977}
|
|
106
|
+
|
|
107
|
+
@property
|
|
108
|
+
def _common_valences(self):
|
|
109
|
+
return 0, 1
|
|
110
|
+
|
|
111
|
+
@property
|
|
112
|
+
def _valences_exceptions(self):
|
|
113
|
+
return (1, False, 0, ()),
|
|
114
|
+
|
|
115
|
+
@property
|
|
116
|
+
def atomic_radius(self):
|
|
117
|
+
return 1.9
|
|
118
|
+
|
|
119
|
+
@property
|
|
120
|
+
def mdl_isotope(self):
|
|
121
|
+
return 23
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
class K(Element, PeriodIV, GroupI):
|
|
125
|
+
__slots__ = ()
|
|
126
|
+
|
|
127
|
+
@property
|
|
128
|
+
def atomic_number(self):
|
|
129
|
+
return 19
|
|
130
|
+
|
|
131
|
+
@property
|
|
132
|
+
def isotopes_distribution(self):
|
|
133
|
+
return {39: 0.932581, 40: 0.000117, 41: 0.067302, 42: 0.}
|
|
134
|
+
|
|
135
|
+
@property
|
|
136
|
+
def isotopes_masses(self):
|
|
137
|
+
return {39: 38.963707, 40: 39.963999, 41: 40.961826, 42: 41.962402}
|
|
138
|
+
|
|
139
|
+
@property
|
|
140
|
+
def _common_valences(self):
|
|
141
|
+
return 0, 1
|
|
142
|
+
|
|
143
|
+
@property
|
|
144
|
+
def _valences_exceptions(self):
|
|
145
|
+
return (1, False, 0, ()),
|
|
146
|
+
|
|
147
|
+
@property
|
|
148
|
+
def atomic_radius(self):
|
|
149
|
+
return 2.43
|
|
150
|
+
|
|
151
|
+
@property
|
|
152
|
+
def mdl_isotope(self):
|
|
153
|
+
return 39
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
class Rb(Element, PeriodV, GroupI):
|
|
157
|
+
__slots__ = ()
|
|
158
|
+
|
|
159
|
+
@property
|
|
160
|
+
def atomic_number(self):
|
|
161
|
+
return 37
|
|
162
|
+
|
|
163
|
+
@property
|
|
164
|
+
def isotopes_distribution(self):
|
|
165
|
+
return {82: 0., 85: 0.7217, 87: 0.2783}
|
|
166
|
+
|
|
167
|
+
@property
|
|
168
|
+
def isotopes_masses(self):
|
|
169
|
+
return {82: 81.918209, 85: 84.911789, 87: 86.909183}
|
|
170
|
+
|
|
171
|
+
@property
|
|
172
|
+
def _common_valences(self):
|
|
173
|
+
return 0, 1
|
|
174
|
+
|
|
175
|
+
@property
|
|
176
|
+
def _valences_exceptions(self):
|
|
177
|
+
return (1, False, 0, ()),
|
|
178
|
+
|
|
179
|
+
@property
|
|
180
|
+
def atomic_radius(self):
|
|
181
|
+
return 2.65
|
|
182
|
+
|
|
183
|
+
@property
|
|
184
|
+
def mdl_isotope(self):
|
|
185
|
+
return 85
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
class Cs(Element, PeriodVI, GroupI):
|
|
189
|
+
__slots__ = ()
|
|
190
|
+
|
|
191
|
+
@property
|
|
192
|
+
def atomic_number(self):
|
|
193
|
+
return 55
|
|
194
|
+
|
|
195
|
+
@property
|
|
196
|
+
def isotopes_distribution(self):
|
|
197
|
+
return {131: 0., 133: 1.0}
|
|
198
|
+
|
|
199
|
+
@property
|
|
200
|
+
def isotopes_masses(self):
|
|
201
|
+
return {131: 130.905464, 133: 132.905447}
|
|
202
|
+
|
|
203
|
+
@property
|
|
204
|
+
def _common_valences(self):
|
|
205
|
+
return 0, 1
|
|
206
|
+
|
|
207
|
+
@property
|
|
208
|
+
def _valences_exceptions(self):
|
|
209
|
+
return (1, False, 0, ()),
|
|
210
|
+
|
|
211
|
+
@property
|
|
212
|
+
def atomic_radius(self):
|
|
213
|
+
return 2.98
|
|
214
|
+
|
|
215
|
+
@property
|
|
216
|
+
def mdl_isotope(self):
|
|
217
|
+
return 133
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
class Fr(Element, PeriodVII, GroupI):
|
|
221
|
+
__slots__ = ()
|
|
222
|
+
|
|
223
|
+
@property
|
|
224
|
+
def atomic_number(self):
|
|
225
|
+
return 87
|
|
226
|
+
|
|
227
|
+
@property
|
|
228
|
+
def isotopes_distribution(self):
|
|
229
|
+
return {223: 1.0}
|
|
230
|
+
|
|
231
|
+
@property
|
|
232
|
+
def isotopes_masses(self):
|
|
233
|
+
return {223: 223.019736}
|
|
234
|
+
|
|
235
|
+
@property
|
|
236
|
+
def _common_valences(self):
|
|
237
|
+
return 0, 1
|
|
238
|
+
|
|
239
|
+
@property
|
|
240
|
+
def _valences_exceptions(self):
|
|
241
|
+
return (1, False, 0, ()),
|
|
242
|
+
|
|
243
|
+
@property
|
|
244
|
+
def atomic_radius(self):
|
|
245
|
+
return 2.98 # unknown, taken radius of previous element in group
|
|
246
|
+
|
|
247
|
+
@property
|
|
248
|
+
def mdl_isotope(self):
|
|
249
|
+
return 223
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
__all__ = ['H', 'Li', 'Na', 'K', 'Rb', 'Cs', 'Fr']
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Copyright 2019-2024 Ramil Nugmanov <nougmanoff@protonmail.com>
|
|
4
|
+
# Copyright 2019 Tagir Akhmetshin <tagirshin@gmail.com>
|
|
5
|
+
# This file is part of chython.
|
|
6
|
+
#
|
|
7
|
+
# chython is free software; you can redistribute it and/or modify
|
|
8
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
|
9
|
+
# the Free Software Foundation; either version 3 of the License, or
|
|
10
|
+
# (at your option) any later version.
|
|
11
|
+
#
|
|
12
|
+
# This program is distributed in the hope that it will be useful,
|
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15
|
+
# GNU Lesser General Public License for more details.
|
|
16
|
+
#
|
|
17
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
18
|
+
# along with this program; if not, see <https://www.gnu.org/licenses/>.
|
|
19
|
+
#
|
|
20
|
+
from .base import Element
|
|
21
|
+
from .base.groups import GroupII
|
|
22
|
+
from .base.periods import PeriodII, PeriodIII, PeriodIV, PeriodV, PeriodVI, PeriodVII
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Be(Element, PeriodII, GroupII):
|
|
26
|
+
__slots__ = ()
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def atomic_number(self):
|
|
30
|
+
return 4
|
|
31
|
+
|
|
32
|
+
@property
|
|
33
|
+
def isotopes_distribution(self):
|
|
34
|
+
return {9: 1.0}
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
def isotopes_masses(self):
|
|
38
|
+
return {9: 9.012182}
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def _common_valences(self):
|
|
42
|
+
return 0, 2
|
|
43
|
+
|
|
44
|
+
@property
|
|
45
|
+
def _valences_exceptions(self):
|
|
46
|
+
return (2, False, 0, ()),
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def atomic_radius(self):
|
|
50
|
+
return 1.12
|
|
51
|
+
|
|
52
|
+
@property
|
|
53
|
+
def mdl_isotope(self):
|
|
54
|
+
return 9
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class Mg(Element, PeriodIII, GroupII):
|
|
58
|
+
__slots__ = ()
|
|
59
|
+
|
|
60
|
+
@property
|
|
61
|
+
def atomic_number(self):
|
|
62
|
+
return 12
|
|
63
|
+
|
|
64
|
+
@property
|
|
65
|
+
def isotopes_distribution(self):
|
|
66
|
+
return {24: 0.7899, 25: 0.1, 26: 0.1101}
|
|
67
|
+
|
|
68
|
+
@property
|
|
69
|
+
def isotopes_masses(self):
|
|
70
|
+
return {24: 23.985042, 25: 24.985837, 26: 25.982593}
|
|
71
|
+
|
|
72
|
+
@property
|
|
73
|
+
def _common_valences(self):
|
|
74
|
+
return 0, 2
|
|
75
|
+
|
|
76
|
+
@property
|
|
77
|
+
def _valences_exceptions(self):
|
|
78
|
+
return ((2, False, 0, ()),
|
|
79
|
+
(1, False, 0, ((1, 'C'),)),
|
|
80
|
+
(1, False, 0, ((1, 'O'),)),
|
|
81
|
+
(1, False, 0, ((1, 'Br'),)),
|
|
82
|
+
(1, False, 0, ((1, 'Cl'),)))
|
|
83
|
+
|
|
84
|
+
@property
|
|
85
|
+
def atomic_radius(self):
|
|
86
|
+
return 1.45
|
|
87
|
+
|
|
88
|
+
@property
|
|
89
|
+
def mdl_isotope(self):
|
|
90
|
+
return 24
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class Ca(Element, PeriodIV, GroupII):
|
|
94
|
+
__slots__ = ()
|
|
95
|
+
|
|
96
|
+
@property
|
|
97
|
+
def atomic_number(self):
|
|
98
|
+
return 20
|
|
99
|
+
|
|
100
|
+
@property
|
|
101
|
+
def isotopes_distribution(self):
|
|
102
|
+
return {40: 0.96941, 42: 0.00647, 43: 0.00135, 44: 0.02086, 45: 0., 46: 4e-05, 47: 0., 48: 0.00187}
|
|
103
|
+
|
|
104
|
+
@property
|
|
105
|
+
def isotopes_masses(self):
|
|
106
|
+
return {40: 39.962591, 42: 41.958618, 43: 42.958767, 44: 43.955481, 45: 44.956186, 46: 45.953693, 47: 46.954541,
|
|
107
|
+
48: 47.952534}
|
|
108
|
+
|
|
109
|
+
@property
|
|
110
|
+
def _common_valences(self):
|
|
111
|
+
return 0, 2
|
|
112
|
+
|
|
113
|
+
@property
|
|
114
|
+
def _valences_exceptions(self):
|
|
115
|
+
return (2, False, 0, ()),
|
|
116
|
+
|
|
117
|
+
@property
|
|
118
|
+
def atomic_radius(self):
|
|
119
|
+
return 1.94
|
|
120
|
+
|
|
121
|
+
@property
|
|
122
|
+
def mdl_isotope(self):
|
|
123
|
+
return 40
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class Sr(Element, PeriodV, GroupII):
|
|
127
|
+
__slots__ = ()
|
|
128
|
+
|
|
129
|
+
@property
|
|
130
|
+
def atomic_number(self):
|
|
131
|
+
return 38
|
|
132
|
+
|
|
133
|
+
@property
|
|
134
|
+
def isotopes_distribution(self):
|
|
135
|
+
return {84: 0.0056, 85: 0., 86: 0.0986, 87: 0.07, 88: 0.8258, 89: 0.}
|
|
136
|
+
|
|
137
|
+
@property
|
|
138
|
+
def isotopes_masses(self):
|
|
139
|
+
return {84: 83.913425, 85: 84.912933, 86: 85.909262, 87: 86.908879, 88: 87.905614, 89: 88.907451}
|
|
140
|
+
|
|
141
|
+
@property
|
|
142
|
+
def _common_valences(self):
|
|
143
|
+
return 0, 2
|
|
144
|
+
|
|
145
|
+
@property
|
|
146
|
+
def _valences_exceptions(self):
|
|
147
|
+
return (2, False, 0, ()),
|
|
148
|
+
|
|
149
|
+
@property
|
|
150
|
+
def atomic_radius(self):
|
|
151
|
+
return 2.19
|
|
152
|
+
|
|
153
|
+
@property
|
|
154
|
+
def mdl_isotope(self):
|
|
155
|
+
return 88
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
class Ba(Element, PeriodVI, GroupII):
|
|
159
|
+
__slots__ = ()
|
|
160
|
+
|
|
161
|
+
@property
|
|
162
|
+
def atomic_number(self):
|
|
163
|
+
return 56
|
|
164
|
+
|
|
165
|
+
@property
|
|
166
|
+
def isotopes_distribution(self):
|
|
167
|
+
return {130: 0.00106, 132: 0.00101, 134: 0.02417, 135: 0.06592, 136: 0.07854, 137: 0.11232, 138: 0.71698}
|
|
168
|
+
|
|
169
|
+
@property
|
|
170
|
+
def isotopes_masses(self):
|
|
171
|
+
return {130: 129.90631, 132: 131.905056, 134: 133.904503, 135: 134.905683, 136: 135.90457, 137: 136.905821,
|
|
172
|
+
138: 137.905241}
|
|
173
|
+
|
|
174
|
+
@property
|
|
175
|
+
def _common_valences(self):
|
|
176
|
+
return 0, 2
|
|
177
|
+
|
|
178
|
+
@property
|
|
179
|
+
def _valences_exceptions(self):
|
|
180
|
+
return (2, False, 0, ()),
|
|
181
|
+
|
|
182
|
+
@property
|
|
183
|
+
def atomic_radius(self):
|
|
184
|
+
return 2.53
|
|
185
|
+
|
|
186
|
+
@property
|
|
187
|
+
def mdl_isotope(self):
|
|
188
|
+
return 137
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
class Ra(Element, PeriodVII, GroupII):
|
|
192
|
+
__slots__ = ()
|
|
193
|
+
|
|
194
|
+
@property
|
|
195
|
+
def atomic_number(self):
|
|
196
|
+
return 88
|
|
197
|
+
|
|
198
|
+
@property
|
|
199
|
+
def isotopes_distribution(self):
|
|
200
|
+
return {223: 0., 226: 1.0, 228: 0., 233: 0.}
|
|
201
|
+
|
|
202
|
+
@property
|
|
203
|
+
def isotopes_masses(self):
|
|
204
|
+
return {223: 223.018502, 226: 226.025410, 228: 228.031070, 233: 233.048065}
|
|
205
|
+
|
|
206
|
+
@property
|
|
207
|
+
def _common_valences(self):
|
|
208
|
+
return 0, 2
|
|
209
|
+
|
|
210
|
+
@property
|
|
211
|
+
def _valences_exceptions(self):
|
|
212
|
+
return (2, False, 0, ()),
|
|
213
|
+
|
|
214
|
+
@property
|
|
215
|
+
def atomic_radius(self):
|
|
216
|
+
return 2.53 # unknown, taken radius of previous element in group
|
|
217
|
+
|
|
218
|
+
@property
|
|
219
|
+
def mdl_isotope(self):
|
|
220
|
+
return 226
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
__all__ = ['Be', 'Mg', 'Ca', 'Sr', 'Ba', 'Ra']
|