CoreMS 2.0.3__tar.gz → 2.0.8__tar.gz

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 (168) hide show
  1. {CoreMS-2.0.3 → CoreMS-2.0.8}/CoreMS.egg-info/PKG-INFO +4 -4
  2. {CoreMS-2.0.3 → CoreMS-2.0.8}/CoreMS.egg-info/SOURCES.txt +18 -0
  3. {CoreMS-2.0.3 → CoreMS-2.0.8}/CoreMS.egg-info/requires.txt +1 -1
  4. {CoreMS-2.0.3 → CoreMS-2.0.8}/MANIFEST.in +2 -1
  5. {CoreMS-2.0.3 → CoreMS-2.0.8}/PKG-INFO +4 -4
  6. {CoreMS-2.0.3 → CoreMS-2.0.8}/README.md +3 -3
  7. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/__init__.py +1 -1
  8. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/encapsulation/constant.py +2 -1
  9. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/encapsulation/factory/parameters.py +7 -1
  10. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/encapsulation/factory/processingSetting.py +1 -1
  11. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/input/brukerSolarix.py +0 -1
  12. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/input/rawFileReader.py +1 -1
  13. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/calc/NoiseCalc.py +2 -2
  14. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/calc/PeakPicking.py +6 -5
  15. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/factory/MassSpectrumClasses.py +7 -4
  16. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/input/massList.py +9 -1
  17. CoreMS-2.0.8/corems/mass_spectrum/input/numpyArray.py +108 -0
  18. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/output/export.py +4 -1
  19. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_formula/calc/MolecularFormulaCalc.py +40 -11
  20. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_formula/factory/MolecularFormulaFactory.py +85 -13
  21. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/search/compoundSearch.py +0 -2
  22. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/ms_peak/calc/MSPeakCalc.py +15 -8
  23. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/transient/calc/TransientCalc.py +25 -8
  24. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/transient/factory/TransientClasses.py +6 -0
  25. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/transient/input/brukerSolarix.py +94 -6
  26. CoreMS-2.0.8/ext_lib/dotnet/OpenMcdf.Extensions.dll +0 -0
  27. CoreMS-2.0.8/ext_lib/dotnet/OpenMcdf.dll +0 -0
  28. CoreMS-2.0.8/ext_lib/dotnet/OpenMcdf.xml +1154 -0
  29. CoreMS-2.0.8/ext_lib/dotnet/System.IO.FileSystem.AccessControl.dll +0 -0
  30. CoreMS-2.0.8/ext_lib/dotnet/System.IO.FileSystem.AccessControl.xml +506 -0
  31. CoreMS-2.0.8/ext_lib/dotnet/System.Security.AccessControl.dll +0 -0
  32. CoreMS-2.0.8/ext_lib/dotnet/System.Security.AccessControl.xml +2043 -0
  33. CoreMS-2.0.8/ext_lib/dotnet/System.Security.Principal.Windows.dll +0 -0
  34. CoreMS-2.0.8/ext_lib/dotnet/System.Security.Principal.Windows.xml +1011 -0
  35. CoreMS-2.0.8/ext_lib/dotnet/ThermoFisher.CommonCore.BackgroundSubtraction.dll +0 -0
  36. CoreMS-2.0.8/ext_lib/dotnet/ThermoFisher.CommonCore.BackgroundSubtraction.xml +2307 -0
  37. CoreMS-2.0.8/ext_lib/dotnet/ThermoFisher.CommonCore.Data.dll +0 -0
  38. CoreMS-2.0.8/ext_lib/dotnet/ThermoFisher.CommonCore.Data.xml +29148 -0
  39. CoreMS-2.0.8/ext_lib/dotnet/ThermoFisher.CommonCore.MassPrecisionEstimator.dll +0 -0
  40. CoreMS-2.0.8/ext_lib/dotnet/ThermoFisher.CommonCore.MassPrecisionEstimator.xml +241 -0
  41. CoreMS-2.0.8/ext_lib/dotnet/ThermoFisher.CommonCore.RawFileReader.dll +0 -0
  42. CoreMS-2.0.8/ext_lib/dotnet/ThermoFisher.CommonCore.RawFileReader.xml +31492 -0
  43. CoreMS-2.0.8/ext_lib/dotnet/__init__.py +0 -0
  44. {CoreMS-2.0.3 → CoreMS-2.0.8}/requirements.txt +1 -1
  45. {CoreMS-2.0.3 → CoreMS-2.0.8}/setup.py +1 -1
  46. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_input.py +2 -2
  47. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_mass_spectrum.py +2 -2
  48. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_molecularFormula.py +22 -4
  49. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_molecularFormulaSearch.py +75 -34
  50. CoreMS-2.0.3/corems/mass_spectrum/input/numpyArray.py +0 -87
  51. {CoreMS-2.0.3 → CoreMS-2.0.8}/CoreMS.egg-info/dependency_links.txt +0 -0
  52. {CoreMS-2.0.3 → CoreMS-2.0.8}/CoreMS.egg-info/top_level.txt +0 -0
  53. {CoreMS-2.0.3 → CoreMS-2.0.8}/Dockerfile +0 -0
  54. {CoreMS-2.0.3 → CoreMS-2.0.8}/LICENSE +0 -0
  55. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/chroma_peak/__init__.py +0 -0
  56. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/chroma_peak/calc/ChromaPeakCalc.py +0 -0
  57. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/chroma_peak/calc/__init__.py +0 -0
  58. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/chroma_peak/factory/ChromaPeakClasses.py +0 -0
  59. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/chroma_peak/factory/__init__.py +0 -0
  60. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/collection/__init__.py +0 -0
  61. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/collection/factory/__init__.py +0 -0
  62. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/collection/input/__init__.py +0 -0
  63. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/collection/output/__init__.py +0 -0
  64. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/encapsulation/__init__.py +0 -0
  65. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/encapsulation/factory/__init__.py +0 -0
  66. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/encapsulation/input/__init__.py +0 -0
  67. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/encapsulation/input/parameter_from_json.py +0 -0
  68. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/encapsulation/output/__init__.py +0 -0
  69. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/encapsulation/output/parameter_to_dict.py +0 -0
  70. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/encapsulation/output/parameter_to_json.py +0 -0
  71. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/__init__.py +0 -0
  72. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/calc/GC_Calc.py +0 -0
  73. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/calc/GC_Deconvolution.py +0 -0
  74. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/calc/GC_RI_Calibration.py +0 -0
  75. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/calc/LC_Calc.py +0 -0
  76. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/calc/LF_Targeted.py +0 -0
  77. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/calc/MZSearch.py +0 -0
  78. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/calc/SignalProcessing.py +0 -0
  79. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/calc/__init__.py +0 -0
  80. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/factory/GC_Class.py +0 -0
  81. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/factory/LC_Class.py +0 -0
  82. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/factory/LC_Temp.py +0 -0
  83. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/factory/__init__.py +0 -0
  84. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/input/__init__.py +0 -0
  85. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/input/andiNetCDF.py +0 -0
  86. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/input/boosterHDF5.py +0 -0
  87. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/input/coremsHDF5.py +0 -0
  88. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/input/massList.py +0 -0
  89. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/input/win_only/BrukerCompassXtract.py +0 -0
  90. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/input/win_only/ThermoMSFileReader.py +0 -0
  91. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/input/win_only/__init__.py +0 -0
  92. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/output/__init__.py +0 -0
  93. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectra/output/export.py +0 -0
  94. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/__init__.py +0 -0
  95. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/calc/AutoRecalibration.py +0 -0
  96. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/calc/Calibration.py +0 -0
  97. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/calc/CalibrationCalc.py +0 -0
  98. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/calc/KendrickGroup.py +0 -0
  99. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/calc/MassErrorPrediction.py +0 -0
  100. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/calc/MassSpectrumCalc.py +0 -0
  101. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/calc/MeanResolvingPowerFilter.py +0 -0
  102. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/calc/NoiseCalc_Bayes.py +0 -0
  103. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/calc/__init__.py +0 -0
  104. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/factory/__init__.py +0 -0
  105. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/input/__init__.py +0 -0
  106. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/input/baseClass.py +0 -0
  107. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/input/boosterHDF5.py +0 -0
  108. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/input/coremsHDF5.py +0 -0
  109. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/input/win_only/__init__.py +0 -0
  110. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/mass_spectrum/output/__init__.py +0 -0
  111. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_formula/__init__.py +0 -0
  112. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_formula/calc/__init__.py +0 -0
  113. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_formula/factory/__init__.py +0 -0
  114. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_formula/input/__init__.py +0 -0
  115. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_formula/input/masslist_ref.py +0 -0
  116. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/__init__.py +0 -0
  117. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/calc/ClusterFilter.py +0 -0
  118. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/calc/KendrickGroup.py +0 -0
  119. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/calc/MolecularFilter.py +0 -0
  120. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/calc/SpectralSimilarity.py +0 -0
  121. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/calc/__init__.py +0 -0
  122. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/calc/math_distance.py +0 -0
  123. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/factory/EI_SQL.py +0 -0
  124. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/factory/MolecularLookupTable.py +0 -0
  125. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/factory/__init__.py +0 -0
  126. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/factory/classification.py +0 -0
  127. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/factory/molecularSQL.py +0 -0
  128. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/input/__init__.py +0 -0
  129. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/input/nistMSI.py +0 -0
  130. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/search/__init__.py +0 -0
  131. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/search/findOxygenPeaks.py +0 -0
  132. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/search/molecularFormulaSearch.py +0 -0
  133. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/molecular_id/search/priorityAssignment.py +0 -0
  134. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/ms_peak/__init__.py +0 -0
  135. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/ms_peak/calc/__init__.py +0 -0
  136. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/ms_peak/factory/MSPeakClasses.py +0 -0
  137. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/ms_peak/factory/__init__.py +0 -0
  138. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/transient/__init__.py +0 -0
  139. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/transient/calc/__init__.py +0 -0
  140. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/transient/factory/__init__.py +0 -0
  141. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/transient/input/__init__.py +0 -0
  142. {CoreMS-2.0.3 → CoreMS-2.0.8}/corems/transient/input/midasDatFile.py +0 -0
  143. {CoreMS-2.0.3 → CoreMS-2.0.8}/disclaimer.txt +0 -0
  144. {CoreMS-2.0.3 → CoreMS-2.0.8}/ext_lib/ChemstationMSFileReader.dll +0 -0
  145. {CoreMS-2.0.3 → CoreMS-2.0.8}/ext_lib/ChemstationMSFileReader.xml +0 -0
  146. {CoreMS-2.0.3 → CoreMS-2.0.8}/ext_lib/RawFileReaderLicense.doc +0 -0
  147. {CoreMS-2.0.3 → CoreMS-2.0.8}/ext_lib/ThermoFisher.CommonCore.BackgroundSubtraction.dll +0 -0
  148. {CoreMS-2.0.3 → CoreMS-2.0.8}/ext_lib/ThermoFisher.CommonCore.BackgroundSubtraction.xml +0 -0
  149. {CoreMS-2.0.3 → CoreMS-2.0.8}/ext_lib/ThermoFisher.CommonCore.Data.dll +0 -0
  150. {CoreMS-2.0.3 → CoreMS-2.0.8}/ext_lib/ThermoFisher.CommonCore.Data.xml +0 -0
  151. {CoreMS-2.0.3 → CoreMS-2.0.8}/ext_lib/ThermoFisher.CommonCore.MassPrecisionEstimator.dll +0 -0
  152. {CoreMS-2.0.3 → CoreMS-2.0.8}/ext_lib/ThermoFisher.CommonCore.RawFileReader.dll +0 -0
  153. {CoreMS-2.0.3 → CoreMS-2.0.8}/ext_lib/ThermoFisher.CommonCore.RawFileReader.xml +0 -0
  154. {CoreMS-2.0.3 → CoreMS-2.0.8}/ext_lib/__init__.py +0 -0
  155. {CoreMS-2.0.3 → CoreMS-2.0.8}/setup.cfg +0 -0
  156. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test.py +0 -0
  157. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_LossFinder.py +0 -0
  158. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_assembly_identification.py +0 -0
  159. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_calibration.py +0 -0
  160. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_classification.py +0 -0
  161. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_gcms.py +0 -0
  162. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_massErrorPrediction.py +0 -0
  163. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_molecularFormulaDBFactory.py +0 -0
  164. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_mspeak.py +0 -0
  165. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_mz_search.py +0 -0
  166. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_output.py +0 -0
  167. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_searchMassListRef.py +0 -0
  168. {CoreMS-2.0.3 → CoreMS-2.0.8}/tests/test_setting_settings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: CoreMS
