masster 0.4.4__tar.gz → 0.4.5__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 (77) hide show
  1. {masster-0.4.4/src/masster.egg-info → masster-0.4.5}/PKG-INFO +3 -1
  2. {masster-0.4.4 → masster-0.4.5}/pyproject.toml +3 -1
  3. {masster-0.4.4 → masster-0.4.5}/src/masster/__init__.py +8 -8
  4. {masster-0.4.4 → masster-0.4.5}/src/masster/chromatogram.py +1 -1
  5. {masster-0.4.4 → masster-0.4.5}/src/masster/data/libs/urine.csv +3 -3
  6. {masster-0.4.4 → masster-0.4.5}/src/masster/logger.py +11 -11
  7. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/__init__.py +1 -1
  8. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/adducts.py +338 -264
  9. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/defaults/find_adducts_def.py +21 -8
  10. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/h5.py +561 -282
  11. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/helpers.py +131 -75
  12. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/lib.py +4 -4
  13. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/load.py +31 -17
  14. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/parameters.py +1 -1
  15. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/plot.py +7 -7
  16. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/processing.py +117 -87
  17. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/sample.py +103 -90
  18. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/sample5_schema.json +44 -44
  19. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/save.py +35 -12
  20. {masster-0.4.4 → masster-0.4.5}/src/masster/spectrum.py +1 -1
  21. {masster-0.4.4 → masster-0.4.5}/src/masster/study/__init__.py +1 -1
  22. {masster-0.4.4 → masster-0.4.5}/src/masster/study/defaults/align_def.py +5 -1
  23. {masster-0.4.4 → masster-0.4.5}/src/masster/study/defaults/identify_def.py +3 -1
  24. {masster-0.4.4 → masster-0.4.5}/src/masster/study/defaults/study_def.py +58 -25
  25. {masster-0.4.4 → masster-0.4.5}/src/masster/study/export.py +360 -210
  26. {masster-0.4.4 → masster-0.4.5}/src/masster/study/h5.py +560 -158
  27. {masster-0.4.4 → masster-0.4.5}/src/masster/study/helpers.py +496 -203
  28. {masster-0.4.4 → masster-0.4.5}/src/masster/study/helpers_optimized.py +1 -1
  29. {masster-0.4.4 → masster-0.4.5}/src/masster/study/id.py +538 -349
  30. {masster-0.4.4 → masster-0.4.5}/src/masster/study/load.py +233 -143
  31. {masster-0.4.4 → masster-0.4.5}/src/masster/study/plot.py +71 -71
  32. {masster-0.4.4 → masster-0.4.5}/src/masster/study/processing.py +456 -254
  33. {masster-0.4.4 → masster-0.4.5}/src/masster/study/save.py +15 -5
  34. {masster-0.4.4 → masster-0.4.5}/src/masster/study/study.py +213 -131
  35. {masster-0.4.4 → masster-0.4.5}/src/masster/study/study5_schema.json +149 -149
  36. {masster-0.4.4 → masster-0.4.5/src/masster.egg-info}/PKG-INFO +3 -1
  37. {masster-0.4.4 → masster-0.4.5}/src/masster.egg-info/requires.txt +2 -0
  38. {masster-0.4.4 → masster-0.4.5}/LICENSE +0 -0
  39. {masster-0.4.4 → masster-0.4.5}/MANIFEST.in +0 -0
  40. {masster-0.4.4 → masster-0.4.5}/README.md +0 -0
  41. {masster-0.4.4 → masster-0.4.5}/setup.cfg +0 -0
  42. {masster-0.4.4 → masster-0.4.5}/src/masster/_version.py +0 -0
  43. {masster-0.4.4 → masster-0.4.5}/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
  44. {masster-0.4.4 → masster-0.4.5}/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
  45. {masster-0.4.4 → masster-0.4.5}/src/masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_MS1_C-MiLUT_C008_v6_r38_01.sample5 +0 -0
  46. {masster-0.4.4 → masster-0.4.5}/src/masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_MS1_C-MiLUT_C008_v7_r37_01.sample5 +0 -0
  47. {masster-0.4.4 → masster-0.4.5}/src/masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_MS1_C-MiLUT_C017_v5_r99_01.sample5 +0 -0
  48. {masster-0.4.4 → masster-0.4.5}/src/masster/data/libs/__pycache__/ccm.cpython-312.pyc +0 -0
  49. {masster-0.4.4 → masster-0.4.5}/src/masster/data/libs/__pycache__/urine.cpython-312.pyc +0 -0
  50. {masster-0.4.4 → masster-0.4.5}/src/masster/data/libs/ccm.csv +0 -0
  51. {masster-0.4.4 → masster-0.4.5}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.timeseries.data +0 -0
  52. {masster-0.4.4 → masster-0.4.5}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff +0 -0
  53. {masster-0.4.4 → masster-0.4.5}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff.scan +0 -0
  54. {masster-0.4.4 → masster-0.4.5}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff2 +0 -0
  55. {masster-0.4.4 → masster-0.4.5}/src/masster/lib/__init__.py +0 -0
  56. {masster-0.4.4 → masster-0.4.5}/src/masster/lib/lib.py +0 -0
  57. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/defaults/__init__.py +0 -0
  58. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/defaults/find_features_def.py +0 -0
  59. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/defaults/find_ms2_def.py +0 -0
  60. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/defaults/get_spectrum_def.py +0 -0
  61. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/defaults/sample_def.py +0 -0
  62. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/quant.py +0 -0
  63. {masster-0.4.4 → masster-0.4.5}/src/masster/sample/sciex.py +0 -0
  64. {masster-0.4.4 → masster-0.4.5}/src/masster/study/defaults/__init__.py +0 -0
  65. {masster-0.4.4 → masster-0.4.5}/src/masster/study/defaults/export_def.py +0 -0
  66. {masster-0.4.4 → masster-0.4.5}/src/masster/study/defaults/fill_chrom_def.py +0 -0
  67. {masster-0.4.4 → masster-0.4.5}/src/masster/study/defaults/fill_def.py +0 -0
  68. {masster-0.4.4 → masster-0.4.5}/src/masster/study/defaults/find_consensus_def.py +0 -0
  69. {masster-0.4.4 → masster-0.4.5}/src/masster/study/defaults/find_ms2_def.py +0 -0
  70. {masster-0.4.4 → masster-0.4.5}/src/masster/study/defaults/integrate_chrom_def.py +0 -0
  71. {masster-0.4.4 → masster-0.4.5}/src/masster/study/defaults/integrate_def.py +0 -0
  72. {masster-0.4.4 → masster-0.4.5}/src/masster/study/defaults/merge_def.py +0 -0
  73. {masster-0.4.4 → masster-0.4.5}/src/masster/study/parameters.py +0 -0
  74. {masster-0.4.4 → masster-0.4.5}/src/masster.egg-info/SOURCES.txt +0 -0
  75. {masster-0.4.4 → masster-0.4.5}/src/masster.egg-info/dependency_links.txt +0 -0
  76. {masster-0.4.4 → masster-0.4.5}/src/masster.egg-info/entry_points.txt +0 -0
  77. {masster-0.4.4 → masster-0.4.5}/src/masster.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: masster
