masster 0.4.2__tar.gz → 0.4.4__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.

Potentially problematic release.


This version of masster might be problematic. Click here for more details.

Files changed (101) hide show
  1. masster-0.4.4/MANIFEST.in +8 -0
  2. masster-0.4.4/PKG-INFO +129 -0
  3. {masster-0.4.2 → masster-0.4.4}/pyproject.toml +26 -5
  4. masster-0.4.4/setup.cfg +4 -0
  5. {masster-0.4.2 → masster-0.4.4}/src/masster/_version.py +1 -1
  6. masster-0.4.4/src/masster/data/libs/__pycache__/ccm.cpython-312.pyc +0 -0
  7. masster-0.4.4/src/masster/data/libs/__pycache__/urine.cpython-312.pyc +0 -0
  8. masster-0.4.4/src/masster/lib/__init__.py +9 -0
  9. masster-0.4.4/src/masster/lib/lib.py +598 -0
  10. {masster-0.4.2 → masster-0.4.4}/src/masster/study/helpers.py +103 -8
  11. masster-0.4.4/src/masster.egg-info/PKG-INFO +129 -0
  12. masster-0.4.4/src/masster.egg-info/SOURCES.txt +75 -0
  13. masster-0.4.4/src/masster.egg-info/dependency_links.txt +1 -0
  14. masster-0.4.4/src/masster.egg-info/entry_points.txt +2 -0
  15. masster-0.4.4/src/masster.egg-info/requires.txt +46 -0
  16. masster-0.4.4/src/masster.egg-info/top_level.txt +1 -0
  17. masster-0.4.2/.github/workflows/publish.yml +0 -174
  18. masster-0.4.2/.github/workflows/security.yml +0 -88
  19. masster-0.4.2/.github/workflows/test.yml +0 -164
  20. masster-0.4.2/.gitignore +0 -210
  21. masster-0.4.2/.pre-commit-config.yaml +0 -96
  22. masster-0.4.2/MASSter.png +0 -0
  23. masster-0.4.2/Makefile +0 -76
  24. masster-0.4.2/PKG-INFO +0 -789
  25. masster-0.4.2/TESTING.md +0 -243
  26. masster-0.4.2/demo/example_batch_process.py +0 -0
  27. masster-0.4.2/demo/example_sample_process.py +0 -0
  28. masster-0.4.2/tests/conftest.py +0 -0
  29. masster-0.4.2/tests/test_chromatogram.py +0 -0
  30. masster-0.4.2/tests/test_defaults.py +0 -0
  31. masster-0.4.2/tests/test_imports.py +0 -0
  32. masster-0.4.2/tests/test_integration.py +0 -0
  33. masster-0.4.2/tests/test_logger.py +0 -0
  34. masster-0.4.2/tests/test_parameters.py +0 -0
  35. masster-0.4.2/tests/test_sample.py +0 -0
  36. masster-0.4.2/tests/test_spectrum.py +0 -0
  37. masster-0.4.2/tests/test_study.py +0 -0
  38. masster-0.4.2/tests/test_version.py +0 -0
  39. masster-0.4.2/tox.ini +0 -61
  40. masster-0.4.2/uv.lock +0 -3595
  41. {masster-0.4.2 → masster-0.4.4}/LICENSE +0 -0
  42. {masster-0.4.2 → masster-0.4.4}/README.md +0 -0
  43. {masster-0.4.2 → masster-0.4.4}/src/masster/__init__.py +0 -0
  44. {masster-0.4.2 → masster-0.4.4}/src/masster/chromatogram.py +0 -0
  45. {masster-0.4.2 → masster-0.4.4}/src/masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_DDA_OT_C-MiLUT_QC_dil2_01_20250602151849.sample5 +0 -0
  46. {masster-0.4.2 → masster-0.4.4}/src/masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_DDA_OT_C-MiLUT_QC_dil3_01_20250602150634.sample5 +0 -0
  47. {masster-0.4.2 → masster-0.4.4}/src/masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_MS1_C-MiLUT_C008_v6_r38_01.sample5 +0 -0
  48. {masster-0.4.2 → masster-0.4.4}/src/masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_MS1_C-MiLUT_C008_v7_r37_01.sample5 +0 -0
  49. {masster-0.4.2 → masster-0.4.4}/src/masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_MS1_C-MiLUT_C017_v5_r99_01.sample5 +0 -0
  50. {masster-0.4.2 → masster-0.4.4}/src/masster/data/libs/ccm.csv +0 -0
  51. {masster-0.4.2 → masster-0.4.4}/src/masster/data/libs/urine.csv +0 -0
  52. {masster-0.4.2 → masster-0.4.4}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.timeseries.data +0 -0
  53. {masster-0.4.2 → masster-0.4.4}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff +0 -0
  54. {masster-0.4.2 → masster-0.4.4}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff.scan +0 -0
  55. {masster-0.4.2 → masster-0.4.4}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff2 +0 -0
  56. {masster-0.4.2 → masster-0.4.4}/src/masster/logger.py +0 -0
  57. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/__init__.py +0 -0
  58. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/adducts.py +0 -0
  59. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/defaults/__init__.py +0 -0
  60. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/defaults/find_adducts_def.py +0 -0
  61. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/defaults/find_features_def.py +0 -0
  62. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/defaults/find_ms2_def.py +0 -0
  63. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/defaults/get_spectrum_def.py +0 -0
  64. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/defaults/sample_def.py +0 -0
  65. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/h5.py +0 -0
  66. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/helpers.py +0 -0
  67. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/lib.py +0 -0
  68. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/load.py +0 -0
  69. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/parameters.py +0 -0
  70. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/plot.py +0 -0
  71. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/processing.py +0 -0
  72. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/quant.py +0 -0
  73. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/sample.py +0 -0
  74. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/sample5_schema.json +0 -0
  75. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/save.py +0 -0
  76. {masster-0.4.2 → masster-0.4.4}/src/masster/sample/sciex.py +0 -0
  77. {masster-0.4.2 → masster-0.4.4}/src/masster/spectrum.py +0 -0
  78. {masster-0.4.2 → masster-0.4.4}/src/masster/study/__init__.py +0 -0
  79. {masster-0.4.2 → masster-0.4.4}/src/masster/study/defaults/__init__.py +0 -0
  80. {masster-0.4.2 → masster-0.4.4}/src/masster/study/defaults/align_def.py +0 -0
  81. {masster-0.4.2 → masster-0.4.4}/src/masster/study/defaults/export_def.py +0 -0
  82. {masster-0.4.2 → masster-0.4.4}/src/masster/study/defaults/fill_chrom_def.py +0 -0
  83. {masster-0.4.2 → masster-0.4.4}/src/masster/study/defaults/fill_def.py +0 -0
  84. {masster-0.4.2 → masster-0.4.4}/src/masster/study/defaults/find_consensus_def.py +0 -0
  85. {masster-0.4.2 → masster-0.4.4}/src/masster/study/defaults/find_ms2_def.py +0 -0
  86. {masster-0.4.2 → masster-0.4.4}/src/masster/study/defaults/identify_def.py +0 -0
  87. {masster-0.4.2 → masster-0.4.4}/src/masster/study/defaults/integrate_chrom_def.py +0 -0
  88. {masster-0.4.2 → masster-0.4.4}/src/masster/study/defaults/integrate_def.py +0 -0
  89. {masster-0.4.2 → masster-0.4.4}/src/masster/study/defaults/merge_def.py +0 -0
  90. {masster-0.4.2 → masster-0.4.4}/src/masster/study/defaults/study_def.py +0 -0
  91. {masster-0.4.2 → masster-0.4.4}/src/masster/study/export.py +0 -0
  92. {masster-0.4.2 → masster-0.4.4}/src/masster/study/h5.py +0 -0
  93. {masster-0.4.2 → masster-0.4.4}/src/masster/study/helpers_optimized.py +0 -0
  94. {masster-0.4.2 → masster-0.4.4}/src/masster/study/id.py +0 -0
  95. {masster-0.4.2 → masster-0.4.4}/src/masster/study/load.py +0 -0
  96. {masster-0.4.2 → masster-0.4.4}/src/masster/study/parameters.py +0 -0
  97. {masster-0.4.2 → masster-0.4.4}/src/masster/study/plot.py +0 -0
  98. {masster-0.4.2 → masster-0.4.4}/src/masster/study/processing.py +0 -0
  99. {masster-0.4.2 → masster-0.4.4}/src/masster/study/save.py +0 -0
  100. {masster-0.4.2 → masster-0.4.4}/src/masster/study/study.py +0 -0
  101. {masster-0.4.2 → masster-0.4.4}/src/masster/study/study5_schema.json +0 -0
