CoreMS 2.0.6__tar.gz → 2.0.9__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 (167) hide show
  1. {CoreMS-2.0.6 → CoreMS-2.0.9}/CoreMS.egg-info/PKG-INFO +4 -4
  2. {CoreMS-2.0.6 → CoreMS-2.0.9}/CoreMS.egg-info/SOURCES.txt +18 -0
  3. {CoreMS-2.0.6 → CoreMS-2.0.9}/CoreMS.egg-info/requires.txt +1 -1
  4. {CoreMS-2.0.6 → CoreMS-2.0.9}/MANIFEST.in +2 -1
  5. {CoreMS-2.0.6 → CoreMS-2.0.9}/PKG-INFO +4 -4
  6. {CoreMS-2.0.6 → CoreMS-2.0.9}/README.md +3 -3
  7. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/__init__.py +1 -1
  8. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/encapsulation/factory/processingSetting.py +4 -4
  9. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/factory/LC_Temp.py +4 -1
  10. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/input/brukerSolarix.py +0 -1
  11. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/input/rawFileReader.py +26 -8
  12. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/calc/Calibration.py +6 -4
  13. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/calc/NoiseCalc.py +2 -2
  14. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/calc/PeakPicking.py +5 -2
  15. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_formula/calc/MolecularFormulaCalc.py +40 -11
  16. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_formula/factory/MolecularFormulaFactory.py +7 -2
  17. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/ms_peak/calc/MSPeakCalc.py +11 -12
  18. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/ms_peak/factory/MSPeakClasses.py +6 -7
  19. CoreMS-2.0.9/ext_lib/dotnet/OpenMcdf.Extensions.dll +0 -0
  20. CoreMS-2.0.9/ext_lib/dotnet/OpenMcdf.dll +0 -0
  21. CoreMS-2.0.9/ext_lib/dotnet/OpenMcdf.xml +1154 -0
  22. CoreMS-2.0.9/ext_lib/dotnet/System.IO.FileSystem.AccessControl.dll +0 -0
  23. CoreMS-2.0.9/ext_lib/dotnet/System.IO.FileSystem.AccessControl.xml +506 -0
  24. CoreMS-2.0.9/ext_lib/dotnet/System.Security.AccessControl.dll +0 -0
  25. CoreMS-2.0.9/ext_lib/dotnet/System.Security.AccessControl.xml +2043 -0
  26. CoreMS-2.0.9/ext_lib/dotnet/System.Security.Principal.Windows.dll +0 -0
  27. CoreMS-2.0.9/ext_lib/dotnet/System.Security.Principal.Windows.xml +1011 -0
  28. CoreMS-2.0.9/ext_lib/dotnet/ThermoFisher.CommonCore.BackgroundSubtraction.dll +0 -0
  29. CoreMS-2.0.9/ext_lib/dotnet/ThermoFisher.CommonCore.BackgroundSubtraction.xml +2307 -0
  30. CoreMS-2.0.9/ext_lib/dotnet/ThermoFisher.CommonCore.Data.dll +0 -0
  31. CoreMS-2.0.9/ext_lib/dotnet/ThermoFisher.CommonCore.Data.xml +29148 -0
  32. CoreMS-2.0.9/ext_lib/dotnet/ThermoFisher.CommonCore.MassPrecisionEstimator.dll +0 -0
  33. CoreMS-2.0.9/ext_lib/dotnet/ThermoFisher.CommonCore.MassPrecisionEstimator.xml +241 -0
  34. CoreMS-2.0.9/ext_lib/dotnet/ThermoFisher.CommonCore.RawFileReader.dll +0 -0
  35. CoreMS-2.0.9/ext_lib/dotnet/ThermoFisher.CommonCore.RawFileReader.xml +31492 -0
  36. CoreMS-2.0.9/ext_lib/dotnet/__init__.py +0 -0
  37. {CoreMS-2.0.6 → CoreMS-2.0.9}/requirements.txt +1 -1
  38. {CoreMS-2.0.6 → CoreMS-2.0.9}/setup.py +1 -1
  39. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_calibration.py +67 -4
  40. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_input.py +2 -2
  41. {CoreMS-2.0.6 → CoreMS-2.0.9}/CoreMS.egg-info/dependency_links.txt +0 -0
  42. {CoreMS-2.0.6 → CoreMS-2.0.9}/CoreMS.egg-info/top_level.txt +0 -0
  43. {CoreMS-2.0.6 → CoreMS-2.0.9}/Dockerfile +0 -0
  44. {CoreMS-2.0.6 → CoreMS-2.0.9}/LICENSE +0 -0
  45. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/chroma_peak/__init__.py +0 -0
  46. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/chroma_peak/calc/ChromaPeakCalc.py +0 -0
  47. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/chroma_peak/calc/__init__.py +0 -0
  48. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/chroma_peak/factory/ChromaPeakClasses.py +0 -0
  49. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/chroma_peak/factory/__init__.py +0 -0
  50. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/collection/__init__.py +0 -0
  51. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/collection/factory/__init__.py +0 -0
  52. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/collection/input/__init__.py +0 -0
  53. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/collection/output/__init__.py +0 -0
  54. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/encapsulation/__init__.py +0 -0
  55. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/encapsulation/constant.py +0 -0
  56. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/encapsulation/factory/__init__.py +0 -0
  57. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/encapsulation/factory/parameters.py +0 -0
  58. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/encapsulation/input/__init__.py +0 -0
  59. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/encapsulation/input/parameter_from_json.py +0 -0
  60. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/encapsulation/output/__init__.py +0 -0
  61. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/encapsulation/output/parameter_to_dict.py +0 -0
  62. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/encapsulation/output/parameter_to_json.py +0 -0
  63. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/__init__.py +0 -0
  64. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/calc/GC_Calc.py +0 -0
  65. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/calc/GC_Deconvolution.py +0 -0
  66. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/calc/GC_RI_Calibration.py +0 -0
  67. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/calc/LC_Calc.py +0 -0
  68. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/calc/LF_Targeted.py +0 -0
  69. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/calc/MZSearch.py +0 -0
  70. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/calc/SignalProcessing.py +0 -0
  71. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/calc/__init__.py +0 -0
  72. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/factory/GC_Class.py +0 -0
  73. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/factory/LC_Class.py +0 -0
  74. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/factory/__init__.py +0 -0
  75. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/input/__init__.py +0 -0
  76. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/input/andiNetCDF.py +0 -0
  77. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/input/boosterHDF5.py +0 -0
  78. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/input/coremsHDF5.py +0 -0
  79. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/input/massList.py +0 -0
  80. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/input/win_only/BrukerCompassXtract.py +0 -0
  81. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/input/win_only/ThermoMSFileReader.py +0 -0
  82. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/input/win_only/__init__.py +0 -0
  83. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/output/__init__.py +0 -0
  84. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectra/output/export.py +0 -0
  85. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/__init__.py +0 -0
  86. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/calc/AutoRecalibration.py +0 -0
  87. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/calc/CalibrationCalc.py +0 -0
  88. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/calc/KendrickGroup.py +0 -0
  89. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/calc/MassErrorPrediction.py +0 -0
  90. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/calc/MassSpectrumCalc.py +0 -0
  91. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/calc/MeanResolvingPowerFilter.py +0 -0
  92. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/calc/NoiseCalc_Bayes.py +0 -0
  93. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/calc/__init__.py +0 -0
  94. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/factory/MassSpectrumClasses.py +0 -0
  95. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/factory/__init__.py +0 -0
  96. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/input/__init__.py +0 -0
  97. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/input/baseClass.py +0 -0
  98. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/input/boosterHDF5.py +0 -0
  99. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/input/coremsHDF5.py +0 -0
  100. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/input/massList.py +0 -0
  101. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/input/numpyArray.py +0 -0
  102. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/input/win_only/__init__.py +0 -0
  103. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/output/__init__.py +0 -0
  104. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/mass_spectrum/output/export.py +0 -0
  105. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_formula/__init__.py +0 -0
  106. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_formula/calc/__init__.py +0 -0
  107. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_formula/factory/__init__.py +0 -0
  108. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_formula/input/__init__.py +0 -0
  109. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_formula/input/masslist_ref.py +0 -0
  110. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/__init__.py +0 -0
  111. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/calc/ClusterFilter.py +0 -0
  112. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/calc/KendrickGroup.py +0 -0
  113. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/calc/MolecularFilter.py +0 -0
  114. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/calc/SpectralSimilarity.py +0 -0
  115. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/calc/__init__.py +0 -0
  116. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/calc/math_distance.py +0 -0
  117. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/factory/EI_SQL.py +0 -0
  118. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/factory/MolecularLookupTable.py +0 -0
  119. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/factory/__init__.py +0 -0
  120. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/factory/classification.py +0 -0
  121. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/factory/molecularSQL.py +0 -0
  122. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/input/__init__.py +0 -0
  123. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/input/nistMSI.py +0 -0
  124. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/search/__init__.py +0 -0
  125. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/search/compoundSearch.py +0 -0
  126. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/search/findOxygenPeaks.py +0 -0
  127. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/search/molecularFormulaSearch.py +0 -0
  128. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/molecular_id/search/priorityAssignment.py +0 -0
  129. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/ms_peak/__init__.py +0 -0
  130. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/ms_peak/calc/__init__.py +0 -0
  131. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/ms_peak/factory/__init__.py +0 -0
  132. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/transient/__init__.py +0 -0
  133. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/transient/calc/TransientCalc.py +0 -0
  134. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/transient/calc/__init__.py +0 -0
  135. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/transient/factory/TransientClasses.py +0 -0
  136. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/transient/factory/__init__.py +0 -0
  137. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/transient/input/__init__.py +0 -0
  138. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/transient/input/brukerSolarix.py +0 -0
  139. {CoreMS-2.0.6 → CoreMS-2.0.9}/corems/transient/input/midasDatFile.py +0 -0
  140. {CoreMS-2.0.6 → CoreMS-2.0.9}/disclaimer.txt +0 -0
  141. {CoreMS-2.0.6 → CoreMS-2.0.9}/ext_lib/ChemstationMSFileReader.dll +0 -0
  142. {CoreMS-2.0.6 → CoreMS-2.0.9}/ext_lib/ChemstationMSFileReader.xml +0 -0
  143. {CoreMS-2.0.6 → CoreMS-2.0.9}/ext_lib/RawFileReaderLicense.doc +0 -0
  144. {CoreMS-2.0.6 → CoreMS-2.0.9}/ext_lib/ThermoFisher.CommonCore.BackgroundSubtraction.dll +0 -0
  145. {CoreMS-2.0.6 → CoreMS-2.0.9}/ext_lib/ThermoFisher.CommonCore.BackgroundSubtraction.xml +0 -0
  146. {CoreMS-2.0.6 → CoreMS-2.0.9}/ext_lib/ThermoFisher.CommonCore.Data.dll +0 -0
  147. {CoreMS-2.0.6 → CoreMS-2.0.9}/ext_lib/ThermoFisher.CommonCore.Data.xml +0 -0
  148. {CoreMS-2.0.6 → CoreMS-2.0.9}/ext_lib/ThermoFisher.CommonCore.MassPrecisionEstimator.dll +0 -0
  149. {CoreMS-2.0.6 → CoreMS-2.0.9}/ext_lib/ThermoFisher.CommonCore.RawFileReader.dll +0 -0
  150. {CoreMS-2.0.6 → CoreMS-2.0.9}/ext_lib/ThermoFisher.CommonCore.RawFileReader.xml +0 -0
  151. {CoreMS-2.0.6 → CoreMS-2.0.9}/ext_lib/__init__.py +0 -0
  152. {CoreMS-2.0.6 → CoreMS-2.0.9}/setup.cfg +0 -0
  153. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test.py +0 -0
  154. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_LossFinder.py +0 -0
  155. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_assembly_identification.py +0 -0
  156. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_classification.py +0 -0
  157. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_gcms.py +0 -0
  158. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_massErrorPrediction.py +0 -0
  159. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_mass_spectrum.py +0 -0
  160. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_molecularFormula.py +0 -0
  161. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_molecularFormulaDBFactory.py +0 -0
  162. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_molecularFormulaSearch.py +0 -0
  163. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_mspeak.py +0 -0
  164. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_mz_search.py +0 -0
  165. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_output.py +0 -0
  166. {CoreMS-2.0.6 → CoreMS-2.0.9}/tests/test_searchMassListRef.py +0 -0
  167. {CoreMS-2.0.6 → CoreMS-2.0.9}/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.6
