masster 0.3.0__tar.gz → 0.3.2__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 (80) hide show
  1. {masster-0.3.0 → masster-0.3.2}/PKG-INFO +1 -1
  2. {masster-0.3.0 → masster-0.3.2}/pyproject.toml +177 -177
  3. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/plot.py +317 -50
  4. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/sample.py +8 -6
  5. {masster-0.3.0 → masster-0.3.2}/src/masster/study/h5.py +8 -0
  6. {masster-0.3.0 → masster-0.3.2}/src/masster/study/helpers.py +87 -24
  7. {masster-0.3.0 → masster-0.3.2}/src/masster/study/load.py +38 -8
  8. {masster-0.3.0 → masster-0.3.2}/src/masster/study/plot.py +62 -15
  9. {masster-0.3.0 → masster-0.3.2}/src/masster/study/save.py +22 -10
  10. {masster-0.3.0 → masster-0.3.2}/src/masster/study/study.py +11 -5
  11. {masster-0.3.0 → masster-0.3.2}/src/masster/study/study5_schema.json +6 -0
  12. {masster-0.3.0 → masster-0.3.2}/tests/test_chromatogram.py +15 -10
  13. {masster-0.3.0 → masster-0.3.2}/uv.lock +1 -1
  14. {masster-0.3.0 → masster-0.3.2}/.github/workflows/publish.yml +0 -0
  15. {masster-0.3.0 → masster-0.3.2}/.github/workflows/security.yml +0 -0
  16. {masster-0.3.0 → masster-0.3.2}/.github/workflows/test.yml +0 -0
  17. {masster-0.3.0 → masster-0.3.2}/.gitignore +0 -0
  18. {masster-0.3.0 → masster-0.3.2}/.pre-commit-config.yaml +0 -0
  19. {masster-0.3.0 → masster-0.3.2}/LICENSE +0 -0
  20. {masster-0.3.0 → masster-0.3.2}/Makefile +0 -0
  21. {masster-0.3.0 → masster-0.3.2}/README.md +0 -0
  22. {masster-0.3.0 → masster-0.3.2}/TESTING.md +0 -0
  23. {masster-0.3.0 → masster-0.3.2}/demo/example_batch_process.py +0 -0
  24. {masster-0.3.0 → masster-0.3.2}/demo/example_sample_process.py +0 -0
  25. {masster-0.3.0 → masster-0.3.2}/src/masster/__init__.py +0 -0
  26. {masster-0.3.0 → masster-0.3.2}/src/masster/_version.py +0 -0
  27. {masster-0.3.0 → masster-0.3.2}/src/masster/chromatogram.py +0 -0
  28. {masster-0.3.0 → masster-0.3.2}/src/masster/data/examples/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.featureXML +0 -0
  29. {masster-0.3.0 → masster-0.3.2}/src/masster/data/examples/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.mzML +0 -0
  30. {masster-0.3.0 → masster-0.3.2}/src/masster/data/examples/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.sample5 +0 -0
  31. {masster-0.3.0 → masster-0.3.2}/src/masster/data/examples/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.timeseries.data +0 -0
  32. {masster-0.3.0 → masster-0.3.2}/src/masster/data/examples/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff +0 -0
  33. {masster-0.3.0 → masster-0.3.2}/src/masster/data/examples/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff.scan +0 -0
  34. {masster-0.3.0 → masster-0.3.2}/src/masster/data/examples/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff2 +0 -0
  35. {masster-0.3.0 → masster-0.3.2}/src/masster/logger.py +0 -0
  36. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/__init__.py +0 -0
  37. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/defaults/__init__.py +0 -0
  38. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/defaults/find_adducts_def.py +0 -0
  39. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/defaults/find_features_def.py +0 -0
  40. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/defaults/find_ms2_def.py +0 -0
  41. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/defaults/get_spectrum_def.py +0 -0
  42. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/defaults/sample_def.py +0 -0
  43. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/h5.py +0 -0
  44. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/helpers.py +0 -0
  45. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/lib.py +0 -0
  46. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/load.py +0 -0
  47. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/parameters.py +0 -0
  48. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/processing.py +0 -0
  49. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/quant.py +0 -0
  50. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/sample5_schema.json +0 -0
  51. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/save.py +0 -0
  52. {masster-0.3.0 → masster-0.3.2}/src/masster/sample/sciex.py +0 -0
  53. {masster-0.3.0 → masster-0.3.2}/src/masster/spectrum.py +0 -0
  54. {masster-0.3.0 → masster-0.3.2}/src/masster/study/__init__.py +0 -0
  55. {masster-0.3.0 → masster-0.3.2}/src/masster/study/defaults/__init__.py +0 -0
  56. {masster-0.3.0 → masster-0.3.2}/src/masster/study/defaults/align_def.py +0 -0
  57. {masster-0.3.0 → masster-0.3.2}/src/masster/study/defaults/export_def.py +0 -0
  58. {masster-0.3.0 → masster-0.3.2}/src/masster/study/defaults/fill_chrom_def.py +0 -0
  59. {masster-0.3.0 → masster-0.3.2}/src/masster/study/defaults/fill_def.py +0 -0
  60. {masster-0.3.0 → masster-0.3.2}/src/masster/study/defaults/find_consensus_def.py +0 -0
  61. {masster-0.3.0 → masster-0.3.2}/src/masster/study/defaults/find_ms2_def.py +0 -0
  62. {masster-0.3.0 → masster-0.3.2}/src/masster/study/defaults/integrate_chrom_def.py +0 -0
  63. {masster-0.3.0 → masster-0.3.2}/src/masster/study/defaults/integrate_def.py +0 -0
  64. {masster-0.3.0 → masster-0.3.2}/src/masster/study/defaults/merge_def.py +0 -0
  65. {masster-0.3.0 → masster-0.3.2}/src/masster/study/defaults/study_def.py +0 -0
  66. {masster-0.3.0 → masster-0.3.2}/src/masster/study/export.py +0 -0
  67. {masster-0.3.0 → masster-0.3.2}/src/masster/study/helpers_optimized.py +0 -0
  68. {masster-0.3.0 → masster-0.3.2}/src/masster/study/parameters.py +0 -0
  69. {masster-0.3.0 → masster-0.3.2}/src/masster/study/processing.py +0 -0
  70. {masster-0.3.0 → masster-0.3.2}/tests/conftest.py +0 -0
  71. {masster-0.3.0 → masster-0.3.2}/tests/test_defaults.py +0 -0
  72. {masster-0.3.0 → masster-0.3.2}/tests/test_imports.py +0 -0
  73. {masster-0.3.0 → masster-0.3.2}/tests/test_integration.py +0 -0
  74. {masster-0.3.0 → masster-0.3.2}/tests/test_logger.py +0 -0
  75. {masster-0.3.0 → masster-0.3.2}/tests/test_parameters.py +0 -0
  76. {masster-0.3.0 → masster-0.3.2}/tests/test_sample.py +0 -0
  77. {masster-0.3.0 → masster-0.3.2}/tests/test_spectrum.py +0 -0
  78. {masster-0.3.0 → masster-0.3.2}/tests/test_study.py +0 -0
  79. {masster-0.3.0 → masster-0.3.2}/tests/test_version.py +0 -0
  80. {masster-0.3.0 → masster-0.3.2}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: masster
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: Mass spectrometry data analysis package
5
5
  Project-URL: homepage, https://github.com/zamboni-lab/masster
