CoreMS 4.0.0__py3-none-any.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.
Files changed (171) hide show
  1. corems/__init__.py +63 -0
  2. corems/chroma_peak/__init__.py +0 -0
  3. corems/chroma_peak/calc/ChromaPeakCalc.py +480 -0
  4. corems/chroma_peak/calc/__init__.py +0 -0
  5. corems/chroma_peak/calc/subset.py +196 -0
  6. corems/chroma_peak/factory/__init__.py +0 -0
  7. corems/chroma_peak/factory/chroma_peak_classes.py +1178 -0
  8. corems/encapsulation/__init__.py +0 -0
  9. corems/encapsulation/constant.py +1283 -0
  10. corems/encapsulation/factory/__init__.py +0 -0
  11. corems/encapsulation/factory/parameters.py +392 -0
  12. corems/encapsulation/factory/processingSetting.py +1244 -0
  13. corems/encapsulation/input/__init__.py +0 -0
  14. corems/encapsulation/input/parameter_from_json.py +579 -0
  15. corems/encapsulation/output/__init__.py +0 -0
  16. corems/encapsulation/output/parameter_to_dict.py +142 -0
  17. corems/encapsulation/output/parameter_to_json.py +332 -0
  18. corems/mass_spectra/__init__.py +0 -0
  19. corems/mass_spectra/calc/GC_Calc.py +84 -0
  20. corems/mass_spectra/calc/GC_Deconvolution.py +558 -0
  21. corems/mass_spectra/calc/GC_RI_Calibration.py +44 -0
  22. corems/mass_spectra/calc/MZSearch.py +249 -0
  23. corems/mass_spectra/calc/SignalProcessing.py +656 -0
  24. corems/mass_spectra/calc/__init__.py +0 -0
  25. corems/mass_spectra/calc/lc_calc.py +5790 -0
  26. corems/mass_spectra/calc/lc_calc_operations.py +1127 -0
  27. corems/mass_spectra/factory/GC_Class.py +791 -0
  28. corems/mass_spectra/factory/__init__.py +0 -0
  29. corems/mass_spectra/factory/chromat_data.py +51 -0
  30. corems/mass_spectra/factory/lc_class.py +2721 -0
  31. corems/mass_spectra/input/__init__.py +0 -0
  32. corems/mass_spectra/input/andiNetCDF.py +200 -0
  33. corems/mass_spectra/input/boosterHDF5.py +216 -0
  34. corems/mass_spectra/input/brukerSolarix.py +153 -0
  35. corems/mass_spectra/input/brukerSolarix_utils.py +73 -0
  36. corems/mass_spectra/input/corems_hdf5.py +1710 -0
  37. corems/mass_spectra/input/massList.py +133 -0
  38. corems/mass_spectra/input/mzml.py +668 -0
  39. corems/mass_spectra/input/parserbase.py +239 -0
  40. corems/mass_spectra/input/rawFileReader.py +1839 -0
  41. corems/mass_spectra/output/__init__.py +0 -0
  42. corems/mass_spectra/output/export.py +2800 -0
  43. corems/mass_spectrum/__init__.py +0 -0
  44. corems/mass_spectrum/calc/AutoRecalibration.py +237 -0
  45. corems/mass_spectrum/calc/Calibration.py +602 -0
  46. corems/mass_spectrum/calc/CalibrationCalc.py +253 -0
  47. corems/mass_spectrum/calc/KendrickGroup.py +239 -0
  48. corems/mass_spectrum/calc/MassErrorPrediction.py +436 -0
  49. corems/mass_spectrum/calc/MassSpectrumCalc.py +303 -0
  50. corems/mass_spectrum/calc/MeanResolvingPowerFilter.py +212 -0
  51. corems/mass_spectrum/calc/NoiseCalc.py +371 -0
  52. corems/mass_spectrum/calc/NoiseCalc_Bayes.py +93 -0
  53. corems/mass_spectrum/calc/PeakPicking.py +994 -0
  54. corems/mass_spectrum/calc/__init__.py +0 -0
  55. corems/mass_spectrum/factory/MassSpectrumClasses.py +1753 -0
  56. corems/mass_spectrum/factory/__init__.py +0 -0
  57. corems/mass_spectrum/input/__init__.py +0 -0
  58. corems/mass_spectrum/input/baseClass.py +531 -0
  59. corems/mass_spectrum/input/boosterHDF5.py +161 -0
  60. corems/mass_spectrum/input/coremsHDF5.py +475 -0
  61. corems/mass_spectrum/input/massList.py +402 -0
  62. corems/mass_spectrum/input/numpyArray.py +133 -0
  63. corems/mass_spectrum/output/__init__.py +0 -0
  64. corems/mass_spectrum/output/export.py +841 -0
  65. corems/molecular_formula/__init__.py +0 -0
  66. corems/molecular_formula/calc/MolecularFormulaCalc.py +885 -0
  67. corems/molecular_formula/calc/__init__.py +0 -0
  68. corems/molecular_formula/factory/MolecularFormulaFactory.py +895 -0
  69. corems/molecular_formula/factory/__init__.py +0 -0
  70. corems/molecular_formula/input/__init__.py +0 -0
  71. corems/molecular_formula/input/masslist_ref.py +355 -0
  72. corems/molecular_id/__init__.py +0 -0
  73. corems/molecular_id/calc/ClusterFilter.py +251 -0
  74. corems/molecular_id/calc/MolecularFilter.py +122 -0
  75. corems/molecular_id/calc/SpectralSimilarity.py +632 -0
  76. corems/molecular_id/calc/__init__.py +0 -0
  77. corems/molecular_id/calc/math_distance.py +1637 -0
  78. corems/molecular_id/data/FAMES_REF.msp +980 -0
  79. corems/molecular_id/data/PNNLMetV20191015.msp +157267 -0
  80. corems/molecular_id/factory/EI_SQL.py +650 -0
  81. corems/molecular_id/factory/MolecularLookupTable.py +914 -0
  82. corems/molecular_id/factory/__init__.py +0 -0
  83. corems/molecular_id/factory/classification.py +884 -0
  84. corems/molecular_id/factory/lipid_molecular_metadata.py +50 -0
  85. corems/molecular_id/factory/molecularSQL.py +827 -0
  86. corems/molecular_id/factory/spectrum_search_results.py +119 -0
  87. corems/molecular_id/input/__init__.py +0 -0
  88. corems/molecular_id/input/nistMSI.py +148 -0
  89. corems/molecular_id/search/__init__.py +0 -0
  90. corems/molecular_id/search/compoundSearch.py +214 -0
  91. corems/molecular_id/search/database_interfaces.py +1527 -0
  92. corems/molecular_id/search/findOxygenPeaks.py +330 -0
  93. corems/molecular_id/search/lcms_spectral_search.py +348 -0
  94. corems/molecular_id/search/molecularFormulaSearch.py +1117 -0
  95. corems/molecular_id/search/priorityAssignment.py +723 -0
  96. corems/ms_peak/__init__.py +0 -0
  97. corems/ms_peak/calc/MSPeakCalc.py +1010 -0
  98. corems/ms_peak/calc/__init__.py +0 -0
  99. corems/ms_peak/factory/MSPeakClasses.py +542 -0
  100. corems/ms_peak/factory/__init__.py +0 -0
  101. corems/transient/__init__.py +0 -0
  102. corems/transient/calc/TransientCalc.py +362 -0
  103. corems/transient/calc/__init__.py +0 -0
  104. corems/transient/factory/TransientClasses.py +457 -0
  105. corems/transient/factory/__init__.py +0 -0
  106. corems/transient/input/__init__.py +0 -0
  107. corems/transient/input/brukerSolarix.py +461 -0
  108. corems/transient/input/midasDatFile.py +172 -0
  109. corems-4.0.0.dist-info/METADATA +475 -0
  110. corems-4.0.0.dist-info/RECORD +171 -0
  111. corems-4.0.0.dist-info/WHEEL +5 -0
  112. corems-4.0.0.dist-info/licenses/LICENSE +22 -0
  113. corems-4.0.0.dist-info/top_level.txt +4 -0
  114. examples/archive/scripts/CoreMS_tutorial.py +94 -0
  115. examples/archive/scripts/DI HR-MS Halogens Bruker.py +196 -0
  116. examples/archive/scripts/DI HR-MS MassList.py +385 -0
  117. examples/archive/scripts/GC-MS MetabRef.py +213 -0
  118. examples/archive/scripts/GC-MS NetCDF.py +217 -0
  119. examples/archive/scripts/HR-MS Thermo Raw 21T.py +136 -0
  120. examples/archive/scripts/LC-ICPMS_metal_peaks.py +297 -0
  121. examples/archive/scripts/LCMS-Thermo.py +460 -0
  122. examples/archive/scripts/LCMS_isotopes.py +283 -0
  123. examples/archive/scripts/MSParams_example.py +21 -0
  124. examples/archive/scripts/Molecular Formula Data Aggreation.py +84 -0
  125. examples/archive/scripts/Single Mz Search.py +69 -0
  126. examples/test_notebooks.py +145 -0
  127. ext_lib/ChemstationMSFileReader.dll +0 -0
  128. ext_lib/ChemstationMSFileReader.xml +126 -0
  129. ext_lib/RawFileReaderLicense.doc +0 -0
  130. ext_lib/ThermoFisher.CommonCore.BackgroundSubtraction.dll +0 -0
  131. ext_lib/ThermoFisher.CommonCore.BackgroundSubtraction.xml +2307 -0
  132. ext_lib/ThermoFisher.CommonCore.Data.dll +0 -0
  133. ext_lib/ThermoFisher.CommonCore.Data.xml +28974 -0
  134. ext_lib/ThermoFisher.CommonCore.MassPrecisionEstimator.dll +0 -0
  135. ext_lib/ThermoFisher.CommonCore.MassPrecisionEstimator.xml +241 -0
  136. ext_lib/ThermoFisher.CommonCore.RawFileReader.dll +0 -0
  137. ext_lib/ThermoFisher.CommonCore.RawFileReader.xml +31174 -0
  138. ext_lib/__init__.py +0 -0
  139. ext_lib/dotnet/OpenMcdf.Extensions.dll +0 -0
  140. ext_lib/dotnet/OpenMcdf.dll +0 -0
  141. ext_lib/dotnet/OpenMcdf.xml +1154 -0
  142. ext_lib/dotnet/System.IO.FileSystem.AccessControl.dll +0 -0
  143. ext_lib/dotnet/System.IO.FileSystem.AccessControl.xml +506 -0
  144. ext_lib/dotnet/System.Security.AccessControl.dll +0 -0
  145. ext_lib/dotnet/System.Security.AccessControl.xml +2043 -0
  146. ext_lib/dotnet/System.Security.Principal.Windows.dll +0 -0
  147. ext_lib/dotnet/System.Security.Principal.Windows.xml +1011 -0
  148. ext_lib/dotnet/ThermoFisher.CommonCore.BackgroundSubtraction.dll +0 -0
  149. ext_lib/dotnet/ThermoFisher.CommonCore.BackgroundSubtraction.xml +2307 -0
  150. ext_lib/dotnet/ThermoFisher.CommonCore.Data.dll +0 -0
  151. ext_lib/dotnet/ThermoFisher.CommonCore.Data.xml +29148 -0
  152. ext_lib/dotnet/ThermoFisher.CommonCore.MassPrecisionEstimator.dll +0 -0
  153. ext_lib/dotnet/ThermoFisher.CommonCore.MassPrecisionEstimator.xml +241 -0
  154. ext_lib/dotnet/ThermoFisher.CommonCore.RawFileReader.dll +0 -0
  155. ext_lib/dotnet/ThermoFisher.CommonCore.RawFileReader.xml +31492 -0
  156. ext_lib/version +18 -0
  157. support_code/atom_parsers/AtomsDescription.py +359 -0
  158. support_code/atom_parsers/CreateAtomsDescription.py +56 -0
  159. support_code/nmdc/filefinder.py +90 -0
  160. support_code/nmdc/lipidomics/lipidomics_workflow.py +748 -0
  161. support_code/nmdc/lipidomics/manifest_examples.py +49 -0
  162. support_code/nmdc/metabolomics/gcms_workflow.py +158 -0
  163. support_code/nmdc/metabolomics/lcms_metabolomics_targeted_search.py +59 -0
  164. support_code/nmdc/metabolomics/lcms_metabolomics_workflow.py +248 -0
  165. support_code/nmdc/metabolomics/metabolomics_collection.py +628 -0
  166. support_code/nmdc/metadata/dms_api.py +42 -0
  167. support_code/nmdc/nom/archived_scripts/nmdc_metadata_gen.py +288 -0
  168. support_code/nmdc/nom/archived_scripts/nom_grow_workflow.py +209 -0
  169. support_code/nmdc/nom/nom_workflow.py +312 -0
  170. support_code/windows_only_importers/BrukerCompassXtract.py +180 -0
  171. support_code/windows_only_importers/ThermoMSFileReader.py +405 -0