3
+ Version: 2.0.9
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/tree/master/docs/CoreMS.COLOR_small.png?raw=true)
17
+ ![CoreMS Logo](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.6`
69
+ `2.0.9`
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.6 Release on GitHub](https://github.com/EMSL-Computing/CoreMS/releases/tag/v2.0.6), archived on Zenodo:
342
+ Version [2.0.9 Release on GitHub](https://github.com/EMSL-Computing/CoreMS/releases/tag/v2.0.9), 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.6
3
+ Version: 2.0.9
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/tree/master/docs/CoreMS.COLOR_small.png?raw=true)
17
+ ![CoreMS Logo](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.6`
69
+ `2.0.9`
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.6 Release on GitHub](https://github.com/EMSL-Computing/CoreMS/releases/tag/v2.0.6), archived on Zenodo:
342
+ Version [2.0.9 Release on GitHub](https://github.com/EMSL-Computing/CoreMS/releases/tag/v2.0.9), 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/tree/master/docs/CoreMS.COLOR_small.png?raw=true)
1
+ ![CoreMS Logo](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.6`
53
+ `2.0.9`
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.6 Release on GitHub](https://github.com/EMSL-Computing/CoreMS/releases/tag/v2.0.6), archived on Zenodo:
326
+ Version [2.0.9 Release on GitHub](https://github.com/EMSL-Computing/CoreMS/releases/tag/v2.0.9), 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.6'
2
+ __version__ = '2.0.9'
3
3
  __doc__ = '''
4
4
  <div align="left">
5
5
 
@@ -63,16 +63,16 @@ class DataInputSetting:
63
63
  self.header_translate = {'m/z': Labels.mz,
64
64
  'mOz': Labels.mz,
65
65
  'Mass': Labels.mz,
66
- 'Resolving Power': 'Resolving Power',
66
+ 'Resolving Power': Labels.rp,
67
67
  'Res.': Labels.rp,
68
+ 'resolution': Labels.rp,
68
69
  'Intensity': Labels.abundance,
69
70
  'I': Labels.abundance,
70
71
  'Abundance': Labels.abundance,
72
+ 'abs_abu': Labels.abundance,
71
73
  'Signal/Noise': Labels.s2n,
72
74
  'S/N': Labels.s2n,
73
- 'abs_abu': Labels.abundance,
74
- 'sn': Labels.s2n,
75
- 'resolution': Labels.rp}
75
+ 'sn': Labels.s2n}
76
76
 
77
77
  def add_mz_label(self, label):
78
78
  """Add a label to the header_translate dictionary to be translated to the corems label for mz."""
@@ -10,7 +10,9 @@ class TIC_Data:
10
10
  Time: [floats]
11
11
  list of retention times
12
12
  TIC: [floats]
13
- total ion chromatogram
13
+ total ion current [chromatogram]
14
+ BPC: [floats]
15
+ base peak [chromatogram]
14
16
  Apexes: [int]
15
17
  original thermo apex scan number after peak picking
16
18
  '''
@@ -18,6 +20,7 @@ class TIC_Data:
18
20
  scans : List[int] = field(default_factory=list)
19
21
  time : List[float] = field(default_factory=list)
20
22
  tic : List[float] = field(default_factory=list)
23
+ bpc : List[float] = field(default_factory=list)
21
24
  apexes : List[int] = field(default_factory=list)
22
25
 
23
26
  @dataclass
@@ -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
@@ -503,9 +503,15 @@ class ThermoBaseClass:
503
503
  # plt.show()
504
504
 
505
505
  def get_tic(
506
- self, ms_type="MS !d", peak_detection=True, smooth=True, plot=False, ax=None
506
+ self, ms_type="MS !d", peak_detection=True, smooth=True, plot=False, ax=None,trace_type='TIC',
507
507
  ) -> Tuple[TIC_Data, axes.Axes]:
508
- """ms_type: str ('MS', MS2')
508
+ """ms_type: str ('MS !d', 'MS2', None)
509
+ if you use None you get all scans.
510
+ peak_detection: bool
511
+ smooth: bool
512
+ plot: bool
513
+ ax: matplotlib axis object
514
+ trace_type: str ('TIC','BPC')
509
515
 
510
516
  returns:
511
517
  chroma: dict
@@ -520,9 +526,16 @@ class ThermoBaseClass:
520
526
  original thermo apex scan number after peak picking
521
527
  }
522
528
  """
523
-
524
- settings = ChromatogramTraceSettings(TraceType.TIC)
525
- settings.Filter = ms_type
529
+ if trace_type == 'TIC':
530
+ settings = ChromatogramTraceSettings(TraceType.TIC)
531
+ elif trace_type == 'BPC':
532
+ settings = ChromatogramTraceSettings(TraceType.BasePeak)
533
+ else:
534
+ print(f'{trace_type} undefined')
535
+ if ms_type == "all":
536
+ settings.Filter = None
537
+ else:
538
+ settings.Filter = ms_type
526
539
 
527
540
  chroma_settings = IChromatogramSettings(settings)
528
541
 
@@ -532,7 +545,7 @@ class ThermoBaseClass:
532
545
 
533
546
  trace = ChromatogramSignal.FromChromatogramData(data)
534
547
 
535
- data = TIC_Data(time=[], scans=[], tic=[], apexes=[])
548
+ data = TIC_Data(time=[], scans=[], tic=[], bpc=[], apexes=[])
536
549
 
537
550
  if trace[0].Length > 0:
538
551
  for i in range(trace[0].Length):
@@ -564,7 +577,7 @@ class ThermoBaseClass:
564
577
  ax = plt.gca()
565
578
  # fig, ax = plt.subplots(figsize=(6, 3))
566
579
 
567
- ax.plot(data.time, data.tic, label=" TIC")
580
+ ax.plot(data.time, data.tic, label=trace_type)
568
581
  ax.set_xlabel("Time (min)")
569
582
  ax.set_ylabel("a.u.")
570
583
  if peak_detection:
@@ -578,8 +591,13 @@ class ThermoBaseClass:
578
591
  )
579
592
 
580
593
  # plt.show()
594
+ if trace_type == 'BPC':
595
+ data.bpc = data.tic
596
+ data.tic = []
581
597
  return data, ax
582
-
598
+ if trace_type == 'BPC':
599
+ data.bpc = data.tic
600
+ data.tic = []
583
601
  return data, None
584
602
 
585
603
  else:
@@ -381,13 +381,15 @@ class MzDomainCalibration:
381
381
  if self.mzsegment:
382
382
  # Recombine the mass domains
383
383
  mz_domain = np.concatenate([mz_domain,mz_exp_peaks_unchanged])
384
- mz_profile_calc = np.concatenate([mz_profile_calc,mz_exp_profile_unchanged])
385
- # Sort them
386
384
  mz_domain.sort()
387
- mz_profile_calc.sort()
385
+ if not self.mass_spectrum.is_centroid:
386
+ mz_profile_calc = np.concatenate([mz_profile_calc,mz_exp_profile_unchanged])
387
+ mz_profile_calc.sort()
388
+ # Sort them
388
389
  if mz_exp_peaks[0] > mz_exp_peaks[1]: #If originally descending mass order
389
390
  mz_domain = mz_domain[::-1]
390
- mz_profile_calc = mz_profile_calc[::-1]
391
+ if not self.mass_spectrum.is_centroid:
392
+ mz_profile_calc = mz_profile_calc[::-1]
391
393
 
392
394
  self.mass_spectrum.mz_cal = mz_domain
393
395
  if not self.mass_spectrum.is_centroid:
@@ -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":
@@ -452,8 +452,11 @@ class PeakPicking:
452
452
 
453
453
  elif noise_threshold_method == 'signal_noise':
454
454
 
455
- abundance_threshold = self.settings.s2n_threshold
456
- factor = self.baseline_noise_std
455
+ abundance_threshold = self.settings.noise_threshold_min_s2n
456
+ if self.is_centroid:
457
+ factor = 1
458
+ else:
459
+ factor = self.baseline_noise_std
457
460
 
458
461
  elif noise_threshold_method == "relative_abundance":
459
462
 
@@ -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
 
@@ -406,9 +406,14 @@ class MolecularFormulaBase(MolecularFormulaCalc):
406
406
  -----
407
407
  This calculation ignores the hydrogen isotopes.
408
408
  """
409
-
409
+ isotopologues = []
410
410
  for mf in self._cal_isotopologues(self._d_molecular_formula, min_abundance, current_mono_abundance, dynamic_range ):
411
-
411
+ isotopologues.append(mf)
412
+
413
+ # To account for differences in how the isotopologue outputs are sorted between IsoSpec versions.
414
+ sorted_isotopologues = sorted(isotopologues, key=lambda mf: mf[1], reverse=True)
415
+
416
+ for mf in sorted_isotopologues:
412
417
  yield MolecularFormulaIsotopologue(
413
418
  *mf,
414
419
  current_mono_abundance,
@@ -27,9 +27,9 @@ class MSPeakCalculation:
27
27
  The parent MSParent object associated with the MSPeakCalculation object.
28
28
  mz_exp : float
29
29
  The experimental m/z value of the peak.
30
- start_scan : int
30
+ peak_left_index : int
31
31
  The start scan index of the peak.
32
- final_scan : int
32
+ peak_right_index : int
33
33
  The final scan index of the peak.
34
34
  resolving_power : float
35
35
  The resolving power of the peak.
@@ -136,11 +136,10 @@ class MSPeakCalculation:
136
136
  float
137
137
  peak area
138
138
  """
139
- #TODO throughout change final_scan and start_scan when the MSPeakClasses
140
- if self.final_scan > self.start_scan:
139
+ if self.peak_right_index > self.peak_left_index:
141
140
 
142
- yy = self._ms_parent.abundance_profile[self.start_scan:self.final_scan]
143
- xx = self._ms_parent.mz_exp_profile[self.start_scan:self.final_scan]
141
+ yy = self._ms_parent.abundance_profile[self.peak_left_index:self.peak_right_index]
142
+ xx = self._ms_parent.mz_exp_profile[self.peak_left_index:self.peak_right_index]
144
143
  # check if the axis is high to low m/z or not. if its MSFromFreq its high mz first, if its from Profile, its low mz first
145
144
  if xx[0] > xx[-1]:
146
145
  xx = flip(xx)
@@ -182,8 +181,8 @@ class MSPeakCalculation:
182
181
  mz_extend here extends the x-axis domain so that we have sufficient points either side of the apex to fit.
183
182
  Takes about 10ms per peak
184
183
  """
185
- start_index = self.start_scan - mz_extend if not self.start_scan == 0 else 0
186
- final_index = self.final_scan + mz_extend if not self.final_scan == len(self._ms_parent.mz_exp_profile) else self.final_scan
184
+ start_index = self.peak_left_index - mz_extend if not self.peak_left_index == 0 else 0
185
+ final_index = self.peak_right_index + mz_extend if not self.peak_right_index == len(self._ms_parent.mz_exp_profile) else self.peak_right_index
187
186
 
188
187
  # check if MSPeak contains the resolving power info
189
188
  if self.resolving_power:
@@ -385,8 +384,8 @@ class MSPeakCalculation:
385
384
  # Thermo data is noise reduced by also noise subtracted, so starts at 0
386
385
  # Absorption mode/phased data will have positive and negative components and may not be baseline corrected
387
386
 
388
- start_index = self.start_scan - mz_extend if not self.start_scan == 0 else 0
389
- final_index = self.final_scan + mz_extend if not self.final_scan == len(self._ms_parent.mz_exp_profile) else self.final_scan
387
+ start_index = self.peak_left_index - mz_extend if not self.peak_left_index == 0 else 0
388
+ final_index = self.peak_right_index + mz_extend if not self.peak_right_index == len(self._ms_parent.mz_exp_profile) else self.peak_right_index
390
389
 
391
390
  # check if MSPeak contains the resolving power info
392
391
  if self.resolving_power:
@@ -649,8 +648,8 @@ class MSPeakCalculation:
649
648
  x-axis domain for fit
650
649
 
651
650
  """
652
- start_index = self.start_scan - mz_overlay if not self.start_scan == 0 else 0
653
- final_index = self.final_scan + mz_overlay if not self.final_scan == len(self._ms_parent.mz_exp_profile) else self.final_scan
651
+ start_index = self.peak_left_index - mz_overlay if not self.peak_left_index == 0 else 0
652
+ final_index = self.peak_right_index + mz_overlay if not self.peak_right_index == len(self._ms_parent.mz_exp_profile) else self.peak_right_index
654
653
 
655
654
  if oversample_multiplier == 1:
656
655
 
@@ -79,10 +79,9 @@ class _MSPeak(MSPeakCalculation):
79
79
  self.resolving_power = float(resolving_power)
80
80
  self.signal_to_noise = float(signal_to_noise)
81
81
  # profile indexes
82
- #TODO fix these names from 'scan' to be more logical about peak indexes.
83
- self.start_scan = int(indexes[0])
84
- self.apex_scan = int(indexes[1])
85
- self.final_scan = int(indexes[2])
82
+ self.peak_left_index = int(indexes[0])
83
+ self.peak_apex_index = int(indexes[1])
84
+ self.peak_right_index = int(indexes[2])
86
85
 
87
86
  # mass spec obj index
88
87
  self.index = int(index)
@@ -318,15 +317,15 @@ class _MSPeak(MSPeakCalculation):
318
317
 
319
318
  if ax is None:
320
319
  ax = plt.gca()
321
- x = self._ms_parent.mz_exp_profile[self.start_scan : self.final_scan]
322
- y = self._ms_parent.abundance_profile[self.start_scan : self.final_scan]
320
+ x = self._ms_parent.mz_exp_profile[self.peak_left_index : self.peak_right_index]
321
+ y = self._ms_parent.abundance_profile[self.peak_left_index : self.peak_right_index]
323
322
 
324
323
  ax.plot(x, y, color=color, label="Data")
325
324
  ax.set(xlabel="m/z", ylabel="abundance")
326
325
  if derivative and not self._ms_parent.is_centroid:
327
326
  dy = sp.derivate(
328
327
  self._ms_parent.abundance_profile[
329
- self.start_index : self.final_index + 1
328
+ self.peak_left_index : self.peak_right_index + 1
330
329
  ]
331
330
  )
332
331
  ax.plot(x, dy, c=deriv_color)
Binary file