masster 0.5.24__tar.gz → 0.5.25__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.
- {masster-0.5.24 → masster-0.5.25}/PKG-INFO +1 -2
- {masster-0.5.24 → masster-0.5.25}/pyproject.toml +1 -2
- {masster-0.5.24 → masster-0.5.25}/src/masster/_version.py +1 -1
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/export.py +26 -2
- {masster-0.5.24 → masster-0.5.25}/uv.lock +1 -39
- {masster-0.5.24 → masster-0.5.25}/.github/workflows/publish.yml +0 -0
- {masster-0.5.24 → masster-0.5.25}/.github/workflows/security.yml +0 -0
- {masster-0.5.24 → masster-0.5.25}/.github/workflows/test.yml +0 -0
- {masster-0.5.24 → masster-0.5.25}/.gitignore +0 -0
- {masster-0.5.24 → masster-0.5.25}/.pre-commit-config.yaml +0 -0
- {masster-0.5.24 → masster-0.5.25}/LICENSE +0 -0
- {masster-0.5.24 → masster-0.5.25}/Makefile +0 -0
- {masster-0.5.24 → masster-0.5.25}/README.md +0 -0
- {masster-0.5.24 → masster-0.5.25}/demo/example_batch_process.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/demo/example_sample_process.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/__init__.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/chromatogram.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/data/libs/aa.csv +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/data/libs/ccm.csv +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/data/libs/urine.csv +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.timeseries.data +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff.scan +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff2 +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/lib/__init__.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/lib/lib.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/logger.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/__init__.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/adducts.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/defaults/__init__.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/defaults/find_adducts_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/defaults/find_features_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/defaults/find_ms2_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/defaults/get_spectrum_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/defaults/sample_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/h5.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/helpers.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/lib.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/load.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/parameters.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/plot.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/processing.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/quant.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/sample.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/sample5_schema.json +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/save.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/sciex.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/sample/thermo.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/spectrum.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/__init__.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/analysis.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/defaults/__init__.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/defaults/align_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/defaults/export_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/defaults/fill_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/defaults/find_consensus_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/defaults/find_ms2_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/defaults/identify_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/defaults/integrate_chrom_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/defaults/integrate_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/defaults/merge_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/defaults/study_def.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/h5.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/helpers.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/id.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/importers.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/load.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/merge.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/parameters.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/plot.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/processing.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/save.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/study.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/study/study5_schema.json +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/wizard/__init__.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/src/masster/wizard/wizard.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/tests/conftest.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/tests/test_chromatogram.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/tests/test_defaults.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/tests/test_imports.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/tests/test_integration.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/tests/test_logger.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/tests/test_parameters.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/tests/test_sample.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/tests/test_spectrum.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/tests/test_study.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/tests/test_version.py +0 -0
- {masster-0.5.24 → masster-0.5.25}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: masster
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.25
|
|
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
|
|
@@ -684,7 +684,6 @@ Requires-Dist: alpharaw>=0.4.8
|
|
|
684
684
|
Requires-Dist: bokeh>=3.7.3
|
|
685
685
|
Requires-Dist: cmap>=0.6.2
|
|
686
686
|
Requires-Dist: datashader>=0.18.1
|
|
687
|
-
Requires-Dist: get-gecko-driver>=1.4
|
|
688
687
|
Requires-Dist: h5py>=3.14.0
|
|
689
688
|
Requires-Dist: hdbscan>=0.8.40
|
|
690
689
|
Requires-Dist: holoviews>=1.21.0
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
[project]
|
|
3
3
|
name = "masster"
|
|
4
|
-
version = "0.5.
|
|
4
|
+
version = "0.5.25"
|
|
5
5
|
description = "Mass spectrometry data analysis package"
|
|
6
6
|
authors = [
|
|
7
7
|
{ name = "Zamboni Lab" }
|
|
@@ -47,7 +47,6 @@ dependencies = [
|
|
|
47
47
|
"scikit-learn>=1.7.1",
|
|
48
48
|
"umap-learn>=0.5.9.post2",
|
|
49
49
|
"hdbscan>=0.8.40",
|
|
50
|
-
"get-gecko-driver>=1.4",
|
|
51
50
|
"webdriver-manager>=4.0.2",
|
|
52
51
|
]
|
|
53
52
|
|
|
@@ -1305,10 +1305,34 @@ def export_parquet(self, filename: str | None = None) -> None:
|
|
|
1305
1305
|
if self.consensus_df is not None and not self.consensus_df.is_empty():
|
|
1306
1306
|
consensus_file = f"{filename}_consensus.parquet"
|
|
1307
1307
|
try:
|
|
1308
|
-
|
|
1308
|
+
# Create a copy of consensus_df for parquet export
|
|
1309
|
+
consensus_export_df = self.consensus_df.clone()
|
|
1310
|
+
|
|
1311
|
+
# Handle Object dtype columns that can't be serialized to parquet
|
|
1312
|
+
for col in consensus_export_df.columns:
|
|
1313
|
+
if consensus_export_df[col].dtype == pl.Object:
|
|
1314
|
+
if col == "iso":
|
|
1315
|
+
# Convert numpy arrays to string representation for parquet compatibility
|
|
1316
|
+
# This preserves the data while making it parquet-serializable
|
|
1317
|
+
consensus_export_df = consensus_export_df.with_columns([
|
|
1318
|
+
pl.col("iso").map_elements(
|
|
1319
|
+
lambda x: str(x.tolist()) if x is not None else None,
|
|
1320
|
+
return_dtype=pl.String
|
|
1321
|
+
).alias("iso")
|
|
1322
|
+
])
|
|
1323
|
+
else:
|
|
1324
|
+
# For other Object columns, convert to string representation
|
|
1325
|
+
consensus_export_df = consensus_export_df.with_columns([
|
|
1326
|
+
pl.col(col).map_elements(
|
|
1327
|
+
lambda x: str(x) if x is not None else None,
|
|
1328
|
+
return_dtype=pl.String
|
|
1329
|
+
).alias(col)
|
|
1330
|
+
])
|
|
1331
|
+
|
|
1332
|
+
consensus_export_df.write_parquet(consensus_file)
|
|
1309
1333
|
exported_files.append(consensus_file)
|
|
1310
1334
|
self.logger.debug(
|
|
1311
|
-
f"Exported consensus to {consensus_file} ({
|
|
1335
|
+
f"Exported consensus to {consensus_file} ({consensus_export_df.height} rows)",
|
|
1312
1336
|
)
|
|
1313
1337
|
except Exception as e:
|
|
1314
1338
|
self.logger.error(f"Error writing consensus parquet file: {e}")
|
|
@@ -147,18 +147,6 @@ wheels = [
|
|
|
147
147
|
{ url = "https://files.pythonhosted.org/packages/48/ca/ba5f909b40ea12ec542d5d7bdd13ee31c4d65f3beed20211ef81c18fa1f3/bandit-1.8.6-py3-none-any.whl", hash = "sha256:3348e934d736fcdb68b6aa4030487097e23a501adf3e7827b63658df464dddd0", size = 133808, upload-time = "2025-07-06T03:10:49.134Z" },
|
|
148
148
|
]
|
|
149
149
|
|
|
150
|
-
[[package]]
|
|
151
|
-
name = "beautifulsoup4"
|
|
152
|
-
version = "4.12.3"
|
|
153
|
-
source = { registry = "https://pypi.org/simple" }
|
|
154
|
-
dependencies = [
|
|
155
|
-
{ name = "soupsieve" },
|
|
156
|
-
]
|
|
157
|
-
sdist = { url = "https://files.pythonhosted.org/packages/b3/ca/824b1195773ce6166d388573fc106ce56d4a805bd7427b624e063596ec58/beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", size = 581181, upload-time = "2024-01-17T16:53:17.902Z" }
|
|
158
|
-
wheels = [
|
|
159
|
-
{ url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed", size = 147925, upload-time = "2024-01-17T16:53:12.779Z" },
|
|
160
|
-
]
|
|
161
|
-
|
|
162
150
|
[[package]]
|
|
163
151
|
name = "biopython"
|
|
164
152
|
version = "1.85"
|
|
@@ -848,21 +836,6 @@ wheels = [
|
|
|
848
836
|
{ url = "https://files.pythonhosted.org/packages/c7/93/0dd45cd283c32dea1545151d8c3637b4b8c53cdb3a625aeb2885b184d74d/fonttools-4.60.1-py3-none-any.whl", hash = "sha256:906306ac7afe2156fcf0042173d6ebbb05416af70f6b370967b47f8f00103bbb", size = 1143175, upload-time = "2025-09-29T21:13:24.134Z" },
|
|
849
837
|
]
|
|
850
838
|
|
|
851
|
-
[[package]]
|
|
852
|
-
name = "get-gecko-driver"
|
|
853
|
-
version = "1.4"
|
|
854
|
-
source = { registry = "https://pypi.org/simple" }
|
|
855
|
-
dependencies = [
|
|
856
|
-
{ name = "beautifulsoup4" },
|
|
857
|
-
{ name = "requests" },
|
|
858
|
-
{ name = "typer" },
|
|
859
|
-
{ name = "urllib3" },
|
|
860
|
-
]
|
|
861
|
-
sdist = { url = "https://files.pythonhosted.org/packages/94/81/79dc8fce839822b53852ef543c529e170593fc42874162dfe2cd9bfb83a9/get_gecko_driver-1.4.tar.gz", hash = "sha256:0a023816dacb363200ae7546e7f75104cae5f22d7f2946cff600b13395c2c5aa", size = 10000, upload-time = "2025-01-24T02:23:28.734Z" }
|
|
862
|
-
wheels = [
|
|
863
|
-
{ url = "https://files.pythonhosted.org/packages/5e/f8/2ffa13fd3c26feeec4caa44829e0ea585b95d5111f03d4523e71b15596bc/get_gecko_driver-1.4-py3-none-any.whl", hash = "sha256:67ee0528e85c842ca92b9a2052a39a8940d4196b82ec4b407dbed2a424674e76", size = 11151, upload-time = "2025-01-24T02:23:27.185Z" },
|
|
864
|
-
]
|
|
865
|
-
|
|
866
839
|
[[package]]
|
|
867
840
|
name = "h11"
|
|
868
841
|
version = "0.16.0"
|
|
@@ -1473,14 +1446,13 @@ wheels = [
|
|
|
1473
1446
|
|
|
1474
1447
|
[[package]]
|
|
1475
1448
|
name = "masster"
|
|
1476
|
-
version = "0.5.
|
|
1449
|
+
version = "0.5.25"
|
|
1477
1450
|
source = { editable = "." }
|
|
1478
1451
|
dependencies = [
|
|
1479
1452
|
{ name = "alpharaw" },
|
|
1480
1453
|
{ name = "bokeh" },
|
|
1481
1454
|
{ name = "cmap" },
|
|
1482
1455
|
{ name = "datashader" },
|
|
1483
|
-
{ name = "get-gecko-driver" },
|
|
1484
1456
|
{ name = "h5py" },
|
|
1485
1457
|
{ name = "hdbscan" },
|
|
1486
1458
|
{ name = "holoviews" },
|
|
@@ -1538,7 +1510,6 @@ requires-dist = [
|
|
|
1538
1510
|
{ name = "coverage", marker = "extra == 'test'", specifier = ">=7.0.0" },
|
|
1539
1511
|
{ name = "datashader", specifier = ">=0.18.1" },
|
|
1540
1512
|
{ name = "flake8", marker = "extra == 'dev'", specifier = ">=5.0.0" },
|
|
1541
|
-
{ name = "get-gecko-driver", specifier = ">=1.4" },
|
|
1542
1513
|
{ name = "h5py", specifier = ">=3.14.0" },
|
|
1543
1514
|
{ name = "hdbscan", specifier = ">=0.8.40" },
|
|
1544
1515
|
{ name = "holoviews", specifier = ">=1.21.0" },
|
|
@@ -3149,15 +3120,6 @@ wheels = [
|
|
|
3149
3120
|
{ url = "https://files.pythonhosted.org/packages/c8/78/3565d011c61f5a43488987ee32b6f3f656e7f107ac2782dd57bdd7d91d9a/snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064", size = 103274, upload-time = "2025-05-09T16:34:50.371Z" },
|
|
3150
3121
|
]
|
|
3151
3122
|
|
|
3152
|
-
[[package]]
|
|
3153
|
-
name = "soupsieve"
|
|
3154
|
-
version = "2.8"
|
|
3155
|
-
source = { registry = "https://pypi.org/simple" }
|
|
3156
|
-
sdist = { url = "https://files.pythonhosted.org/packages/6d/e6/21ccce3262dd4889aa3332e5a119a3491a95e8f60939870a3a035aabac0d/soupsieve-2.8.tar.gz", hash = "sha256:e2dd4a40a628cb5f28f6d4b0db8800b8f581b65bb380b97de22ba5ca8d72572f", size = 103472, upload-time = "2025-08-27T15:39:51.78Z" }
|
|
3157
|
-
wheels = [
|
|
3158
|
-
{ url = "https://files.pythonhosted.org/packages/14/a0/bb38d3b76b8cae341dad93a2dd83ab7462e6dbcdd84d43f54ee60a8dc167/soupsieve-2.8-py3-none-any.whl", hash = "sha256:0cc76456a30e20f5d7f2e14a98a4ae2ee4e5abdc7c5ea0aafe795f344bc7984c", size = 36679, upload-time = "2025-08-27T15:39:50.179Z" },
|
|
3159
|
-
]
|
|
3160
|
-
|
|
3161
3123
|
[[package]]
|
|
3162
3124
|
name = "sphinx"
|
|
3163
3125
|
version = "8.2.3"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|