@@ -0,0 +1,8 @@
1
+ # Exclude tests from source distribution
2
+ recursive-exclude tests *
3
+ recursive-exclude src/masster/tests *
4
+
5
+ # Include the package data files we want
6
+ include src/masster/sample/*.json
7
+ include src/masster/study/*.json
8
+ recursive-include src/masster/data *
masster-0.4.4/PKG-INFO ADDED
@@ -0,0 +1,129 @@
1
+ Metadata-Version: 2.4
2
+ Name: masster
3
+ Version: 0.4.4
4
+ Summary: Mass spectrometry data analysis package
5
+ Author: Zamboni Lab
6
+ License-Expression: AGPL-3.0-only
7
+ Project-URL: homepage, https://github.com/zamboni-lab/masster
8
+ Project-URL: repository, https://github.com/zamboni-lab/masster
9
+ Project-URL: documentation, https://github.com/zamboni-lab/masster#readme
10
+ Keywords: mass spectrometry,metabolomics,lc-ms,chromatography
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
19
+ Classifier: Topic :: Scientific/Engineering :: Chemistry
20
+ Requires-Python: >=3.11
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ Requires-Dist: alpharaw>=0.4.8
24
+ Requires-Dist: bokeh>=3.7.3
25
+ Requires-Dist: datashader>=0.18.1
26
+ Requires-Dist: holoviews>=1.21.0
27
+ Requires-Dist: h5py>=3.14.0
28
+ Requires-Dist: hvplot>=0.11.3
29
+ Requires-Dist: loguru>=0.7.3
30
+ Requires-Dist: numpy>=2.0.0
31
+ Requires-Dist: marimo>=0.14.16
32
+ Requires-Dist: matplotlib>=3.8.0
33
+ Requires-Dist: pandas>=2.2.0
34
+ Requires-Dist: panel>=1.7.0
35
+ Requires-Dist: polars>=1.0.0
36
+ Requires-Dist: pyopenms>=3.3.0
37
+ Requires-Dist: pyteomics>=4.7.0
38
+ Requires-Dist: pythonnet>=3.0.0
39
+ Requires-Dist: scipy>=1.12.0
40
+ Requires-Dist: tqdm>=4.65.0
41
+ Requires-Dist: openpyxl>=3.1.5
42
+ Requires-Dist: cmap>=0.6.2
43
+ Requires-Dist: altair>=5.5.0
44
+ Provides-Extra: dev
45
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
46
+ Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
47
+ Requires-Dist: pytest-mock>=3.10.0; extra == "dev"
48
+ Requires-Dist: black>=23.0.0; extra == "dev"
49
+ Requires-Dist: flake8>=5.0.0; extra == "dev"
50
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
51
+ Requires-Dist: pre-commit>=3.0.0; extra == "dev"
52
+ Requires-Dist: twine>=4.0.0; extra == "dev"
53
+ Requires-Dist: build>=0.10.0; extra == "dev"
54
+ Requires-Dist: safety>=2.0.0; extra == "dev"
55
+ Requires-Dist: bandit>=1.7.0; extra == "dev"
56
+ Requires-Dist: pyyaml>=6.0; extra == "dev"
57
+ Provides-Extra: docs
58
+ Requires-Dist: sphinx>=5.0.0; extra == "docs"
59
+ Requires-Dist: sphinx-rtd-theme>=1.2.0; extra == "docs"
60
+ Requires-Dist: sphinxcontrib-napoleon>=0.7; extra == "docs"
61
+ Provides-Extra: test
62
+ Requires-Dist: pytest>=7.0.0; extra == "test"
63
+ Requires-Dist: pytest-cov>=4.0.0; extra == "test"
64
+ Requires-Dist: pytest-mock>=3.10.0; extra == "test"
65
+ Requires-Dist: coverage>=7.0.0; extra == "test"
66
+ Dynamic: license-file
67
+
68
+ # MASSter
69
+
70
+ **MASSter** is a comprehensive Python package for mass spectrometry data analysis, designed for metabolomics and LC-MS data processing. It provides tools for feature detection, alignment, consensus building, and interactive visualization of mass spectrometry datasets. It is designed to deal with DDA, and hides functionalities for DIA and ZTScan DIA data.
71
+
72
+ This is a poorly documented, stable branch of the development codebase in use in the Zamboni lab.
73
+
74
+ Some of the core processing functions are derived from OpenMS. We use the same nomenclature and refer to their documentation for an explanation of the parameters. To a large extent, however, you should be able to use the defaults (=no parameters) when calling processing steps.
75
+
76
+
77
+ ## Installation
78
+
79
+ ```bash
80
+ pip install master
81
+ ```
82
+
83
+ ### Basic Workflow for analyzing LC-MS study with 2-... samples
84
+
85
+ ```python
86
+ import master
87
+
88
+ # Initialize the Study object with the default folder
89
+ study = master.Study(default_folder=r'D:\...\mylcms')
90
+
91
+ # Load data from folder with raw data, here: WIFF
92
+ study.add(r'D:\...\...\...\*.wiff')
93
+
94
+ # Perform retention time correction
95
+ study.align(rt_max_diff=2.0)
96
+ study.plot_alignment()
97
+
98
+ # Find consensus features
99
+ study.merge(min_samples=3)
100
+ study.plot_consensus_2d()
101
+
102
+ # Retrieve missing data for quantification
103
+ study.fill()
104
+
105
+ # Integrate according to consensus metadata
106
+ study.integrate()
107
+
108
+ # export results
109
+ study.export_mgf()
110
+ study.export_mztab()
111
+ study.export_consensus()
112
+
113
+ # Save the study to .study5
114
+ study.save()
115
+ ```
116
+
117
+ ## Requirements
118
+
119
+ - Python ≥ 3.11
120
+ - Key dependencies: pandas, polars, numpy, scipy, matplotlib, bokeh, holoviews, panel
121
+ - See `pyproject.toml` for complete dependency list
122
+
123
+ ## License
124
+
125
+ GNU Affero General Public License v3
126
+
127
+ ## Citation
128
+
129
+ If you use Master in your research, please cite this repository.
@@ -1,19 +1,20 @@
1
1
 
2
2
  [project]
3
3
  name = "masster"
4
- version = "0.4.2"
4
+ version = "0.4.4"
5
5
  description = "Mass spectrometry data analysis package"
6
6
  authors = [
7
7
  { name = "Zamboni Lab" }
8
8
  ]
9
- license = { file = "LICENSE" }
9
+ # Use SPDX expression for license (replaces deprecated TOML table form)
10
+ license = "AGPL-3.0-only"
11
+ license-files = ["LICENSE"]
10
12
  readme = "README.md"
11
13
  requires-python = ">=3.11"
12
14
  keywords = ["mass spectrometry", "metabolomics", "lc-ms", "chromatography"]
13
15
  classifiers = [
14
16
  "Development Status :: 3 - Alpha",
15
17
  "Intended Audience :: Science/Research",
16
- "License :: OSI Approved :: GNU Affero General Public License v3",
17
18
  "Operating System :: OS Independent",
18
19
  "Programming Language :: Python :: 3",
19
20
  "Programming Language :: Python :: 3.11",
@@ -80,8 +81,28 @@ test = [
80
81
  masster-version = "masster._version:main"
81
82
 
82
83
  [build-system]
83
- requires = ["hatchling>=1.18.0"]
84
- build-backend = "hatchling.build"
84
+ requires = ["setuptools>=65.5.0", "wheel"]
85
+ build-backend = "setuptools.build_meta"
86
+
87
+ # Use setuptools package discovery for the `src/` layout so all subpackages
88
+ # under `src/masster` (including `lib`) are included in the distribution.
89
+ [tool.setuptools.packages.find]
90
+ where = ["src"]
91
+ include = ["masster*"]
92
+ exclude = ["tests*", "tests.*"]
93
+
94
+ [tool.setuptools]
95
+ # Do not automatically include files from MANIFEST.in as package data; we declare package-data explicitly
96
+ include-package-data = false
97
+
98
+ # Include JSON schema files and other non-Python resources packaged under masster
99
+ [tool.setuptools.package-data]
100
+ "masster" = [
101
+ "sample/*.json",
102
+ "study/*.json",
103
+ # include data files (recursive)
104
+ "data/**",
105
+ ]
85
106
 
86
107
  # Testing configuration
87
108
  [tool.pytest.ini_options]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
 
4
- __version__ = "0.4.2"
4
+ __version__ = "0.4.4"
5
5
 
6
6
 
7
7
  def get_version():
@@ -0,0 +1,9 @@
1
+ """
2
+ Library module for masster.
3
+
4
+ This module provides the Lib class for managing compound libraries and feature annotation.
5
+ """
6
+
7
+ from .lib import Lib
8
+
9
+ __all__ = ["Lib"]