@@ -0,0 +1,1283 @@
1
+ class Labels: # pragma: no cover
2
+ """Class for Labels used in CoreMS
3
+
4
+ These labels are used to define:
5
+ * types of columns in plaintext data inputs,
6
+ * types of data/mass spectra
7
+ * types of assignment for ions
8
+
9
+ """
10
+
11
+ mz = "m/z"
12
+ abundance = "Peak Height"
13
+ rp = "Resolving Power"
14
+ s2n = "S/N"
15
+
16
+ label = "label"
17
+ bruker_profile = "Bruker_Profile"
18
+ thermo_profile = "Thermo_Profile"
19
+ simulated_profile = "Simulated Profile"
20
+ booster_profile = "Booster Profile"
21
+ bruker_frequency = "Bruker_Frequency"
22
+ midas_frequency = "Midas_Frequency"
23
+ thermo_centroid = "Thermo_Centroid"
24
+ corems_centroid = "CoreMS_Centroid"
25
+ gcms_centroid = "Thermo_Centroid"
26
+
27
+ unassigned = "unassigned"
28
+
29
+ radical_ion = "RADICAL"
30
+ protonated_de_ion = "DE_OR_PROTONATED"
31
+ protonated = "protonated"
32
+ de_protonated = "de-protonated"
33
+ adduct_ion = "ADDUCT"
34
+ neutral = "neutral"
35
+ ion_type = "IonType"
36
+
37
+ ion_type_translate = {
38
+ "protonated": "DE_OR_PROTONATED",
39
+ "de-protonated": "DE_OR_PROTONATED",
40
+ "radical": "RADICAL",
41
+ "adduct": "ADDUCT",
42
+ "ADDUCT": "ADDUCT",
43
+ }
44
+
45
+
46
+ class Atoms: # pragma: no cover
47
+ """Class for Atoms in CoreMS
48
+
49
+ This class includes key properties of atoms (and the electron) and isotopes, including their exact masses, relative abundances, and covalences.
50
+ It also associates which isotopes are for the same element, and provides an ordering of elements.
51
+
52
+ IUPAC definition of monoisotopic mass is based on the most abundant isotopes of each element present.
53
+ Here, we will use atom symbols with isotope numbers for all isotopes excluding the most abundant one.
54
+ This list has been corrected up to Iodine.
55
+
56
+ References
57
+ ----------
58
+
59
+ 1. NIST - Last Accessed 2019-06-12
60
+ https://www.nist.gov/pml/atomic-weights-and-isotopic-compositions-relative-atomic-masses
61
+
62
+ """
63
+
64
+ electron_mass = 0.0005_485_799_090_65 # NIST value
65
+
66
+ atomic_masses = {
67
+ "H": 1.00782503223,
68
+ "D": 2.01410177812,
69
+ "T": 3.0160492779, # consider removing
70
+ "3He": 3.0160293201,
71
+ "He": 4.00260325413,
72
+ "6Li": 6.0151228874,
73
+ "Li": 7.0160034366,
74
+ "Be": 9.012183065,
75
+ "10B": 10.01293695,
76
+ "B": 11.00930536,
77
+ "C": 12.0,
78
+ "13C": 13.00335483507,
79
+ "14C": 14.0032419884,
80
+ "N": 14.00307400443,
81
+ "15N": 15.00010889888,
82
+ "O": 15.99491461957,
83
+ "17O": 16.99913175650,
84
+ "18O": 17.99915961286,
85
+ "F": 18.99840316273,
86
+ "Ne": 19.9924401762,
87
+ "21Ne": 20.993846685,
88
+ "22Ne": 21.991385114,
89
+ "Na": 22.9897692820,
90
+ "Mg": 23.985041697,
91
+ "25Mg": 24.985836976,
92
+ "26Mg": 25.982592968,
93
+ "Al": 26.98153853,
94
+ "Si": 27.97692653465,
95
+ "29Si": 28.97649466490,
96
+ "30Si": 29.973770136,
97
+ "P": 30.97376199842,
98
+ "S": 31.9720711744,
99
+ "33S": 32.9714589098,
100
+ "34S": 33.967867004,
101
+ "36S": 35.96708071,
102
+ "Cl": 34.968852682,
103
+ "37Cl": 36.965902602,
104
+ "36Ar": 35.967545105,
105
+ "38Ar": 37.96273211,
106
+ "Ar": 39.9623831237,
107
+ "K": 38.9637064864,
108
+ "40K": 39.963998166,
109
+ "41K": 40.9618252579,
110
+ "Ca": 39.962590863,
111
+ "42Ca": 41.95861783,
112
+ "43Ca": 42.95876644,
113
+ "44Ca": 43.95548156,
114
+ "46Ca": 45.9536890,
115
+ "48Ca": 47.95252276,
116
+ "Sc": 44.95590828,
117
+ "46Ti": 45.95262772,
118
+ "47Ti": 46.95175879,
119
+ "Ti": 47.94794198,
120
+ "49Ti": 48.94786568,
121
+ "50Ti": 49.94478689,
122
+ "50V": 49.94715601,
123
+ "V": 50.94395704,
124
+ "50Cr": 49.94604183,
125
+ "Cr": 51.94050623,
126
+ "53Cr": 52.94064815,
127
+ "54Cr": 53.93887916,
128
+ "Mn": 54.93804391,
129
+ "54Fe": 53.93960899,
130
+ "Fe": 55.93493633,
131
+ "57Fe": 56.93539284,
132
+ "58Fe": 57.93327443,
133
+ "Co": 58.93319429,
134
+ "Ni": 57.93534241,
135
+ "60Ni": 59.93078588,
136
+ "61Ni": 60.93105557,
137
+ "62Ni": 61.92834537,
138
+ "64Ni": 63.92796682,
139
+ "Cu": 62.92959772,
140
+ "65Cu": 64.92778970,
141
+ "Zn": 63.92914201,
142
+ "66Zn": 65.92603381,
143
+ "67Zn": 66.92712775,
144
+ "68Zn": 67.92484455,
145
+ "70Zn": 69.9253192,
146
+ "Ga": 68.9255735,
147
+ "71Ga": 70.92470258,
148
+ "70Ge": 69.92424875,
149
+ "72Ge": 71.922075826,
150
+ "73Ge": 72.923458956,
151
+ "Ge": 73.921177761,
152
+ "76Ge": 75.921402726,
153
+ "As": 74.92159457,
154
+ "74Se": 73.922475934,
155
+ "76Se": 75.919213704,
156
+ "77Se": 76.919914154,
157
+ "78Se": 77.91730928,
158
+ "Se": 79.9165218,
159
+ "82Se": 81.9166995,
160
+ "Br": 78.9183376,
161
+ "81Br": 80.9162897,
162
+ "78Kr": 77.92036494,
163
+ "80Kr": 79.91637808,
164
+ "82Kr": 81.91348273,
165
+ "83Kr": 82.91412716,
166
+ "Kr": 83.9114977282,
167
+ "86Kr": 85.9106106269,
168
+ "Rb": 84.9117897379,
169
+ "87Rb": 86.9091805310,
170
+ "84Sr": 83.9134191,
171
+ "86Sr": 85.9092606,
172
+ "87Sr": 86.9088775,
173
+ "Sr": 87.9056125,
174
+ "Y": 88.9058403,
175
+ "Zr": 89.9046977,
176
+ "91Zr": 90.9056396,
177
+ "92Zr": 91.9050347,
178
+ "94Zr": 93.9063108,
179
+ "96Zr": 95.9082714,
180
+ "Nb": 92.9063730,
181
+ "92Mo": 91.90680796,
182
+ "94Mo": 93.90508490,
183
+ "95Mo": 94.90583877,
184
+ "96Mo": 95.90467612,
185
+ "97Mo": 96.90601812,
186
+ "Mo": 97.90540482,
187
+ "100Mo": 99.9074718,
188
+ #'97Tc': 96.9063667,
189
+ #'98Tc': 97.9072124,
190
+ "Tc": 98.9062508, # consider removing technetium as it is radioactive
191
+ "96Ru": 95.90759025,
192
+ "98Ru": 97.9052868,
193
+ "99Ru": 98.9059341,
194
+ "100Ru": 99.9042143,
195
+ "101Ru": 100.9055769,
196
+ "Ru": 101.9043441,
197
+ "104Ru": 103.9054275,
198
+ "Rh": 102.9054980,
199
+ "102Pd": 101.9056022,
200
+ "104Pd": 103.9040305,
201
+ "105Pd": 104.9050796,
202
+ "Pd": 105.9034804,
203
+ "108Pd": 107.9038916,
204
+ "110Pd": 109.9051722,
205
+ "Ag": 106.9050916,
206
+ "109Ag": 108.9047553,
207
+ "106Cd": 105.9064599,
208
+ "108Cd": 107.9041834,
209
+ "110Cd": 109.90300661,
210
+ "111Cd": 110.90418287,
211
+ "Cd": 111.90276287,
212
+ "113Cd": 112.90440813,
213
+ "114Cd": 113.90336509,
214
+ "116Cd": 115.90476315,
215
+ "113In": 112.90406184,
216
+ "In": 114.903878776,
217
+ "112Sn": 111.90482387,
218
+ "114Sn": 113.9027827,
219
+ "115Sn": 114.903344699,
220
+ "116Sn": 115.90174280,
221
+ "117Sn": 116.90295398,
222
+ "118Sn": 117.90160657,
223
+ "119Sn": 118.90331117,
224
+ "Sn": 119.90220163,
225
+ "122Sn": 121.9034438,
226
+ "124Sn": 123.9052766,
227
+ "Sb": 120.9038120,
228
+ "123Sb": 122.9042132,
229
+ "120Te": 119.9040593,
230
+ "122Te": 121.9030435,
231
+ "123Te": 122.9042698,
232
+ "124Te": 123.9028171,
233
+ "125Te": 124.9044299,
234
+ "126Te": 125.9033109,
235
+ "128Te": 127.90446128,
236
+ "Te": 129.906222748,
237
+ "I": 126.9044719,
238
+ "124Xe": 123.9058920,
239
+ "126Xe": 125.9042983,
240
+ "128Xe": 127.9035310,
241
+ "129Xe": 128.9047808611,
242
+ "130Xe": 129.903509349,
243
+ "131Xe": 130.90508406,
244
+ "Xe": 131.9041550856,
245
+ "134Xe": 133.90539466,
246
+ "136Xe": 135.907214484,
247
+ "Cs": 132.9054519610,
248
+ "130Ba": 129.9063207,
249
+ "132Ba": 131.9050611,
250
+ "134Ba": 133.90450818,
251
+ "135Ba": 134.90568838,
252
+ "136Ba": 135.90457573,
253
+ "137Ba": 136.90582714,
254
+ "Ba": 137.90524700,
255
+ "138La": 137.9071149,
256
+ "La": 138.9063563,
257
+ "136Ce": 135.90712921,
258
+ "138Ce": 137.905991,
259
+ "Ce": 139.9054431,
260
+ "142Ce": 141.9092504,
261
+ "Pr": 140.9076576,
262
+ "Nd": 141.9077290,
263
+ "143Nd": 142.9098200,
264
+ "144Nd": 143.9100930,
265
+ "145Nd": 144.9125793,
266
+ "146Nd": 145.9131226,
267
+ "148Nd": 147.9168993,
268
+ "150Nd": 149.9209022,
269
+ "145Pm": 144.9127559,
270
+ "147Pm": 146.9151450,
271
+ "144Sm": 143.9120065,
272
+ "147Sm": 146.9149044,
273
+ "148Sm": 147.9148292,
274
+ "149Sm": 148.9171921,
275
+ "150Sm": 149.9172829,
276
+ "Sm": 151.9197397,
277
+ "154Sm": 153.9222169,
278
+ "151Eu": 150.9198578,
279
+ "Eu": 152.9212380,
280
+ "152Gd": 151.9197995,
281
+ "154Gd": 153.9208741,
282
+ "155Gd": 154.9226305,
283
+ "156Gd": 155.9221312,
284
+ "157Gd": 156.9239686,
285
+ "Gd": 157.9241123,
286
+ "160Gd": 159.9270624,
287
+ "Tb": 158.9253547,
288
+ "156Dy": 155.9242847,
289
+ "158Dy": 157.9244159,
290
+ "160Dy": 159.9252046,
291
+ "161Dy": 160.9269405,
292
+ "162Dy": 161.9268056,
293
+ "163Dy": 162.9287383,
294
+ "Dy": 163.9291819,
295
+ "Ho": 164.9303288,
296
+ "162Er": 161.9287884,
297
+ "164Er": 163.9292088,
298
+ "Er": 165.9302995,
299
+ "167Er": 166.9320546,
300
+ "168Er": 167.9323767,
301
+ "170Er": 169.9354702,
302
+ "Tm": 168.9342179,
303
+ "168Yb": 167.9338896,
304
+ "170Yb": 169.9347664,
305
+ "171Yb": 170.9363302,
306
+ "172Yb": 171.9363859,
307
+ "173Yb": 172.9382151,
308
+ "Yb": 173.9388664,
309
+ "176Yb": 175.9425764,
310
+ "Lu": 174.9407752,
311
+ "176Lu": 175.9426897,
312
+ "174Hf": 173.9400461,
313
+ "176Hf": 175.9414076,
314
+ "177Hf": 176.9432277,
315
+ "178Hf": 177.9437058,
316
+ "179Hf": 178.9458232,
317
+ "Hf": 179.9465570,
318
+ "180Ta": 179.9474648,
319
+ "Ta": 180.9479958,
320
+ "180W": 179.9467108,
321
+ "182W": 181.94820394,
322
+ "183W": 182.95022275,
323
+ "W": 183.95093092,
324
+ "186W": 185.9543628,
325
+ "185Re": 184.9529545,
326
+ "Re": 186.9557501,
327
+ "184Os": 183.9524885,
328
+ "186Os": 185.9538350,
329
+ "187Os": 186.9557474,
330
+ "188Os": 187.9558352,
331
+ "189Os": 188.9581442,
332
+ "190Os": 189.9584437,
333
+ "192Os": 191.9614770,
334
+ "191Ir": 190.9605893,
335
+ "Ir": 192.9629216,
336
+ "190Pt": 189.9599297,
337
+ "192Pt": 191.9610387,
338
+ "194Pt": 193.9626809,
339
+ "Pt": 194.9647917,
340
+ "196Pt": 195.96495209,
341
+ "198Pt": 197.9678949,
342
+ "Au": 196.96656879,
343
+ "196Hg": 195.9658326,
344
+ "198Hg": 197.96676860,
345
+ "199Hg": 198.96828064,
346
+ "200Hg": 199.96832659,
347
+ "201Hg": 200.97030284,
348
+ "Hg": 201.97064340,
349
+ "204Hg": 203.97349398,
350
+ "203Tl": 202.9723446,
351
+ "Tl": 204.9744278,
352
+ "204Pb": 203.9730440,
353
+ "206Pb": 205.9744657,
354
+ "207Pb": 206.9758973,
355
+ "Pb": 207.9766525,
356
+ "Bi": 208.9803991,
357
+ "209Po": 208.9824308,
358
+ "210Po": 209.9828741,
359
+ "210At": 209.9871479,
360
+ "211At": 210.9874966,
361
+ "211Rn": 210.9906011,
362
+ "220Rn": 220.0113941,
363
+ "222Rn": 222.0175782,
364
+ "223Fr": 223.0197360,
365
+ "223Ra": 223.0185023,
366
+ "224Ra": 224.0202120,
367
+ "226Ra": 226.0254103,
368
+ "228Ra": 228.0310707,
369
+ "227Ac": 227.0277523,
370
+ "230Th": 230.0331341,
371
+ "Th": 232.0380558,
372
+ "Pa": 231.0358842,
373
+ "233U": 233.0396355,
374
+ "234U": 234.0409523,
375
+ "235U": 235.0439301,
376
+ "236U": 236.0455682,
377
+ "U": 238.0507884,
378
+ "236Np": 236.046570,
379
+ "237Np": 237.0481736,
380
+ "238Pu": 238.0495601,
381
+ "239Pu": 239.0521636,
382
+ "240Pu": 240.0538138,
383
+ "241Pu": 241.0568517,
384
+ "242Pu": 242.0587428,
385
+ "244Pu": 244.0642053,
386
+ "241Am": 241.0568293,
387
+ "243Am": 243.0613813,
388
+ "243Cm": 243.0613893,
389
+ "244Cm": 244.0627528,
390
+ "245Cm": 245.0654915,
391
+ "246Cm": 246.0672238,
392
+ "247Cm": 247.0703541,
393
+ "248Cm": 248.0723499,
394
+ "247Bk": 247.0703073,
395
+ "249Bk": 249.0749877,
396
+ "249Cf": 249.0748539,
397
+ "250Cf": 250.0764062,
398
+ "251Cf": 251.0795886,
399
+ "252Cf": 252.0816272,
400
+ "252Es": 252.082980,
401
+ "257Fm": 257.0951061,
402
+ "258Md": 258.0984315,
403
+ "260Md": 260.10365,
404
+ "259No": 259.10103,
405
+ "262Lr": 262.10961,
406
+ "267Rf": 267.12179,
407
+ "268Db": 268.12567,
408
+ "271Sg": 271.13393,
409
+ "272Bh": 272.13826,
410
+ "270Hs": 270.13429,
411
+ "276Mt": 276.15159,
412
+ "281Ds": 281.16451,
413
+ "280Rg": 280.16514,
414
+ "285Cn": 285.17712,
415
+ "284Nh": 284.17873,
416
+ "289Fl": 289.19042,
417
+ "288Mc": 288.19274,
418
+ "293Lv": 293.20449,
419
+ "292Ts": 292.20746,
420
+ "294Og": 294.21392,
421
+ }
422
+
423
+ # This list orders atoms, starting with the most abundant isotopes first, ordered as described.
424
+ # Less abundant isotopes are ordered by mass at the end of the list.
425
+ atoms_order = [
426
+ "C",
427
+ "H",
428
+ "O",
429
+ "N",
430
+ "P",
431
+ "S", # CHONPS
432
+ "F",
433
+ "Cl",
434
+ "Br",
435
+ "I",
436
+ "At", # Halogens
437
+ "Li",
438
+ "Na",
439
+ "K",
440
+ "Rb",
441
+ "Cs",
442
+ "Fr", # Alkali
443
+ "He",
444
+ "Ne",
445
+ "Ar",
446
+ "Kr",
447
+ "Xe",
448
+ "Rn", # Noble gasses
449
+ "Be",
450
+ "B", # Row 2
451
+ "Mg",
452
+ "Al",
453
+ "Si", # Row 3
454
+ "Ca",
455
+ "Sc",
456
+ "Ti",
457
+ "V",
458
+ "Cr",
459
+ "Mn",
460
+ "Fe",
461
+ "Co",
462
+ "Ni",
463
+ "Cu",
464
+ "Zn",
465
+ "Ga",
466
+ "Ge",
467
+ "As",
468
+ "Se", # Row 4
469
+ "Sr",
470
+ "Y",
471
+ "Zr",
472
+ "Nb",
473
+ "Mo",
474
+ "Tc",
475
+ "Ru",
476
+ "Rh",
477
+ "Pd",
478
+ "Ag",
479
+ "Cd",
480
+ "In",
481
+ "Sn",
482
+ "Sb",
483
+ "Te", # Row 5
484
+ "Ba",
485
+ "La",
486
+ "Hf",
487
+ "Ta",
488
+ "W",
489
+ "Re",
490
+ "Os",
491
+ "Ir",
492
+ "Pt",
493
+ "Au",
494
+ "Hg",
495
+ "Tl",
496
+ "Pb",
497
+ "Bi",
498
+ "Po", # Row 6
499
+ "Ra",
500
+ "Ac",
501
+ "Rf",
502
+ "Db",
503
+ "Sg",
504
+ "Bh",
505
+ "Hs",
506
+ "Mt",
507
+ "Ds",
508
+ "Rg",
509
+ "Cn",
510
+ "Nh",
511
+ "Fl",
512
+ "Mc",
513
+ "Lv",
514
+ "Ts",
515
+ "Og", # Row 7
516
+ "Ce",
517
+ "Pr",
518
+ "Nd",
519
+ "Pm",
520
+ "Sm",
521
+ "Eu",
522
+ "Gd",
523
+ "Tb",
524
+ "Dy",
525
+ "Ho",
526
+ "Er",
527
+ "Tm",
528
+ "Yb",
529
+ "Lu", # Lanthanides
530
+ "Th",
531
+ "Pa",
532
+ "U",
533
+ "Np",
534
+ "Pu",
535
+ "Am",
536
+ "Cm",
537
+ "Bk",
538
+ "Cf",
539
+ "Es",
540
+ "Fm",
541
+ "Md",
542
+ "No",
543
+ "Lr", # Actinides
544
+ # Less abundant isotopes follow
545
+ "D",
546
+ "6Li",
547
+ "10B",
548
+ "13C",
549
+ "15N",
550
+ "17O",
551
+ "18O",
552
+ "22Ne",
553
+ "25Mg",
554
+ "26Mg",
555
+ "29Si",
556
+ "30Si",
557
+ "33S",
558
+ "34S",
559
+ "36S",
560
+ "37Cl",
561
+ "40Ca",
562
+ "41K",
563
+ "44Ca",
564
+ "46Ti",
565
+ "47Ti",
566
+ "49Ti",
567
+ "50Cr",
568
+ "50Ti",
569
+ "50V",
570
+ "53Cr",
571
+ "54Cr",
572
+ "54Fe",
573
+ "57Fe",
574
+ "58Fe",
575
+ "60Ni",
576
+ "61Ni",
577
+ "62Ni",
578
+ "65Cu",
579
+ "66Zn",
580
+ "67Zn",
581
+ "68Zn",
582
+ "70Ge",
583
+ "71Ga",
584
+ "72Ge",
585
+ "73Ge",
586
+ "76Ge",
587
+ "76Se",
588
+ "77Se",
589
+ "78Se",
590
+ "81Br",
591
+ "80Kr",
592
+ "82Kr",
593
+ "82Se",
594
+ "83Kr",
595
+ "85Rb",
596
+ "86Kr",
597
+ "86Sr",
598
+ "87Rb",
599
+ "87Sr",
600
+ "88Sr",
601
+ "91Zr",
602
+ "92Mo",
603
+ "92Zr",
604
+ "94Mo",
605
+ "94Zr",
606
+ "95Mo",
607
+ "96Mo",
608
+ "96Ru",
609
+ "96Zr",
610
+ "97Mo",
611
+ "98Ru",
612
+ "99Ru",
613
+ "100Mo",
614
+ "100Ru",
615
+ "101Ru",
616
+ "102Pd",
617
+ "104Pd",
618
+ "104Ru",
619
+ "105Pd",
620
+ "106Cd",
621
+ "106Pd",
622
+ "108Cd",
623
+ "108Pd",
624
+ "109Ag",
625
+ "110Cd",
626
+ "110Pd",
627
+ "111Cd",
628
+ "112Cd",
629
+ "112Sn",
630
+ "113Cd",
631
+ "113In",
632
+ "114Cd",
633
+ "114Sn",
634
+ "115In",
635
+ "115Sn",
636
+ "116Cd",
637
+ "116Sn",
638
+ "117Sn",
639
+ "118Sn",
640
+ "119Sn",
641
+ "120Sn",
642
+ "120Te",
643
+ "121Sb",
644
+ "122Sn",
645
+ "122Te",
646
+ "123Sb",
647
+ "123Te",
648
+ "124Sn",
649
+ "124Te",
650
+ "124Xe",
651
+ "125Te",
652
+ "126Te",
653
+ "126Xe",
654
+ "128Te",
655
+ "128Xe",
656
+ "129Xe",
657
+ "130Ba",
658
+ "130Te",
659
+ "130Xe",
660
+ "131Xe",
661
+ "132Ba",
662
+ "132Xe",
663
+ "134Ba",
664
+ "134Xe",
665
+ "135Ba",
666
+ "136Ba",
667
+ "136Xe",
668
+ "137Ba",
669
+ "138Ba",
670
+ "174Hf",
671
+ "176Hf",
672
+ "177Hf",
673
+ "178Hf",
674
+ "179Hf",
675
+ "180Hf",
676
+ "180W",
677
+ "182W",
678
+ "183W",
679
+ "184Os",
680
+ "184W",
681
+ "185Re",
682
+ "186Os",
683
+ "186W",
684
+ "187Os",
685
+ "187Re",
686
+ "188Os",
687
+ "189Os",
688
+ "190Os",
689
+ "190Pt",
690
+ "191Ir",
691
+ "192Ir",
692
+ "192Os",
693
+ "192Pt",
694
+ "194Pt",
695
+ "195Pt",
696
+ "196Hg",
697
+ "196Pt",
698
+ "198Hg",
699
+ "198Pt",
700
+ "199Hg",
701
+ "200Hg",
702
+ "201Hg",
703
+ "202Hg",
704
+ "203Tl",
705
+ "204Hg",
706
+ "204Pb",
707
+ "205Tl",
708
+ "206Pb",
709
+ "207Pb",
710
+ "208Pb",
711
+ ]
712
+
713
+ atoms_covalence = {
714
+ "C": (4),
715
+ "13C": (4),
716
+ "N": (3),
717
+ "O": (2),
718
+ "S": (2),
719
+ "H": (1),
720
+ "F": (1, 0),
721
+ "Cl": (1, 0),
722
+ "Br": (1, 0),
723
+ "I": (1, 0),
724
+ "At": (1),
725
+ "Li": (1, 0),
726
+ "Na": (1, 0),
727
+ "K": (1, 0),
728
+ "Rb": (1),
729
+ "Cs": (1),
730
+ "Fr": (1),
731
+ "B": (4, 3, 2, 1),
732
+ "In": (3, 2, 1),
733
+ "Al": (3, 1, 2),
734
+ "P": (3, 5, 4, 2, 1),
735
+ "Ga": (3, 1, 2),
736
+ "Mg": (2, 1),
737
+ "Be": (2, 1),
738
+ "Ca": (2, 1),
739
+ "Sr": (2, 1),
740
+ "Ba": (2),
741
+ "Ra": (2),
742
+ "V": (5, 4, 3, 2, 1),
743
+ "Fe": (3, 2, 4, 5, 6),
744
+ "Si": (4, 3, 2),
745
+ "Sc": (3, 2, 1),
746
+ "Ti": (4, 3, 2, 1),
747
+ "Cr": (1, 2, 3, 4, 5, 6),
748
+ "Mn": (1, 2, 3, 4, 5, 6, 7),
749
+ "Co": (1, 2, 3, 4, 5),
750
+ "Ni": (1, 2, 3, 4),
751
+ "Cu": (2, 1, 3, 4),
752
+ "Zn": (2, 1),
753
+ "Ge": (4, 3, 2, 1),
754
+ "As": (5, 3, 2, 1),
755
+ "Se": (6, 4, 2, 1),
756
+ "Y": (3, 2, 1),
757
+ "Zr": (4, 3, 2, 1),
758
+ "Nb": (5, 4, 3, 2, 1),
759
+ "Mo": (6, 5, 4, 3, 2, 1),
760
+ "Tc": (7, 6, 5, 4, 3, 2, 1),
761
+ "Ru": (8, 7, 6, 5, 4, 3, 2, 1),
762
+ "Rh": (6, 5, 4, 3, 2, 1),
763
+ "Pd": (4, 2, 1),
764
+ "Ag": (0, 1, 2, 3, 4),
765
+ "Cd": (2, 1),
766
+ "Sn": (4, 2),
767
+ "Sb": (5, 3),
768
+ "Te": (6, 5, 4, 2),
769
+ "La": (3, 2),
770
+ "Hf": (4, 3, 2),
771
+ "Ta": (5, 4, 3, 2),
772
+ "W": (6, 5, 4, 3, 2, 1),
773
+ "Re": (4, 7, 6, 5, 3, 2, 1),
774
+ "Os": (4, 8, 7, 6, 5, 3, 2, 1),
775
+ "Ir": (4, 8, 6, 5, 3, 2, 1),
776
+ "Pt": (4, 6, 5, 3, 2, 1),
777
+ "Au": (3, 5, 2, 1),
778
+ "Hg": (1, 2, 4),
779
+ "Tl": (3, 1),
780
+ "Pb": (4, 2),
781
+ "Bi": (3, 1, 5),
782
+ "Po": (2, 4, 6),
783
+ "Ac": (3, 2),
784
+ }
785
+
786
+ isotopic_abundance = {
787
+ "H": 0.999885,
788
+ "D": 0.000115,
789
+ "T": 0, # Consider removing.
790
+ "3He": 0.00000134,
791
+ "He": 0.99999866,
792
+ "6Li": 0.0759,
793
+ "Li": 0.9241,
794
+ "Be": 1.0,
795
+ "10B": 0.199,
796
+ "B": 0.801,
797
+ "C": 0.9893,
798
+ "13C": 0.0107,
799
+ "14C": 0,
800
+ "N": 0.99636,
801
+ "15N": 0.00364,
802
+ "O": 0.99757,
803
+ "17O": 0.00038,
804
+ "18O": 0.00205,
805
+ "F": 1.0,
806
+ "Ne": 0.9048,
807
+ "21Ne": 0.0027,
808
+ "22Ne": 0.0925,
809
+ "Na": 1.0,
810
+ "Mg": 0.7899,
811
+ "25Mg": 0.1000,
812
+ "26Mg": 0.1101,
813
+ "Al": 1.0,
814
+ "Si": 0.92223,
815
+ "29Si": 0.04685,
816
+ "30Si": 0.03092,
817
+ "P": 1.0,
818
+ "S": 0.9499,
819
+ "33S": 0.0075,
820
+ "34S": 0.0425,
821
+ "36S": 0.0001,
822
+ "Cl": 0.7576,
823
+ "37Cl": 0.2424,
824
+ "36Ar": 0.003336,
825
+ "38Ar": 0.000629,
826
+ "Ar": 0.996035,
827
+ "K": 0.932581,
828
+ "40K": 0.000117,
829
+ "41K": 0.067302,
830
+ "Ca": 0.96941,
831
+ "42Ca": 0.00647,
832
+ "43Ca": 0.00135,
833
+ "44Ca": 0.02086,
834
+ "46Ca": 0.00004,
835
+ "48Ca": 0.001872,
836
+ "Sc": 1.0,
837
+ "46Ti": 0.0825,
838
+ "47Ti": 0.0744,
839
+ "Ti": 0.7372,
840
+ "49Ti": 0.0541,
841
+ "50Ti": 0.0518,
842
+ "50V": 0.00250,
843
+ "V": 0.9975,
844
+ "50Cr": 0.04345,
845
+ "Cr": 0.83789,
846
+ "53Cr": 0.09501,
847
+ "54Cr": 0.02365,
848
+ "Mn": 1.0,
849
+ "54Fe": 0.05845,
850
+ "Fe": 0.91754,
851
+ "57Fe": 0.02119,
852
+ "58Fe": 0.00282,
853
+ "Co": 1.0,
854
+ "Ni": 0.68077,
855
+ "60Ni": 0.26223,
856
+ "61Ni": 0.011399,
857
+ "62Ni": 0.036346,
858
+ "64Ni": 0.009255,
859
+ "Cu": 0.6915,
860
+ "65Cu": 0.3085,
861
+ "Zn": 0.4917,
862
+ "66Zn": 0.2773,
863
+ "67Zn": 0.0404,
864
+ "68Zn": 0.1845,
865
+ "70Zn": 0.0061,
866
+ "Ga": 0.60108,
867
+ "71Ga": 0.39892,
868
+ "70Ge": 0.2057,
869
+ "72Ge": 0.2745,
870
+ "73Ge": 0.0775,
871
+ "Ge": 0.3650,
872
+ "76Ge": 0.0773,
873
+ "As": 1.0,
874
+ "74Se": 0.0089,
875
+ "76Se": 0.0937,
876
+ "77Se": 0.0763,
877
+ "78Se": 0.2377,
878
+ "Se": 0.4961,
879
+ "82Se": 0.0873,
880
+ "Br": 0.5069,
881
+ "81Br": 0.4931,
882
+ "78Kr": 0.00355,
883
+ "80Kr": 0.02286,
884
+ "82Kr": 0.11593,
885
+ "83Kr": 0.11500,
886
+ "Kr": 0.56987,
887
+ "86Kr": 0.17279,
888
+ "Rb": 0.7217,
889
+ "87Rb": 0.2783,
890
+ "84Sr": 0.0056,
891
+ "86Sr": 0.0986,
892
+ "87Sr": 0.0700,
893
+ "Sr": 0.8258,
894
+ "Y": 1.0,
895
+ "Zr": 0.5145,
896
+ "91Zr": 0.1122,
897
+ "92Zr": 0.1715,
898
+ "94Zr": 0.1738,
899
+ "96Zr": 0.0280,
900
+ "Nb": 1.0,
901
+ "92Mo": 0.1453,
902
+ "94Mo": 0.0915,
903
+ "95Mo": 0.1584,
904
+ "96Mo": 0.1667,
905
+ "97Mo": 0.0960,
906
+ "Mo": 0.2439,
907
+ "100Mo": 0.0982,
908
+ "99Tc": 0, # consider removing
909
+ "96Ru": 0.0554,
910
+ "98Ru": 0.0187,
911
+ "99Ru": 0.1276,
912
+ "100Ru": 0.1260,
913
+ "101Ru": 0.1706,
914
+ "Ru": 0.3155,
915
+ "104Ru": 0.1862,
916
+ "Rh": 1.0,
917
+ "102Pd": 0.0102,
918
+ "104Pd": 0.1114,
919
+ "105Pd": 0.2233,
920
+ "Pd": 0.2733,
921
+ "108Pd": 0.2646,
922
+ "110Pd": 0.1172,
923
+ "Ag": 0.51839,
924
+ "109Ag": 0.48161,
925
+ "106Cd": 0.0125,
926
+ "108Cd": 0.0089,
927
+ "110Cd": 0.1249,
928
+ "111Cd": 0.1280,
929
+ "Cd": 0.2413,
930
+ "113Cd": 0.1222,
931
+ "114Cd": 0.2873,
932
+ "116Cd": 0.0749,
933
+ "113In": 0.0429,
934
+ "In": 0.9571,
935
+ "112Sn": 0.0097,
936
+ "114Sn": 0.0066,
937
+ "115Sn": 0.0034,
938
+ "116Sn": 0.1454,
939
+ "117Sn": 0.0768,
940
+ "118Sn": 0.2422,
941
+ "119Sn": 0.0859,
942
+ "Sn": 0.3258,
943
+ "122Sn": 0.0463,
944
+ "124Sn": 0.0579,
945
+ "Sb": 0.5721,
946
+ "123Sb": 0.4279,
947
+ "120Te": 0.0009,
948
+ "122Te": 0.0255,
949
+ "123Te": 0.0089,
950
+ "124Te": 0.0474,
951
+ "125Te": 0.0707,
952
+ "126Te": 0.1884,
953
+ "128Te": 0.3174,
954
+ "Te": 0.3408,
955
+ "I": 1.0,
956
+ "124Xe": 0.000952,
957
+ "126Xe": 0.000890,
958
+ "128Xe": 0.019102,
959
+ "129Xe": 0.264006,
960
+ "130Xe": 0.040710,
961
+ "131Xe": 0.212324,
962
+ "Xe": 0.269086,
963
+ "134Xe": 0.104357,
964
+ "136Xe": 0.088573,
965
+ "Cs": 1.0,
966
+ "130Ba": 0.00106,
967
+ "132Ba": 0.00101,
968
+ "134Ba": 0.02417,
969
+ "135Ba": 0.06592,
970
+ "136Ba": 0.07854,
971
+ "137Ba": 0.11232,
972
+ "Ba": 0.71698,
973
+ "138La": 0.0008881,
974
+ "La": 0.9991119,
975
+ "136Ce": 0.00185,
976
+ "138Ce": 0.00251,
977
+ "Ce": 0.88450,
978
+ "142Ce": 0.11114,
979
+ "Pr": 1.0,
980
+ "Nd": 0.27152,
981
+ "143Nd": 0.12174,
982
+ "144Nd": 0.23798,
983
+ "145Nd": 0.08293,
984
+ "146Nd": 0.17189,
985
+ "148Nd": 0.05756,
986
+ "150Nd": 0.05638,
987
+ "145Pm": 0,
988
+ "147Pm": 0,
989
+ "144Sm": 0.0307,
990
+ "147Sm": 0.1499,
991
+ "148Sm": 0.1124,
992
+ "149Sm": 0.1382,
993
+ "150Sm": 0.0738,
994
+ "Sm": 0.2675,
995
+ "154Sm": 0.2275,
996
+ "151Eu": 0.4781,
997
+ "Eu": 0.5219,
998
+ "152Gd": 0.0020,
999
+ "154Gd": 0.0218,
1000
+ "155Gd": 0.1480,
1001
+ "156Gd": 0.2047,
1002
+ "157Gd": 0.1565,
1003
+ "Gd": 0.2484,
1004
+ "160Gd": 0.2186,
1005
+ "Tb": 1.0,
1006
+ "156Dy": 0.00056,
1007
+ "158Dy": 0.00095,
1008
+ "160Dy": 0.02329,
1009
+ "161Dy": 0.18889,
1010
+ "162Dy": 0.25475,
1011
+ "163Dy": 0.24896,
1012
+ "Dy": 0.28260,
1013
+ "Ho": 1.0,
1014
+ "162Er": 0.00139,
1015
+ "164Er": 0.01601,
1016
+ "Er": 0.33503,
1017
+ "167Er": 0.22869,
1018
+ "168Er": 0.26978,
1019
+ "170Er": 0.14910,
1020
+ "Tm": 1.0,
1021
+ "168Yb": 0.00123,
1022
+ "170Yb": 0.02982,
1023
+ "171Yb": 0.1409,
1024
+ "172Yb": 0.2168,
1025
+ "173Yb": 0.16103,
1026
+ "Yb": 0.32026,
1027
+ "176Yb": 0.12996,
1028
+ "Lu": 0.97401,
1029
+ "176Lu": 0.02599,
1030
+ "174Hf": 0.0016,
1031
+ "176Hf": 0.0526,
1032
+ "177Hf": 0.1860,
1033
+ "178Hf": 0.2728,
1034
+ "179Hf": 0.1362,
1035
+ "Hf": 0.3508,
1036
+ "180Ta": 0.0001201,
1037
+ "Ta": 0.9998799,
1038
+ "180W": 0.0012,
1039
+ "182W": 0.2650,
1040
+ "183W": 0.1431,
1041
+ "W": 0.3064,
1042
+ "186W": 0.2843,
1043
+ "185Re": 0.3740,
1044
+ "Re": 0.6260,
1045
+ "184Os": 0.0002,
1046
+ "186Os": 0.0159,
1047
+ "187Os": 0.0196,
1048
+ "188Os": 0.1324,
1049
+ "189Os": 0.1615,
1050
+ "190Os": 0.2626,
1051
+ "Os": 0.4078,
1052
+ "191Ir": 0.373,
1053
+ "Ir": 0.627,
1054
+ "190Pt": 0.00012,
1055
+ "192Pt": 0.00782,
1056
+ "194Pt": 0.3286,
1057
+ "Pt": 0.3378,
1058
+ "196Pt": 0.2521,
1059
+ "198Pt": 0.07356,
1060
+ "Au": 1.0,
1061
+ "196Hg": 0.0015,
1062
+ "198Hg": 0.0997,
1063
+ "199Hg": 0.16872,
1064
+ "200Hg": 0.2310,
1065
+ "201Hg": 0.1318,
1066
+ "Hg": 0.2986,
1067
+ "204Hg": 0.0687,
1068
+ "203Tl": 0.2952,
1069
+ "Tl": 0.7048,
1070
+ "204Pb": 0.014,
1071
+ "206Pb": 0.241,
1072
+ "207Pb": 0.221,
1073
+ "Pb": 0.524,
1074
+ "Bi": 1.0,
1075
+ "209Po": 0,
1076
+ "210Po": 0,
1077
+ "210At": 0,
1078
+ "211At": 0,
1079
+ "211Rn": 0,
1080
+ "220Rn": 0,
1081
+ "222Rn": 0,
1082
+ "223Fr": 0,
1083
+ "223Ra": 0,
1084
+ "224Ra": 0,
1085
+ "226Ra": 0,
1086
+ "228Ra": 0,
1087
+ "227Ac": 0,
1088
+ "230Th": 0,
1089
+ "Th": 1.0,
1090
+ "Pa": 1.0,
1091
+ "233U": 0,
1092
+ "234U": 0.000054,
1093
+ "235U": 0.007204,
1094
+ "236U": 0,
1095
+ "U": 0.992742,
1096
+ "236Np": 0,
1097
+ "237Np": 0,
1098
+ "238Pu": 0,
1099
+ "239Pu": 0,
1100
+ "240Pu": 0,
1101
+ "241Pu": 0,
1102
+ "242Pu": 0,
1103
+ "244Pu": 0,
1104
+ "241Am": 0,
1105
+ "243Am": 0,
1106
+ "243Cm": 0,
1107
+ "244Cm": 0,
1108
+ "245Cm": 0,
1109
+ "246Cm": 0,
1110
+ "247Cm": 0,
1111
+ "248Cm": 0,
1112
+ "247Bk": 0,
1113
+ "249Bk": 0,
1114
+ "249Cf": 0,
1115
+ "250Cf": 0,
1116
+ "251Cf": 0,
1117
+ "252Cf": 0,
1118
+ "252Es": 0,
1119
+ "257Fm": 0,
1120
+ "258Md": 0,
1121
+ "260Md": 0,
1122
+ "259No": 0,
1123
+ "262Lr": 0,
1124
+ "267Rf": 0,
1125
+ "268Db": 0,
1126
+ "271Sg": 0,
1127
+ "272Bh": 0,
1128
+ "270Hs": 0,
1129
+ "276Mt": 0,
1130
+ "281Ds": 0,
1131
+ "280Rg": 0,
1132
+ "285Cn": 0,
1133
+ "284Nh": 0,
1134
+ "289Fl": 0,
1135
+ "288Mc": 0,
1136
+ "293Lv": 0,
1137
+ "292Ts": 0,
1138
+ "294Og": 0,
1139
+ }
1140
+
1141
+ # Isotopes here is a dictionary of symbol, including full name,
1142
+ # and then the isotopes which arent the most abundant one, sorted by abundance.
1143
+ # None indicates no stable isotopes/naturally occuring ones.
1144
+ # This has been manually checked as far as Iodine only.
1145
+ isotopes = {
1146
+ "H": ["Hydrogen", ["D", "T"]],
1147
+ "He": ["Helium", ["3He"]],
1148
+ "Li": ["Lithium", ["6Li"]],
1149
+ "Be": ["Beryllium", [None]],
1150
+ "B": ["Boron", ["10B"]],
1151
+ "C": ["Carbon", ["13C"]],
1152
+ "N": ["Nitrogen", ["15N"]],
1153
+ "O": ["Oxygen", ["18O", "17O"]],
1154
+ "F": ["Fluorine", [None]],
1155
+ "Ne": ["Neon", ["22Ne", "21Ne"]],
1156
+ "Na": ["Sodium", [None]],
1157
+ "Mg": ["Magnesium", ["26Mg", "25Mg"]],
1158
+ "Al": ["Aluminum", [None]],
1159
+ "Si": ["Silicon", ["29Si", "30Si"]],
1160
+ "P": ["Phosphorus", [None]],
1161
+ "S": ["Sulfur", ["34S", "33S", "36S"]],
1162
+ "Cl": ["Chlorine", ["37Cl"]],
1163
+ "Ar": ["Argon", ["36Ar", "38Ar"]],
1164
+ "K": ["Potassium", ["41K", "40K"]],
1165
+ "Ca": ["Calcium", ["44Ca", "48Ca", "43Ca", "42Ca", "46Ca"]],
1166
+ "Sc": ["Scandium", [None]],
1167
+ "Ti": ["Titanium", ["46Ti", "47Ti", "49Ti", "50Ti"]],
1168
+ "V": ["Vanadium", ["50V"]],
1169
+ "Cr": ["Chromium", ["53Cr", "50Cr", "54Cr"]],
1170
+ "Mn": ["Manganese", [None]],
1171
+ "Fe": ["Iron", ["54Fe", "57Fe", "58Fe"]],
1172
+ "Co": ["Cobalt", [None]],
1173
+ "Ni": ["Nickel", ["60Ni", "62Ni", "61Ni", "64Ni"]],
1174
+ "Cu": ["Copper", ["65Cu"]],
1175
+ "Zn": ["Zinc", ["66Zn", "68Zn", "67Zn", "70Zn"]],
1176
+ "Ga": ["Gallium", ["71Ga"]],
1177
+ "Ge": ["Germanium", ["72Ge", "70Ge", "73Ge", "76Ge"]],
1178
+ "As": ["Arsenic", [None]],
1179
+ "Se": ["Selenium", ["78Se", "76Se", "82Se", "77Se", "74Se"]],
1180
+ "Br": ["Bromine", ["81Br"]],
1181
+ "Kr": ["Krypton", ["86Kr", "82Kr", "83Kr", "80Kr"]],
1182
+ "Rb": ["Rubidium", ["87Rb"]],
1183
+ "Sr": ["Strontium", ["86Sr", "87Sr", "84Sr"]],
1184
+ "Y": ["Yttrium", [None]],
1185
+ "Zr": ["Zirconium", ["94Zr", "92Zr", "91Zr", "96Zr"]],
1186
+ "Nb": ["Niobium", [None]],
1187
+ "Mo": ["Molybdenum", ["96Mo", "95Mo", "92Mo", "100Mo", "97Mo", "94Mo"]],
1188
+ "Tc": ["Technetium", [None]], # consider removing
1189
+ "Ru": ["Ruthenium", ["104Ru", "101Ru", "99Ru", "100Ru", "96Ru", "98Ru"]],
1190
+ "Rh": ["Rhodium", [None]],
1191
+ "Pd": ["Palladium", ["108Pd", "105Pd", "110Pd", "104Pd", "102Pd"]],
1192
+ "Ag": ["Silver", ["109Ag"]],
1193
+ "Cd": [
1194
+ "Cadmium",
1195
+ ["114Cd", "111Cd", "110Cd", "113Cd", "116Cd", "106Cd", "108Cd"],
1196
+ ],
1197
+ "In": ["Indium", ["113In"]],
1198
+ "Sn": [
1199
+ "Tin",
1200
+ [
1201
+ "118Sn",
1202
+ "116Sn",
1203
+ "119Sn",
1204
+ "117Sn",
1205
+ "124Sn",
1206
+ "122Sn",
1207
+ "112Sn",
1208
+ "114Sn",
1209
+ "115Sn",
1210
+ ],
1211
+ ],
1212
+ "Sb": ["Antimony", ["123Sb"]],
1213
+ "Te": [
1214
+ "Tellurium",
1215
+ ["128Te", "126Te", "125Te", "124Te", "122Te", "123Te", "120Te"],
1216
+ ],
1217
+ "I": ["Iodine", [None]],
1218
+ "Xe": ["Xenon", ["129Xe", "131Xe", "134Xe", "136Xe", "130Xe", "128Xe"]],
1219
+ "Cs": ["Cesium", [None]],
1220
+ "Ba": ["Barium", ["137Ba", "136Ba", "135Ba", "134Ba"]],
1221
+ "La": ["Lanthanum", ["138La"]],
1222
+ "Hf": ["Hafnium", ["178Hf", "177Hf", "179Hf", "176Hf"]],
1223
+ "Ta": ["Tantalum", ["180Ta"]],
1224
+ "W": ["Tungsten", ["186W", "182W", "183W"]],
1225
+ "Re": ["Rhenium", ["185Re"]],
1226
+ "Os": ["Osmium", ["190Os", "189Os", "188Os", "187Os", "186Os"]],
1227
+ "Ir": ["Iridium", ["191Ir"]],
1228
+ "Pt": ["Platinum", ["194Pt", "196Pt", "198Pt", "192Pt"]],
1229
+ "Au": ["Gold", [None]],
1230
+ "Hg": ["Mercury", ["200Hg", "199Hg", "201Hg", "198Hg", "204Hg"]],
1231
+ "Tl": ["Thallium", ["203Tl"]],
1232
+ "Pb": ["Lead", ["206Pb", "207Pb", "204Pb"]],
1233
+ "Bi": ["Bismuth", [None]],
1234
+ "Po": ["Polonium", [None]],
1235
+ "At": ["Astatine", [None]],
1236
+ "Rn": ["Radon", [None]],
1237
+ "Fr": ["Francium", [None]],
1238
+ "Ra": ["Radium", [None]],
1239
+ "Ac": ["Actinium", [None]],
1240
+ "Rf": ["Rutherfordium", [None]],
1241
+ "Db": ["Dubnium", [None]],
1242
+ "Sg": ["Seaborgium", [None]],
1243
+ "Bh": ["Bohrium", [None]],
1244
+ "Hs": ["Hassium", [None]],
1245
+ "Mt": ["Meitnerium", [None]],
1246
+ "Ds": ["Darmstadtium", [None]],
1247
+ "Rg": ["Roentgenium", [None]],
1248
+ "Cn": ["Copernicium", [None]],
1249
+ "Nh": ["Nihonium", [None]],
1250
+ "Fl": ["Flerovium", [None]],
1251
+ "Mc": ["Moscovium", [None]],
1252
+ "Lv": ["Livermorium", [None]],
1253
+ "Ts": ["Tennessine", [None]],
1254
+ "Og": ["Oganesson", [None]],
1255
+ "Ce": ["Cerium", ["142Ce", "138Ce" "136Ce"]],
1256
+ "Pr": ["Praseodymium", [None]],
1257
+ "Nd": ["Neodymium", [None]],
1258
+ "Pm": ["Promethium", [None]],
1259
+ "Sm": ["Samarium", [None]],
1260
+ "Eu": ["Europium", [None]],
1261
+ "Gd": ["Gadolinium", [None]],
1262
+ "Tb": ["Terbium", [None]],
1263
+ "Dy": ["Dysprosium", [None]],
1264
+ "Ho": ["Holmium", [None]],
1265
+ "Er": ["Erbium", [None]],
1266
+ "Tm": ["Thulium", [None]],
1267
+ "Yb": ["Ytterbium", [None]],
1268
+ "Lu": ["Lutetium", ["176Lu"]],
1269
+ "Th": ["Thorium", [None]],
1270
+ "Pa": ["Protactinium", [None]],
1271
+ "U": ["Uranium", ["235U", "234U"]],
1272
+ "Np": ["Neptunium", [None]],
1273
+ "Pu": ["Plutonium", [None]],
1274
+ "Am": ["Americium", [None]],
1275
+ "Cm": ["Curium", [None]],
1276
+ "Bk": ["Berkelium", [None]],
1277
+ "Cf": ["Californium", [None]],
1278
+ "Es": ["Einsteinium", [None]],
1279
+ "Fm": ["Fermium", [None]],
1280
+ "Md": ["Mendelevium", [None]],
1281
+ "No": ["Nobelium", [None]],
1282
+ "Lr": ["Lawrencium", [None]],
1283
+ }