3
- Version: 0.4.4
3
+ Version: 0.4.5
4
4
  Summary: Mass spectrometry data analysis package
5
5
  Author: Zamboni Lab
6
6
  License-Expression: AGPL-3.0-only
@@ -41,6 +41,8 @@ Requires-Dist: tqdm>=4.65.0
41
41
  Requires-Dist: openpyxl>=3.1.5
42
42
  Requires-Dist: cmap>=0.6.2
43
43
  Requires-Dist: altair>=5.5.0
44
+ Requires-Dist: scikit-learn>=1.7.1
45
+ Requires-Dist: ipython>=9.4.0
44
46
  Provides-Extra: dev
45
47
  Requires-Dist: pytest>=7.0.0; extra == "dev"
46
48
  Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
@@ -1,7 +1,7 @@
1
1
 
2
2
  [project]
3
3
  name = "masster"
4
- version = "0.4.4"
4
+ version = "0.4.5"
5
5
  description = "Mass spectrometry data analysis package"
6
6
  authors = [
7
7
  { name = "Zamboni Lab" }
@@ -48,6 +48,8 @@ dependencies = [
48
48
  "openpyxl>=3.1.5",
49
49
  "cmap>=0.6.2",
50
50
  "altair>=5.5.0",
51
+ "scikit-learn>=1.7.1",
52
+ "ipython>=9.4.0",
51
53
  ]
52
54
 
53
55
  [project.optional-dependencies]
@@ -1,5 +1,5 @@
1
1
  """
2
- masster - Mass Spectrometry Analysis Assistant
2
+ master - Mass Spectrometry Analysis Assistant
3
3
 
4
4
  A comprehensive Python package for processing and analyzing untargeted metabolomics data,
5
5
  supporting both DDA (Data-Dependent Acquisition) and DIA (Data-Independent Acquisition)
@@ -8,14 +8,14 @@ mass spectrometry workflows.
8
8
 
9
9
  from __future__ import annotations
10
10
 
11
- from masster._version import __version__
11
+ from master._version import __version__
12
12
 
13
- # from masster._version import get_version
14
- from masster.chromatogram import Chromatogram
15
- from masster.lib import Lib
16
- from masster.sample.sample import Sample
17
- from masster.spectrum import Spectrum
18
- from masster.study.study import Study
13
+ # from master._version import get_version
14
+ from master.chromatogram import Chromatogram
15
+ from master.lib import Lib
16
+ from master.sample.sample import Sample
17
+ from master.spectrum import Spectrum
18
+ from master.study.study import Study
19
19
 
20
20
 
21
21
  __all__ = [
@@ -88,7 +88,7 @@ class Chromatogram:
88
88
 
89
89
  Example Usage:
90
90
  >>> import numpy as np
91
- >>> from masster import chrom
91
+ >>> from master import chrom
92
92
  >>> rt = np.linspace(0, 300, 1000)
93
93
  >>> intensity = np.random.normal(1000, 100, 1000)
94
94
  >>> chromatogram = chrom(rt=rt, inty=intensity, label="EIC m/z 150")
@@ -927,7 +927,7 @@ Lead,[Pb++],RVPVRDXYQKGNMQ-UHFFFAOYSA-N,Pb,CID:122121,pubchem
927
927
  O-Desmethylangolensin,CC(C(=O)C1=C(O)C=C(O)C=C1)C1=CC=C(O)C=C1,JDJPNKPFDDUBFV-UHFFFAOYSA-N,C15H14O4,CID:89472,pubchem
928
928
  8-Isoprostane,[H][C@@]1(CCCCCCC)CCC[C@]1([H])CCCCCCCC,UKVVPDHLUHAJNZ-UXHICEINSA-N,C20H40,CID:107873,pubchem
929
929
  "MG(0:0/20:4(5Z,8Z,11Z,14Z)/0:0)",[H]C(CO)(CO)OC(=O)CCC\C=C/C\C=C/C\C=C/C\C=C/CCCCC,RCRCTBLIHCHWDZ-DOFZRALJSA-N,C23H38O4,CID:5282280,pubchem
930
- 13-HODE,CCCCC[C@H](O)\C=C\C=C/CCCCCCCC(O)=O,HNICUWMFWZBIFP-IRQZEAMPSA-N,C18H32O3,CID:6443013,pubchem
930
+ 13-NODE,CCCCC[C@H](O)\C=C\C=C/CCCCCCCC(O)=O,HNICUWMFWZBIFP-IRQZEAMPSA-N,C18H32O3,CID:6443013,pubchem
931
931
  7C-aglycone,C\C(CCC(O)=O)=C\CC1=C(C)C(=O)C2=C(C=CC=C2)C1=O,BCNIZSHMXASUGF-XFFZJAGNSA-N,C18H18O4,CID:20348793,pubchem
932
932
  5C-aglycone,CC(CCC1=C(C)C(=O)C2=C(C=CC=C2)C1=O)C(O)=O,ALLYVKRLOHDVKI-UHFFFAOYSA-N,C16H16O4,CID:3082405,pubchem
933
933
  "2,4-Dichlorophenol",OC1=CC=C(Cl)C=C1Cl,HFZWRUODUSTPEG-UHFFFAOYSA-N,C6H4Cl2O,CID:8449,pubchem
@@ -1848,7 +1848,7 @@ Urolithin B,OC1=CC2=C(C=C1)C1=C(C=CC=C1)C(=O)O2,WXUQMTRHPNOXBV-UHFFFAOYSA-N,C13H
1848
1848
  6-Methylnicotinamide,[H]N([H])C(=O)C1=C(N=C([H])C([H])=C1[H])C([H])([H])C([H])([H])[H],GOIWNSRZUNIIRY-UHFFFAOYSA-N,C8H10N2O,CID:14393052,pubchem
1849
1849
  Lanthanum,[La],FZLIPJUXYLNCLC-UHFFFAOYSA-N,La,CID:23926,pubchem
1850
1850
  N-Acetyltryptophan,CC(=O)N[C@@H](CC1=CNC2=C1C=CC=C2)C(O)=O,DZTHIGRZJZPRDV-LBPRGKRZSA-N,C13H14N2O3,CID:700653,pubchem
1851
- Neodymium,[Nd],QEFYFXOXNSNQGX-UHFFFAOYSA-N,Nd,CID:23934,pubchem
1851
+ Neodymium,[And],QEFYFXOXNSNQGX-UHFFFAOYSA-N,And,CID:23934,pubchem
1852
1852
  Norvaline,CCC[C@@H](N)C(O)=O,SNDPXSYFESPGGJ-SCSAIBSYSA-N,C5H11NO2,CID:439575,pubchem
1853
1853
  Rhenium,[Re],WUAPFZMCVAUBPE-UHFFFAOYSA-N,Re,CID:23947,pubchem
1854
1854
  Thallium,Cl[Tl],GBECUEIQVRDUKB-UHFFFAOYSA-M,ClTl,CID:24642,pubchem
@@ -4512,7 +4512,7 @@ Urolithin C 3-glucuronide,O[C@@H]1[C@@H](O)[C@H](OC2=CC3=C(C=C2)C2=C(C=C(O)C(O)=
4512
4512
  "2,6-Di-tert-butyl-4-hydroxy-4-methyl-2,5-cyclohexadienone",CC(C)(C)C1=CC(C)(O)C=C(C1=O)C(C)(C)C,DQBHJILNHNRDTM-UHFFFAOYSA-N,C15H24O2,CID:146102,pubchem
4513
4513
  3-Methylbut-3-enoic acid,CC(=C)CC(O)=O,IGRURXZWJCSNKU-UHFFFAOYSA-N,C5H8O2,CID:417575,pubchem
4514
4514
  D-chiro-Inositol,O[C@H]1[C@@H](O)[C@H](O)[C@H](O)[C@@H](O)[C@@H]1O,CDAISMWEOUEBRE-LKPKBOIGSA-N,C6H12O6,,
4515
- allo-Inositol,O[C@H]1[C@@H](O)[C@@H](O)[C@@H](O)[C@H](O)[C@@H]1O,CDAISMWEOUEBRE-OQYPVSDDSA-N,C6H12O6,,
4515
+ allow-Inositol,O[C@H]1[C@@H](O)[C@@H](O)[C@@H](O)[C@H](O)[C@@H]1O,CDAISMWEOUEBRE-OQYPVSDDSA-N,C6H12O6,,
4516
4516
  Dimethylguanidino valeric acid,CN(C)C(=N)NCCCC(=O)C(O)=O,GLWRPXRMUUZNMD-UHFFFAOYSA-N,C8H15N3O3,CID:101535539,pubchem
4517
4517
  N-Acetyltaurine,CC(=O)NCCS(O)(=O)=O,CXJAAWRLVGAKDV-UHFFFAOYSA-N,C4H9NO4S,CID:159864,pubchem
4518
4518
  Creatine riboside,CN(CC(O)=O)C(=N)N[C@@H]1O[C@H](CO)[C@@H](O)[C@H]1O,BGJFEKXALPJEGN-XVFCMESISA-N,C9H17N3O6,CID:91885405,pubchem
@@ -1,6 +1,6 @@
1
1
  # masster/logger.py
2
2
  """
3
- Simple logger system for masster Study and Sample instances.
3
+ Simple logger system for master Study and Sample instances.
4
4
  Uses basic Python logging timestamp = dt.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
5
5
 
6
6
  # Loguru-style colors for different log levels
@@ -25,7 +25,7 @@ import datetime
25
25
  from typing import Any
26
26
 
27
27
 
28
- class MassterLogger:
28
+ class MasterLogger:
29
29
  """Simple logger wrapper for Study/Sample instances.
30
30
  Each instance gets its own Python logger to avoid conflicts.
31
31
 
@@ -59,7 +59,7 @@ class MassterLogger:
59
59
  self.sink = sink
60
60
 
61
61
  # Create a unique logger name for this instance
62
- self.logger_name = f"masster.{self.instance_type}.{self.instance_id}"
62
+ self.logger_name = f"master.{self.instance_type}.{self.instance_id}"
63
63
 
64
64
  # Get a Python logger instance
65
65
  self.logger_instance = logging.getLogger(self.logger_name)
@@ -73,8 +73,8 @@ class MassterLogger:
73
73
  # Create a stream handler
74
74
  self.handler = logging.StreamHandler(self.sink)
75
75
 
76
- # Create formatter that matches the original masster style
77
- class massterFormatter(logging.Formatter):
76
+ # Create formatter that matches the original master style
77
+ class masterFormatter(logging.Formatter):
78
78
  def __init__(self, label):
79
79
  super().__init__()
80
80
  self.label = label
@@ -124,7 +124,7 @@ class MassterLogger:
124
124
  f"{level_color}{record.getMessage()}\x1b[0m"
125
125
  ) # colored message
126
126
 
127
- self.handler.setFormatter(massterFormatter(self.label))
127
+ self.handler.setFormatter(masterFormatter(self.label))
128
128
  self.logger_instance.addHandler(self.handler)
129
129
 
130
130
  # Prevent propagation to avoid duplicate messages
@@ -143,7 +143,7 @@ class MassterLogger:
143
143
  self.label = label
144
144
 
145
145
  # Update formatter with new label
146
- class massterFormatter(logging.Formatter):
146
+ class masterFormatter(logging.Formatter):
147
147
  def __init__(self, label):
148
148
  super().__init__()
149
149
  self.label = label
@@ -192,7 +192,7 @@ class MassterLogger:
192
192
  f"{level_color}{record.getMessage()}\x1b[0m"
193
193
  ) # colored message
194
194
 
195
- self.handler.setFormatter(massterFormatter(self.label))
195
+ self.handler.setFormatter(masterFormatter(self.label))
196
196
 
197
197
  def update_sink(self, sink: Any):
198
198
  """Update the output sink for log messages."""
@@ -207,7 +207,7 @@ class MassterLogger:
207
207
  self.handler = logging.StreamHandler(self.sink)
208
208
 
209
209
  # Apply formatter
210
- class massterFormatter(logging.Formatter):
210
+ class masterFormatter(logging.Formatter):
211
211
  def __init__(self, label):
212
212
  super().__init__()
213
213
  self.label = label
@@ -256,7 +256,7 @@ class MassterLogger:
256
256
  f"{level_color}{record.getMessage()}\x1b[0m"
257
257
  ) # colored message
258
258
 
259
- self.handler.setFormatter(massterFormatter(self.label))
259
+ self.handler.setFormatter(masterFormatter(self.label))
260
260
  self.logger_instance.addHandler(self.handler)
261
261
 
262
262
  # Logger method delegates
@@ -329,4 +329,4 @@ class MassterLogger:
329
329
  self.handler = None
330
330
 
331
331
  def __repr__(self):
332
- return f"MassterLogger(type={self.instance_type}, id={self.instance_id}, level={self.level})"
332
+ return f"MasterLogger(type={self.instance_type}, id={self.instance_id}, level={self.level})"
@@ -1,5 +1,5 @@
1
1
  """
2
- Sample module for masster.
2
+ Sample module for master.
3
3
 
4
4
  This module provides the Sample class for handling mass spectrometry data.
5
5
  """