6
6
  Project-URL: repository, https://github.com/zamboni-lab/masster
@@ -1,141 +1,141 @@
1
-
2
- [project]
3
- name = "masster"
4
- version = "0.3.0"
5
- description = "Mass spectrometry data analysis package"
6
- authors = [
7
- { name = "Zamboni Lab" }
8
- ]
9
- license = { file = "LICENSE" }
10
- readme = "README.md"
11
- requires-python = ">=3.11"
12
- keywords = ["mass spectrometry", "metabolomics", "lc-ms", "chromatography"]
13
- classifiers = [
14
- "Development Status :: 3 - Alpha",
15
- "Intended Audience :: Science/Research",
16
- "License :: OSI Approved :: GNU Affero General Public License v3",
17
- "Operating System :: OS Independent",
18
- "Programming Language :: Python :: 3",
19
- "Programming Language :: Python :: 3.11",
20
- "Programming Language :: Python :: 3.12",
21
- "Programming Language :: Python :: 3.13",
22
- "Topic :: Scientific/Engineering :: Bio-Informatics",
23
- "Topic :: Scientific/Engineering :: Chemistry"
24
- ]
25
- urls.homepage = "https://github.com/zamboni-lab/masster"
26
- urls.repository = "https://github.com/zamboni-lab/masster"
27
- urls.documentation = "https://github.com/zamboni-lab/masster#readme"
28
- dependencies = [
29
- "alphabase>=1.0.0",
30
- "alpharaw>=0.4.8",
31
- "altair>=5.5.0",
32
- "bokeh>=3.7.3",
33
- "datashader>=0.18.1",
34
- "python-dotenv>=1.0.0",
35
- "holoviews>=1.21.0",
36
- "h5py>=3.14.0",
37
- "hvplot>=0.11.3",
38
- "loguru>=0.7.3",
39
- "numpy>=2.0.0",
40
- "marimo>=0.14.16",
41
- "matchms>=0.30.2",
42
- "matplotlib>=3.8.0",
43
- "pandas>=2.2.0",
44
- "panel>=1.7.0",
45
- "plotly>=5.15.0",
46
- "polars>=1.0.0",
47
- "pyopenms>=3.3.0",
48
- "pyteomics>=4.7.0",
49
- "pythonnet>=3.0.0",
50
- "scipy>=1.12.0",
51
- "simple-parsing>=0.1.7",
52
- "tqdm>=4.65.0",
53
- "ipykernel>=6.30.0",
54
- "openpyxl>=3.1.5",
55
- ]
56
-
57
- [project.optional-dependencies]
58
- dev = [
59
- "pytest>=7.0.0",
60
- "pytest-cov>=4.0.0",
61
- "pytest-mock>=3.10.0",
62
- "black>=23.0.0",
63
- "flake8>=5.0.0",
64
- "mypy>=1.0.0",
65
- "pre-commit>=3.0.0",
66
- "twine>=4.0.0",
67
- "build>=0.10.0",
68
- "safety>=2.0.0",
69
- "bandit>=1.7.0"
70
- ]
71
- docs = [
72
- "sphinx>=5.0.0",
73
- "sphinx-rtd-theme>=1.2.0",
74
- "sphinxcontrib-napoleon>=0.7"
75
- ]
76
- test = [
77
- "pytest>=7.0.0",
78
- "pytest-cov>=4.0.0",
79
- "pytest-mock>=3.10.0",
80
- "coverage>=7.0.0"
81
- ]
82
-
83
- [project.scripts]
84
- masster-version = "masster._version:main"
85
-
86
- [build-system]
87
- requires = ["hatchling>=1.18.0"]
88
- build-backend = "hatchling.build"
89
-
90
- # Testing configuration
91
- [tool.pytest.ini_options]
92
- testpaths = ["tests"]
93
- python_files = ["test_*.py"]
94
- python_classes = ["Test*"]
95
- python_functions = ["test_*"]
96
- addopts = [
97
- "--strict-markers",
98
- "--strict-config",
99
- "--verbose",
100
- "--cov=masster",
101
- "--cov-report=term-missing",
102
- "--cov-report=html",
103
- "--cov-report=xml",
104
- ]
105
- markers = [
106
- "slow: marks tests as slow (deselect with '-m \"not slow\"')",
107
- "integration: marks tests as integration tests",
108
- ]
109
- filterwarnings = [
110
- "error",
111
- "ignore::UserWarning",
112
- "ignore::DeprecationWarning",
113
- ]
114
-
115
- # Coverage configuration
116
- [tool.coverage.run]
117
- source = ["masster"]
118
- omit = [
119
- "*/tests/*",
120
- "*/test_*.py",
121
- "masster/_version.py",
122
- ]
123
-
124
- [tool.coverage.report]
125
- exclude_lines = [
126
- "pragma: no cover",
127
- "def __repr__",
128
- "raise AssertionError",
129
- "raise NotImplementedError",
130
- "if __name__ == .__main__.:",
131
- "if TYPE_CHECKING:",
132
- ]
133
-
134
- # Black configuration
135
- [tool.black]
136
- line-length = 88
137
- target-version = ['py311']
138
- include = '\.pyi?$'
1
+
2
+ [project]
3
+ name = "masster"
4
+ version = "0.3.2"
5
+ description = "Mass spectrometry data analysis package"
6
+ authors = [
7
+ { name = "Zamboni Lab" }
8
+ ]
9
+ license = { file = "LICENSE" }
10
+ readme = "README.md"
11
+ requires-python = ">=3.11"
12
+ keywords = ["mass spectrometry", "metabolomics", "lc-ms", "chromatography"]
13
+ classifiers = [
14
+ "Development Status :: 3 - Alpha",
15
+ "Intended Audience :: Science/Research",
16
+ "License :: OSI Approved :: GNU Affero General Public License v3",
17
+ "Operating System :: OS Independent",
18
+ "Programming Language :: Python :: 3",
19
+ "Programming Language :: Python :: 3.11",
20
+ "Programming Language :: Python :: 3.12",
21
+ "Programming Language :: Python :: 3.13",
22
+ "Topic :: Scientific/Engineering :: Bio-Informatics",
23
+ "Topic :: Scientific/Engineering :: Chemistry"
24
+ ]
25
+ urls.homepage = "https://github.com/zamboni-lab/masster"
26
+ urls.repository = "https://github.com/zamboni-lab/masster"
27
+ urls.documentation = "https://github.com/zamboni-lab/masster#readme"
28
+ dependencies = [
29
+ "alphabase>=1.0.0",
30
+ "alpharaw>=0.4.8",
31
+ "altair>=5.5.0",
32
+ "bokeh>=3.7.3",
33
+ "datashader>=0.18.1",
34
+ "python-dotenv>=1.0.0",
35
+ "holoviews>=1.21.0",
36
+ "h5py>=3.14.0",
37
+ "hvplot>=0.11.3",
38
+ "loguru>=0.7.3",
39
+ "numpy>=2.0.0",
40
+ "marimo>=0.14.16",
41
+ "matchms>=0.30.2",
42
+ "matplotlib>=3.8.0",
43
+ "pandas>=2.2.0",
44
+ "panel>=1.7.0",
45
+ "plotly>=5.15.0",
46
+ "polars>=1.0.0",
47
+ "pyopenms>=3.3.0",
48
+ "pyteomics>=4.7.0",
49
+ "pythonnet>=3.0.0",
50
+ "scipy>=1.12.0",
51
+ "simple-parsing>=0.1.7",
52
+ "tqdm>=4.65.0",
53
+ "ipykernel>=6.30.0",
54
+ "openpyxl>=3.1.5",
55
+ ]
56
+
57
+ [project.optional-dependencies]
58
+ dev = [
59
+ "pytest>=7.0.0",
60
+ "pytest-cov>=4.0.0",
61
+ "pytest-mock>=3.10.0",
62
+ "black>=23.0.0",
63
+ "flake8>=5.0.0",
64
+ "mypy>=1.0.0",
65
+ "pre-commit>=3.0.0",
66
+ "twine>=4.0.0",
67
+ "build>=0.10.0",
68
+ "safety>=2.0.0",
69
+ "bandit>=1.7.0"
70
+ ]
71
+ docs = [
72
+ "sphinx>=5.0.0",
73
+ "sphinx-rtd-theme>=1.2.0",
74
+ "sphinxcontrib-napoleon>=0.7"
75
+ ]
76
+ test = [
77
+ "pytest>=7.0.0",
78
+ "pytest-cov>=4.0.0",
79
+ "pytest-mock>=3.10.0",
80
+ "coverage>=7.0.0"
81
+ ]
82
+
83
+ [project.scripts]
84
+ masster-version = "masster._version:main"
85
+
86
+ [build-system]
87
+ requires = ["hatchling>=1.18.0"]
88
+ build-backend = "hatchling.build"
89
+
90
+ # Testing configuration
91
+ [tool.pytest.ini_options]
92
+ testpaths = ["tests"]
93
+ python_files = ["test_*.py"]
94
+ python_classes = ["Test*"]
95
+ python_functions = ["test_*"]
96
+ addopts = [
97
+ "--strict-markers",
98
+ "--strict-config",
99
+ "--verbose",
100
+ "--cov=masster",
101
+ "--cov-report=term-missing",
102
+ "--cov-report=html",
103
+ "--cov-report=xml",
104
+ ]
105
+ markers = [
106
+ "slow: marks tests as slow (deselect with '-m \"not slow\"')",
107
+ "integration: marks tests as integration tests",
108
+ ]
109
+ filterwarnings = [
110
+ "error",
111
+ "ignore::UserWarning",
112
+ "ignore::DeprecationWarning",
113
+ ]
114
+
115
+ # Coverage configuration
116
+ [tool.coverage.run]
117
+ source = ["masster"]
118
+ omit = [
119
+ "*/tests/*",
120
+ "*/test_*.py",
121
+ "masster/_version.py",
122
+ ]
123
+
124
+ [tool.coverage.report]
125
+ exclude_lines = [
126
+ "pragma: no cover",
127
+ "def __repr__",
128
+ "raise AssertionError",
129
+ "raise NotImplementedError",
130
+ "if __name__ == .__main__.:",
131
+ "if TYPE_CHECKING:",
132
+ ]
133
+
134
+ # Black configuration
135
+ [tool.black]
136
+ line-length = 88
137
+ target-version = ['py311']
138
+ include = '\.pyi?$'
139
139
  extend-exclude = '''
140
140
  /(
141
141
  # directories
@@ -148,42 +148,42 @@ extend-exclude = '''
148
148
  | build