3
- Version: 2.0.3
3
+ Version: 2.0.8
4
4
  Summary: Mass Spectrometry Framework for Small Molecules Analysis
5
5
  Home-page: https://github.com/EMSL-Computing/CoreMS
6
6
  Author: Corilo, Yuri
@@ -14,7 +14,7 @@ Classifier: Development Status :: 4 - Beta
14
14
  Description-Content-Type: text/markdown
15
15
  License-File: LICENSE
16
16
 
17
- ![CoreMS Logo](https://github.com/EMSL-Computing/CoreMS/blob/v2.0.1/docs/CoreMS.COLOR_small.png?raw=true)
17
+ ![CoreMS Logo](https://github.com/EMSL-Computing/CoreMS/tree/master/docs/CoreMS.COLOR_small.png?raw=true)
18
18
 
19
19
  <div align="left">
20
20
 
@@ -66,7 +66,7 @@ CoreMS aims to provide
66
66
 
67
67
  ## Current Version
68
68
 
69
- `2.0.3`
69
+ `2.0.8`
70
70
 
71
71
  ***
72
72
 
@@ -339,7 +339,7 @@ UML (unified modeling language) diagrams for Direct Infusion FT-MS and GC-MS cla
339
339
 
340
340
  If you use CoreMS in your work, please use the following citation:
341
341
 
342
- Version [2.0.3 Release on GitHub](https://github.com/EMSL-Computing/CoreMS/releases/tag/v2.0.3), archived on Zenodo:
342
+ Version [2.0.8 Release on GitHub](https://github.com/EMSL-Computing/CoreMS/releases/tag/v2.0.8), archived on Zenodo:
343
343
 
344
344
  [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4641552.svg)](https://doi.org/10.5281/zenodo.4641552)
345
345
 
@@ -128,6 +128,24 @@ ext_lib/ThermoFisher.CommonCore.MassPrecisionEstimator.dll
128
128
  ext_lib/ThermoFisher.CommonCore.RawFileReader.dll
129
129
  ext_lib/ThermoFisher.CommonCore.RawFileReader.xml
130
130
  ext_lib/__init__.py
131
+ ext_lib/dotnet/OpenMcdf.Extensions.dll
132
+ ext_lib/dotnet/OpenMcdf.dll
133
+ ext_lib/dotnet/OpenMcdf.xml
134
+ ext_lib/dotnet/System.IO.FileSystem.AccessControl.dll
135
+ ext_lib/dotnet/System.IO.FileSystem.AccessControl.xml
136
+ ext_lib/dotnet/System.Security.AccessControl.dll
137
+ ext_lib/dotnet/System.Security.AccessControl.xml
138
+ ext_lib/dotnet/System.Security.Principal.Windows.dll
139
+ ext_lib/dotnet/System.Security.Principal.Windows.xml
140
+ ext_lib/dotnet/ThermoFisher.CommonCore.BackgroundSubtraction.dll
141
+ ext_lib/dotnet/ThermoFisher.CommonCore.BackgroundSubtraction.xml
142
+ ext_lib/dotnet/ThermoFisher.CommonCore.Data.dll
143
+ ext_lib/dotnet/ThermoFisher.CommonCore.Data.xml
144
+ ext_lib/dotnet/ThermoFisher.CommonCore.MassPrecisionEstimator.dll
145
+ ext_lib/dotnet/ThermoFisher.CommonCore.MassPrecisionEstimator.xml
146
+ ext_lib/dotnet/ThermoFisher.CommonCore.RawFileReader.dll
147
+ ext_lib/dotnet/ThermoFisher.CommonCore.RawFileReader.xml
148
+ ext_lib/dotnet/__init__.py
131
149
  tests/test.py
132
150
  tests/test_LossFinder.py
133
151
  tests/test_assembly_identification.py
@@ -2,7 +2,7 @@ beautifulsoup4~=4.12.0
2
2
  chardet~=5.1.0
3
3
  comtypes~=1.1.14
4
4
  h5py~=3.8.0
5
- IsoSpecPy~=2.0.2
5
+ IsoSpecPy~=2.2.2
6
6
  lmfit~=1.1.0
7
7
  lxml~=4.9.3
8
8
  matplotlib~=3.7.0
@@ -1,4 +1,5 @@
1
1
  include requirements.txt
2
2
  include disclaimer.txt
3
3
  include Dockerfile
4
- include ext_lib/*
4
+ include ext_lib/*
5
+ include ext_lib/dotnet/*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: CoreMS
3
- Version: 2.0.3
3
+ Version: 2.0.8
4
4
  Summary: Mass Spectrometry Framework for Small Molecules Analysis
5
5
  Home-page: https://github.com/EMSL-Computing/CoreMS
6
6
  Author: Corilo, Yuri
@@ -14,7 +14,7 @@ Classifier: Development Status :: 4 - Beta
14
14
  Description-Content-Type: text/markdown
15
15
  License-File: LICENSE
16
16
 
17
- ![CoreMS Logo](https://github.com/EMSL-Computing/CoreMS/blob/v2.0.1/docs/CoreMS.COLOR_small.png?raw=true)
17
+ ![CoreMS Logo](https://github.com/EMSL-Computing/CoreMS/tree/master/docs/CoreMS.COLOR_small.png?raw=true)
18
18
 
19
19
  <div align="left">
20
20
 
@@ -66,7 +66,7 @@ CoreMS aims to provide
66
66
 
67
67
  ## Current Version
68
68
 
69
- `2.0.3`
69
+ `2.0.8`
70
70
 
71
71
  ***
72
72
 
@@ -339,7 +339,7 @@ UML (unified modeling language) diagrams for Direct Infusion FT-MS and GC-MS cla
339
339
 
340
340
  If you use CoreMS in your work, please use the following citation:
341
341
 
342
- Version [2.0.3 Release on GitHub](https://github.com/EMSL-Computing/CoreMS/releases/tag/v2.0.3), archived on Zenodo:
342
+ Version [2.0.8 Release on GitHub](https://github.com/EMSL-Computing/CoreMS/releases/tag/v2.0.8), archived on Zenodo:
343
343
 
344
344
  [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4641552.svg)](https://doi.org/10.5281/zenodo.4641552)
345
345
 
@@ -1,4 +1,4 @@
1
- ![CoreMS Logo](https://github.com/EMSL-Computing/CoreMS/blob/v2.0.1/docs/CoreMS.COLOR_small.png?raw=true)
1
+ ![CoreMS Logo](https://github.com/EMSL-Computing/CoreMS/tree/master/docs/CoreMS.COLOR_small.png?raw=true)
2
2
 
3
3
  <div align="left">
4
4
 
@@ -50,7 +50,7 @@ CoreMS aims to provide
50
50
 
51
51
  ## Current Version
52
52
 
53
- `2.0.3`
53
+ `2.0.8`
54
54
 
55
55
  ***
56
56
 
@@ -323,7 +323,7 @@ UML (unified modeling language) diagrams for Direct Infusion FT-MS and GC-MS cla
323
323
 
324
324
  If you use CoreMS in your work, please use the following citation:
325
325
 
326
- Version [2.0.3 Release on GitHub](https://github.com/EMSL-Computing/CoreMS/releases/tag/v2.0.3), archived on Zenodo:
326
+ Version [2.0.8 Release on GitHub](https://github.com/EMSL-Computing/CoreMS/releases/tag/v2.0.8), archived on Zenodo:
327
327
 
328
328
  [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4641552.svg)](https://doi.org/10.5281/zenodo.4641552)
329
329
 
@@ -1,5 +1,5 @@
1
1
  __author__ = 'Yuri E. Corilo'
2
- __version__ = '2.0.3'
2
+ __version__ = '2.0.8'
3
3
  __doc__ = '''
4
4
  <div align="left">
5
5
 
@@ -36,7 +36,8 @@ class Labels: #pragma: no cover
36
36
  ion_type_translate = { 'protonated': 'DE_OR_PROTONATED',
37
37
  'de-protonated': 'DE_OR_PROTONATED',
38
38
  'radical': 'RADICAL',
39
- 'adduct': 'ADDUCT'}
39
+ 'adduct': 'ADDUCT',
40
+ 'ADDUCT': 'ADDUCT'}
40
41
 
41
42
  class Atoms: #pragma: no cover
42
43
  """ Class for Atoms in CoreMS
@@ -100,11 +100,17 @@ def default_parameters(file_location): # pragma: no cover
100
100
 
101
101
  parameters["exc_low_freq"] = 0
102
102
 
103
+ parameters["mw_low"] = 0
104
+
105
+ parameters["mw_high"] = 0
106
+
107
+ parameters["qpd_enabled"] = 0
108
+
103
109
  parameters["bandwidth"] = 0
104
110
 
105
111
  parameters['analyzer'] = 'Unknown'
106
112
 
107
- parameters['aquisition_time'] = None
113
+ parameters['acquisition_time'] = None
108
114
 
109
115
  parameters['instrument_label'] = 'Unknown'
110
116
 
@@ -252,7 +252,7 @@ class MassSpectrumSetting:
252
252
  # How many data points (in each direction) to extrapolate the mz axis and 0 pad the abundance axis
253
253
  # This will fix peak picking at spectrum limit issues
254
254
  # 0 to keep normal behaviour, typical value 3 to fix
255
- picking_point_extrapolate: int = 3
255
+ picking_point_extrapolate: int = 0
256
256
 
257
257
  calib_minimize_method: str = 'Powell'
258
258
  calib_pol_order: int = 2
@@ -1,7 +1,6 @@
1
1
  __author__ = "Yuri E. Corilo"
2
2
  __date__ = "Oct 29, 2019"
3
3
 
4
- from future import __annotations__
5
4
  from threading import Thread
6
5
  from pathlib import Path
7
6
  from s3path import S3Path
@@ -759,7 +759,7 @@ class ThermoBaseClass:
759
759
 
760
760
  d_params["analyzer"] = self.iRawDataPlus.GetInstrumentData().Model
761
761
 
762
- d_params["aquisition_time"] = self.iRawDataPlus.GetInstrumentData().Model
762
+ d_params["acquisition_time"] = self.get_creation_time()
763
763
 
764
764
  d_params["instrument_label"] = self.iRawDataPlus.GetInstrumentData().Name
765
765
 
@@ -79,7 +79,7 @@ class NoiseThresholdCalc:
79
79
 
80
80
  elif self.settings.noise_threshold_method == 'signal_noise':
81
81
 
82
- normalized_threshold = (self.max_abundance * self.settings.s2n_threshold )/self.max_signal_to_noise
82
+ normalized_threshold = (self.max_abundance * self.settings.noise_threshold_min_s2n )/self.max_signal_to_noise
83
83
  y = (normalized_threshold, normalized_threshold)
84
84
 
85
85
  elif self.settings.noise_threshold_method == "relative_abundance":
@@ -115,7 +115,7 @@ class NoiseThresholdCalc:
115
115
 
116
116
  max_sn = self.abundance_profile.max()/self.baseline_noise_std
117
117
 
118
- normalized_threshold = (self.abundance_profile.max() * self.settings.s2n_threshold )/max_sn
118
+ normalized_threshold = (self.abundance_profile.max() * self.settings.noise_threshold_min_s2n )/max_sn
119
119
  y = (normalized_threshold, normalized_threshold)
120
120
 
121
121
  elif self.settings.noise_threshold_method == "relative_abundance":
@@ -147,10 +147,11 @@ class PeakPicking:
147
147
  self.abundance_profile = abundance
148
148
  self.freq_exp_profile = freq
149
149
 
150
- mz, abundance, freq = self.extrapolate_axes_for_pp()
151
- self.mz_exp_profile = mz
152
- self.abundance_profile = abundance
153
- self.freq_exp_profile = freq
150
+ if self.settings.picking_point_extrapolate > 0:
151
+ mz, abundance, freq = self.extrapolate_axes_for_pp()
152
+ self.mz_exp_profile = mz
153
+ self.abundance_profile = abundance
154
+ self.freq_exp_profile = freq
154
155
 
155
156
  if self.label == Labels.bruker_frequency or self.label == Labels.midas_frequency:
156
157
 
@@ -451,7 +452,7 @@ class PeakPicking:
451
452
 
452
453
  elif noise_threshold_method == 'signal_noise':
453
454
 
454
- abundance_threshold = self.settings.s2n_threshold
455
+ abundance_threshold = self.settings.noise_threshold_min_s2n
455
456
  factor = self.baseline_noise_std
456
457
 
457
458
  elif noise_threshold_method == "relative_abundance":
@@ -3,7 +3,7 @@ from copy import deepcopy
3
3
 
4
4
 
5
5
  #from matplotlib import rcParamsDefault, rcParams
6
- from numpy import array, power, float64, where, histogram
6
+ from numpy import array, power, float64, where, histogram, trapz
7
7
 
8
8
  from pandas import DataFrame
9
9
  from lmfit.models import GaussianModel
@@ -217,7 +217,7 @@ class MassSpecBase(MassSpecCalc, KendrickGrouping):
217
217
  - _calibration_terms
218
218
  - label
219
219
  - analyzer
220
- - aquisition_time
220
+ - acquisition_time
221
221
  - instrument_label
222
222
  - polarity
223
223
  - scan_number
@@ -240,7 +240,7 @@ class MassSpecBase(MassSpecCalc, KendrickGrouping):
240
240
 
241
241
  self.analyzer = d_params.get('analyzer')
242
242
 
243
- self.aquisition_time = d_params.get('aquisition_time')
243
+ self.acquisition_time = d_params.get('acquisition_time')
244
244
 
245
245
  self.instrument_label = d_params.get('instrument_label')
246
246
 
@@ -612,7 +612,7 @@ class MassSpecBase(MassSpecCalc, KendrickGrouping):
612
612
  @property
613
613
  def tic(self):
614
614
  """Return the total ion current of the mass spectrum."""
615
- return sum(self.abundance_profile)
615
+ return trapz(self.abundance_profile, self.mz_exp_profile)
616
616
 
617
617
  def check_mspeaks_warning(self):
618
618
  """Check if the mass spectrum has MSpeaks objects.
@@ -1263,6 +1263,7 @@ class MassSpecfromFreq(MassSpecBase):
1263
1263
  if self._mz_exp[0] > self._mz_exp[-1]:
1264
1264
  self._mz_exp = self._mz_exp[::-1]
1265
1265
  self._abundance = self._abundance[::-1]
1266
+ self._frequency_domain = self._frequency_domain[::-1]
1266
1267
 
1267
1268
  def _set_mz_domain(self):
1268
1269
  """Set the m/z domain of the mass spectrum based on the settings of d_params."""
@@ -1375,6 +1376,8 @@ class MassSpecCentroid(MassSpecBase):
1375
1376
 
1376
1377
  self.is_centroid = True
1377
1378
  self.data_dict = data_dict
1379
+ self._mz_exp = data_dict[Labels.mz]
1380
+ self._abundance = data_dict[Labels.abundance]
1378
1381
 
1379
1382
  if auto_process:
1380
1383
  self.process_mass_spec()
@@ -83,6 +83,10 @@ class ReadCoremsMasslist(MassListBaseClass):
83
83
  ion_type_df = dataframe["Ion Type"]
84
84
  ion_charge_df = dataframe["Ion Charge"]
85
85
  is_isotopologue_df = dataframe['Is Isotopologue']
86
+ if 'Adduct' in dataframe:
87
+ adduct_df = dataframe['Adduct']
88
+ else:
89
+ adduct_df = None
86
90
 
87
91
  mass_spec_mz_exp_list = mass_spec_obj.mz_exp
88
92
 
@@ -102,7 +106,11 @@ class ReadCoremsMasslist(MassListBaseClass):
102
106
  if sum(counts) > 0:
103
107
 
104
108
  ion_type = str(Labels.ion_type_translate.get(ion_type_df[df_index]))
105
- mfobj = MolecularFormula(formula_list, int(ion_charge_df[df_index]), mspeak_parent=mass_spec_obj[ms_peak_index] , ion_type=ion_type)
109
+ if adduct_df is not None:
110
+ adduct_atom = str(adduct_df[df_index])
111
+ else:
112
+ adduct_atom = None
113
+ mfobj = MolecularFormula(formula_list, int(ion_charge_df[df_index]), mspeak_parent=mass_spec_obj[ms_peak_index] , ion_type=ion_type, adduct_atom=adduct_atom)
106
114
  mfobj.is_isotopologue = bool(is_isotopologue_df[df_index])
107
115
  mass_spec_obj[ms_peak_index].add_molecular_formula(mfobj)
108
116
 
@@ -0,0 +1,108 @@
1
+
2
+ __author__ = "Yuri E. Corilo"
3
+ __date__ = "Oct 23, 2019"
4
+
5
+ from corems.mass_spectrum.factory.MassSpectrumClasses import MassSpecProfile, MassSpecCentroid
6
+ from corems.encapsulation.factory.parameters import default_parameters
7
+ from corems.encapsulation.constant import Labels
8
+
9
+ def ms_from_array_profile(mz, abundance, dataname:str, polarity:int = -1, auto_process:bool = True, data_type:str = Labels.simulated_profile):
10
+ """Create a MassSpecProfile object from an array of m/z values and abundance values.
11
+
12
+ Parameters
13
+ ----------
14
+ mz : numpy.ndarray
15
+ Array of m/z values.
16
+ abundance : numpy.ndarray
17
+ Array of abundance values.
18
+ dataname : str
19
+ Name of the data.
20
+ polarity : int, optional
21
+ Polarity of the data. The default is -1.
22
+ auto_process : bool, optional
23
+ Flag to automatically process the data. The default is True.
24
+ data_type : str, optional
25
+ Type of the data. The default is Labels.simulated_profile.
26
+
27
+ Returns
28
+ -------
29
+ MassSpecProfile
30
+ The created MassSpecProfile object.
31
+ """
32
+ data_dict = {Labels.mz: mz, Labels.abundance: abundance}
33
+
34
+ output_parameters = get_output_parameters(polarity, dataname)
35
+
36
+ output_parameters[Labels.label] = data_type
37
+
38
+ ms = MassSpecProfile(data_dict, output_parameters, auto_process=auto_process)
39
+
40
+ return ms
41
+
42
+ def ms_from_array_centroid(mz, abundance, rp:list[float], s2n:list[float], dataname:str, polarity:int=-1, auto_process:bool=True):
43
+ """Create a MassSpecCentroid object from an array of m/z values, abundance values, resolution power, and signal-to-noise ratio.
44
+
45
+ Parameters
46
+ ----------
47
+ mz : numpy.ndarray
48
+ Array of m/z values.
49
+ abundance : numpy.ndarray
50
+ Array of abundance values.
51
+ rp : list(float)
52
+ List of resolving power values.
53
+ s2n : list(float)
54
+ List of signal-to-noise ratio values.
55
+ dataname : str
56
+ Name of the data.
57
+ polarity : int, optional
58
+ Polarity of the data. The default is -1.
59
+ auto_process : bool, optional
60
+
61
+ Returns
62
+ -------
63
+ MassSpecCentroid
64
+ The created MassSpecCentroid object.
65
+ """
66
+ data_dict = {Labels.mz: mz, Labels.abundance: abundance, Labels.s2n : s2n, Labels.rp: rp}
67
+
68
+ output_parameters = get_output_parameters(polarity, dataname)
69
+ output_parameters[Labels.label] = Labels.corems_centroid
70
+
71
+ return MassSpecCentroid(data_dict, output_parameters, auto_process)
72
+
73
+ def get_output_parameters(polarity:int, file_location:str):
74
+ """Generate the output parameters for creating a MassSpecProfile or MassSpecCentroid object.
75
+
76
+ Parameters
77
+ ----------
78
+ polarity : int
79
+ Polarity of the data.
80
+ file_location : str
81
+ File location.
82
+
83
+ Returns
84
+ -------
85
+ dict
86
+ Output parameters.
87
+ """
88
+ d_params = default_parameters(file_location)
89
+
90
+ d_params['analyzer'] = 'Generic Simulated'
91
+
92
+ d_params['instrument_label'] = 'Generic Simulated'
93
+
94
+ d_params["polarity"] = polarity
95
+
96
+ d_params["filename_path"] = file_location
97
+
98
+ d_params["mobility_scan"] = 0
99
+
100
+ d_params["mobility_rt"] = 0
101
+
102
+ d_params["scan_number"] = 0
103
+
104
+ d_params["rt"] = 0
105
+
106
+ d_params[Labels.label] = Labels.simulated_profile
107
+
108
+ return d_params
@@ -111,6 +111,7 @@ class HighResMassSpecExport(Thread):
111
111
  'O/C',
112
112
  'Heteroatom Class',
113
113
  'Ion Type',
114
+ 'Adduct',
114
115
  'Is Isotopologue',
115
116
  'Mono Isotopic Index',
116
117
  'Molecular Formula'
@@ -160,7 +161,6 @@ class HighResMassSpecExport(Thread):
160
161
 
161
162
  def get_pandas_df(self):
162
163
  """Returns the mass spectrum data as a pandas DataFrame."""
163
-
164
164
  columns = self.columns_label + self.get_all_used_atoms_in_order(self.mass_spectrum)
165
165
  dict_data_list = self.get_list_dict_data(self.mass_spectrum)
166
166
  df = DataFrame(dict_data_list, columns=columns)
@@ -563,6 +563,9 @@ class HighResMassSpecExport(Thread):
563
563
  'Is Isotopologue': int(mformula.is_isotopologue),
564
564
  'Molecular Formula': eval("mformula.string{}".format(encode))
565
565
  }
566
+
567
+ if mformula.adduct_atom:
568
+ dict_result['Adduct'] = eval("mformula.adduct_atom{}".format(encode))
566
569
 
567
570
  if mformula.is_isotopologue:
568
571
  dict_result['Mono Isotopic Index'] = mformula.mspeak_index_mono_isotopic
@@ -1,8 +1,8 @@
1
1
  __author__ = "Yuri E. Corilo"
2
2
  __date__ = "Jun 24, 2019"
3
3
 
4
- from IsoSpecPy import IsoSpecPy
5
- from numpy import isnan, power, exp, nextafter
4
+
5
+ from numpy import isnan, power, exp, nextafter, array
6
6
  from pandas import DataFrame
7
7
  from scipy.stats import pearsonr, spearmanr, kendalltau
8
8
 
@@ -11,6 +11,19 @@ from corems.encapsulation.constant import Labels
11
11
  from corems.encapsulation.factory.parameters import MSParameters
12
12
  from corems.molecular_id.calc.SpectralSimilarity import SpectralSimilarity
13
13
 
14
+ # this is to handle both versions of IsoSpecPy, 2.0.2 and 2.2.2
15
+ # TODO in a future release remove support for legacy isospecpy
16
+ from packaging import version
17
+ import IsoSpecPy
18
+ isospec_version = IsoSpecPy.__version__
19
+ if version.parse(isospec_version) > version.parse('2.0.2'):
20
+ legacy_isospec = False
21
+ else: legacy_isospec = True
22
+ if legacy_isospec:
23
+ from IsoSpecPy import IsoSpecPy
24
+ print(f"IsoSpecPy version {isospec_version} is installed, and support is deprecated. Please update to 2.2.2")
25
+
26
+
14
27
  class MolecularFormulaCalc:
15
28
  """Class of calculations related to molecular formula
16
29
 
@@ -645,15 +658,31 @@ class MolecularFormulaCalc:
645
658
  atoms_count.append(formula_dict.get(atom_label))
646
659
  masses_list_tuples.append(masses)
647
660
  props_list_tuples.append(props)
648
-
649
- iso = IsoSpecPy.IsoSpec(atoms_count,masses_list_tuples,props_list_tuples, cut_off_to_IsoSpeccPy)
650
-
651
- conf = iso.getConfs()
652
- masses = conf[0]
653
- probs = exp(conf[1])
654
- molecular_formulas = conf[2]
655
- #print('conf', conf)
656
- #print('probs', conf[1])
661
+ if legacy_isospec:
662
+ iso = IsoSpecPy.IsoSpec(atoms_count,masses_list_tuples,props_list_tuples, cut_off_to_IsoSpeccPy)
663
+ conf = iso.getConfs()
664
+ masses = conf[0]
665
+ probs = exp(conf[1])
666
+ molecular_formulas = conf[2]
667
+ #print('conf', conf)
668
+ #print('probs', conf[1])
669
+ else:
670
+ # This syntax in IsoSpecPy 2.2.2 yields the same information as the legacy approach
671
+ iso = IsoSpecPy.IsoTotalProb(atomCounts = atoms_count, isotopeMasses = masses_list_tuples,
672
+ isotopeProbabilities = props_list_tuples, prob_to_cover =cut_off_to_IsoSpeccPy, get_confs=True)
673
+ masses = list(iso.masses)
674
+ probs = array(list(iso.probs))
675
+ confs = list(iso.confs)
676
+
677
+ molecular_formulas = []
678
+ for x in confs:
679
+ tmplist = []
680
+ for y in x:
681
+ tmplist.extend(list(y))
682
+ molecular_formulas.append(tmplist)
683
+
684
+
685
+
657
686
 
658
687
  new_formulas = []
659
688