149
149
  | dist
150
150
  )/
151
- '''
152
-
153
- # MyPy configuration
154
- [tool.mypy]
155
- python_version = "3.11"
156
- warn_return_any = true
157
- warn_unused_configs = true
158
- disallow_untyped_defs = false
159
- disallow_incomplete_defs = false
160
- check_untyped_defs = true
161
- disallow_untyped_decorators = false
162
- no_implicit_optional = true
163
- warn_redundant_casts = true
164
- warn_unused_ignores = true
165
- warn_no_return = true
166
- warn_unreachable = true
167
- strict_equality = true
168
- ignore_missing_imports = true
169
-
170
- # Flake8 configuration
171
- [tool.flake8]
172
- max-line-length = 88
173
- extend-ignore = ["E203", "W503"]
174
- exclude = [
175
- ".git",
176
- "__pycache__",
177
- "docs",
178
- "build",
179
- "dist",
180
- ".eggs",
181
- "*.egg-info",
182
- ".venv",
183
- "venv",
184
- ]
185
-
186
- # Bandit configuration
187
- [tool.bandit]
188
- exclude_dirs = ["tests"]
189
- skips = ["B101", "B601"]
151
+ '''
152
+
153
+ # MyPy configuration
154
+ [tool.mypy]
155
+ python_version = "3.11"
156
+ warn_return_any = true
157
+ warn_unused_configs = true
158
+ disallow_untyped_defs = false
159
+ disallow_incomplete_defs = false
160
+ check_untyped_defs = true
161
+ disallow_untyped_decorators = false
162
+ no_implicit_optional = true
163
+ warn_redundant_casts = true
164
+ warn_unused_ignores = true
165
+ warn_no_return = true
166
+ warn_unreachable = true
167
+ strict_equality = true
168
+ ignore_missing_imports = true
169
+
170
+ # Flake8 configuration
171
+ [tool.flake8]
172
+ max-line-length = 88
173
+ extend-ignore = ["E203", "W503"]
174
+ exclude = [
175
+ ".git",
176
+ "__pycache__",
177
+ "docs",
178
+ "build",
179
+ "dist",
180
+ ".eggs",
181
+ "*.egg-info",
182
+ ".venv",
183
+ "venv",
184
+ ]
185
+
186
+ # Bandit configuration
187
+ [tool.bandit]
188
+ exclude_dirs = ["tests"]
189
+ skips = ["B101", "B601"]