masster 0.5.0__tar.gz → 0.5.1__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 (95) hide show
  1. {masster-0.5.0 → masster-0.5.1}/PKG-INFO +1 -1
  2. {masster-0.5.0 → masster-0.5.1}/pyproject.toml +1 -1
  3. {masster-0.5.0 → masster-0.5.1}/src/masster/_version.py +1 -1
  4. masster-0.5.1/src/masster/data/libs/aa.csv +22 -0
  5. {masster-0.5.0 → masster-0.5.1}/src/masster/lib/lib.py +6 -0
  6. {masster-0.5.0 → masster-0.5.1}/src/masster/study/defaults/fill_def.py +1 -1
  7. {masster-0.5.0 → masster-0.5.1}/src/masster/study/h5.py +3 -0
  8. {masster-0.5.0 → masster-0.5.1}/src/masster/study/id.py +542 -1
  9. {masster-0.5.0 → masster-0.5.1}/src/masster/study/load.py +16 -7
  10. {masster-0.5.0 → masster-0.5.1}/src/masster/study/merge.py +97 -2
  11. {masster-0.5.0 → masster-0.5.1}/src/masster/study/processing.py +2 -10
  12. {masster-0.5.0 → masster-0.5.1}/src/masster/study/study.py +82 -0
  13. {masster-0.5.0 → masster-0.5.1}/src/masster/study/study5_schema.json +9 -0
  14. {masster-0.5.0 → masster-0.5.1}/uv.lock +1 -1
  15. {masster-0.5.0 → masster-0.5.1}/.github/workflows/publish.yml +0 -0
  16. {masster-0.5.0 → masster-0.5.1}/.github/workflows/security.yml +0 -0
  17. {masster-0.5.0 → masster-0.5.1}/.github/workflows/test.yml +0 -0
  18. {masster-0.5.0 → masster-0.5.1}/.gitignore +0 -0
  19. {masster-0.5.0 → masster-0.5.1}/.pre-commit-config.yaml +0 -0
  20. {masster-0.5.0 → masster-0.5.1}/LICENSE +0 -0
  21. {masster-0.5.0 → masster-0.5.1}/Makefile +0 -0
  22. {masster-0.5.0 → masster-0.5.1}/README.md +0 -0
  23. {masster-0.5.0 → masster-0.5.1}/TESTING.md +0 -0
  24. {masster-0.5.0 → masster-0.5.1}/demo/example_batch_process.py +0 -0
  25. {masster-0.5.0 → masster-0.5.1}/demo/example_sample_process.py +0 -0
  26. {masster-0.5.0 → masster-0.5.1}/src/masster/__init__.py +0 -0
  27. {masster-0.5.0 → masster-0.5.1}/src/masster/chromatogram.py +0 -0
  28. {masster-0.5.0 → masster-0.5.1}/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
  29. {masster-0.5.0 → masster-0.5.1}/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
  30. {masster-0.5.0 → masster-0.5.1}/src/masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_MS1_C-MiLUT_C008_v6_r38_01.sample5 +0 -0
  31. {masster-0.5.0 → masster-0.5.1}/src/masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_MS1_C-MiLUT_C008_v7_r37_01.sample5 +0 -0
  32. {masster-0.5.0 → masster-0.5.1}/src/masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_MS1_C-MiLUT_C017_v5_r99_01.sample5 +0 -0
  33. {masster-0.5.0 → masster-0.5.1}/src/masster/data/libs/ccm.csv +0 -0
  34. {masster-0.5.0 → masster-0.5.1}/src/masster/data/libs/urine.csv +0 -0
  35. {masster-0.5.0 → masster-0.5.1}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.timeseries.data +0 -0
  36. {masster-0.5.0 → masster-0.5.1}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff +0 -0
  37. {masster-0.5.0 → masster-0.5.1}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff.scan +0 -0
  38. {masster-0.5.0 → masster-0.5.1}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff2 +0 -0
  39. {masster-0.5.0 → masster-0.5.1}/src/masster/lib/__init__.py +0 -0
  40. {masster-0.5.0 → masster-0.5.1}/src/masster/logger.py +0 -0
  41. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/__init__.py +0 -0
  42. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/adducts.py +0 -0
  43. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/defaults/__init__.py +0 -0
  44. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/defaults/find_adducts_def.py +0 -0
  45. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/defaults/find_features_def.py +0 -0
  46. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/defaults/find_ms2_def.py +0 -0
  47. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/defaults/get_spectrum_def.py +0 -0
  48. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/defaults/sample_def.py +0 -0
  49. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/h5.py +0 -0
  50. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/helpers.py +0 -0
  51. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/lib.py +0 -0
  52. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/load.py +0 -0
  53. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/parameters.py +0 -0
  54. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/plot.py +0 -0
  55. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/processing.py +0 -0
  56. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/quant.py +0 -0
  57. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/sample.py +0 -0
  58. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/sample5_schema.json +0 -0
  59. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/save.py +0 -0
  60. {masster-0.5.0 → masster-0.5.1}/src/masster/sample/sciex.py +0 -0
  61. {masster-0.5.0 → masster-0.5.1}/src/masster/spectrum.py +0 -0
  62. {masster-0.5.0 → masster-0.5.1}/src/masster/study/__init__.py +0 -0
  63. {masster-0.5.0 → masster-0.5.1}/src/masster/study/analysis.py +0 -0
  64. {masster-0.5.0 → masster-0.5.1}/src/masster/study/defaults/__init__.py +0 -0
  65. {masster-0.5.0 → masster-0.5.1}/src/masster/study/defaults/align_def.py +0 -0
  66. {masster-0.5.0 → masster-0.5.1}/src/masster/study/defaults/export_def.py +0 -0
  67. {masster-0.5.0 → masster-0.5.1}/src/masster/study/defaults/fill_chrom_def.py +0 -0
  68. {masster-0.5.0 → masster-0.5.1}/src/masster/study/defaults/find_consensus_def.py +0 -0
  69. {masster-0.5.0 → masster-0.5.1}/src/masster/study/defaults/find_ms2_def.py +0 -0
  70. {masster-0.5.0 → masster-0.5.1}/src/masster/study/defaults/identify_def.py +0 -0
  71. {masster-0.5.0 → masster-0.5.1}/src/masster/study/defaults/integrate_chrom_def.py +0 -0
  72. {masster-0.5.0 → masster-0.5.1}/src/masster/study/defaults/integrate_def.py +0 -0
  73. {masster-0.5.0 → masster-0.5.1}/src/masster/study/defaults/merge_def.py +0 -0
  74. {masster-0.5.0 → masster-0.5.1}/src/masster/study/defaults/study_def.py +0 -0
  75. {masster-0.5.0 → masster-0.5.1}/src/masster/study/export.py +0 -0
  76. {masster-0.5.0 → masster-0.5.1}/src/masster/study/helpers.py +0 -0
  77. {masster-0.5.0 → masster-0.5.1}/src/masster/study/parameters.py +0 -0
  78. {masster-0.5.0 → masster-0.5.1}/src/masster/study/plot.py +0 -0
  79. {masster-0.5.0 → masster-0.5.1}/src/masster/study/save.py +0 -0
  80. {masster-0.5.0 → masster-0.5.1}/src/masster/wizard/README.md +0 -0
  81. {masster-0.5.0 → masster-0.5.1}/src/masster/wizard/__init__.py +0 -0
  82. {masster-0.5.0 → masster-0.5.1}/src/masster/wizard/example.py +0 -0
  83. {masster-0.5.0 → masster-0.5.1}/src/masster/wizard/wizard.py +0 -0
  84. {masster-0.5.0 → masster-0.5.1}/tests/conftest.py +0 -0
  85. {masster-0.5.0 → masster-0.5.1}/tests/test_chromatogram.py +0 -0
  86. {masster-0.5.0 → masster-0.5.1}/tests/test_defaults.py +0 -0
  87. {masster-0.5.0 → masster-0.5.1}/tests/test_imports.py +0 -0
  88. {masster-0.5.0 → masster-0.5.1}/tests/test_integration.py +0 -0
  89. {masster-0.5.0 → masster-0.5.1}/tests/test_logger.py +0 -0
  90. {masster-0.5.0 → masster-0.5.1}/tests/test_parameters.py +0 -0
  91. {masster-0.5.0 → masster-0.5.1}/tests/test_sample.py +0 -0
  92. {masster-0.5.0 → masster-0.5.1}/tests/test_spectrum.py +0 -0
  93. {masster-0.5.0 → masster-0.5.1}/tests/test_study.py +0 -0
  94. {masster-0.5.0 → masster-0.5.1}/tests/test_version.py +0 -0
  95. {masster-0.5.0 → masster-0.5.1}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: masster
3
- Version: 0.5.0
3
+ Version: 0.5.1
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,7 +1,7 @@
1
1
 
2
2
  [project]
3
3
  name = "masster"
4
- version = "0.5.0"
4
+ version = "0.5.1"
5
5
  description = "Mass spectrometry data analysis package"
6
6
  authors = [
7
7
  { name = "Zamboni Lab" }
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
 
4
- __version__ = "0.5.0"
4
+ __version__ = "0.5.1"
5
5
 
6
6
 
7
7
  def get_version():
@@ -0,0 +1,22 @@
1
+ name,smiles,inchikey,formula,db_id,db
2
+ L-Glutamic acid,N[C@@H](CCC(O)=O)C(O)=O,WHUUTDBJXJRKMK-VKHMYHEASA-N,C5H9NO4,CID:33032,pubchem
3
+ L-Tyrosine,N[C@@H](CC1=CC=C(O)C=C1)C(O)=O,OUYCCCASQSFEME-QMMMGPOBSA-N,C9H11NO3,CID:6057,pubchem
4
+ L-Phenylalanine,N[C@@H](CC1=CC=CC=C1)C(O)=O,COLNVLDHVKWLRT-QMMMGPOBSA-N,C9H11NO2,CID:6140,pubchem
5
+ L-Alanine,C[C@H](N)C(O)=O,QNAYBMKLOCPYGJ-REOHCLBHSA-N,C3H7NO2,CID:5950,pubchem
6
+ L-Proline,OC(=O)[C@@H]1CCCN1,ONIBWKKTOPOVIA-BYPYZUCNSA-N,C5H9NO2,CID:145742,pubchem
7
+ L-Threonine,C[C@@H](O)[C@H](N)C(O)=O,AYFVYJQAPQTCCC-GBXIJSLDSA-N,C4H9NO3,CID:6288,pubchem
8
+ L-Asparagine,N[C@@H](CC(N)=O)C(O)=O,DCXYFEDJOCDNAF-REOHCLBHSA-N,C4H8N2O3,CID:6267,pubchem
9
+ L-Isoleucine,CC[C@H](C)[C@H](N)C(O)=O,AGPKZVBTJJNPAG-WHFBIAKZSA-N,C6H13NO2,CID:6306,pubchem
10
+ L-Histidine,N[C@@H](CC1=CN=CN1)C(O)=O,HNDVDQJCIGZPNO-YFKPBYRVSA-N,C6H9N3O2,CID:6274,pubchem
11
+ L-Lysine,NCCCC[C@H](N)C(O)=O,KDXKERNSBIXSRK-YFKPBYRVSA-N,C6H14N2O2,CID:5962,pubchem
12
+ L-Serine,N[C@@H](CO)C(O)=O,MTCFGRXMJLQNBG-REOHCLBHSA-N,C3H7NO3,CID:5951,pubchem
13
+ L-Aspartic acid,N[C@@H](CC(O)=O)C(O)=O,CKLJMWTZIZZHCS-REOHCLBHSA-N,C4H7NO4,CID:5960,pubchem
14
+ L-Cystine,N[C@@H](CSSC[C@H](N)C(O)=O)C(O)=O,LEVWYRKDKASIDU-IMJSIDKUSA-N,C6H12N2O4S2,CID:67678,pubchem
15
+ L-Arginine,N[C@@H](CCCNC(N)=N)C(O)=O,ODKSFYDXXFIFQN-BYPYZUCNSA-N,C6H14N4O2,CID:6322,pubchem
16
+ L-Cysteine,N[C@@H](CS)C(O)=O,XUJNEKJLAYXESH-REOHCLBHSA-N,C3H7NO2S,CID:5862,pubchem
17
+ L-Glutamine,N[C@@H](CCC(N)=O)C(O)=O,ZDXPYRJPNDTMRX-VKHMYHEASA-N,C5H10N2O3,CID:5961,pubchem
18
+ L-Leucine,CC(C)C[C@H](N)C(O)=O,ROHFNLRQFUQHCH-YFKPBYRVSA-N,C6H13NO2,CID:6106,pubchem
19
+ L-Methionine,CSCC[C@H](N)C(O)=O,FFEARJCKVFRZRR-BYPYZUCNSA-N,C5H11NO2S,CID:6137,pubchem
20
+ L-Valine,CC(C)[C@H](N)C(O)=O,KZSNJWFQEVHDMF-BYPYZUCNSA-N,C5H11NO2,CID:6287,pubchem
21
+ L-Tryptophan,N[C@@H](CC1=CNC2=C1C=CC=C2)C(O)=O,QIVBCDIJIAJPQS-VIFPVBQESA-N,C11H12N2O2,CID:6305,pubchem
22
+ Glycine,NCC(O)=O,QNAYBMKLOCPYGJ-UHFFFAOYSA-N,C2H5NO2,CID:750,Glycine
@@ -123,11 +123,13 @@ class Lib:
123
123
  "inchi": pl.Series([], dtype=pl.Utf8),
124
124
  "inchikey": pl.Series([], dtype=pl.Utf8),
125
125
  "formula": pl.Series([], dtype=pl.Utf8),
126
+ "iso": pl.Series([], dtype=pl.Int64),
126
127
  "adduct": pl.Series([], dtype=pl.Utf8),
127
128
  "m": pl.Series([], dtype=pl.Float64),
128
129
  "z": pl.Series([], dtype=pl.Int8),
129
130
  "mz": pl.Series([], dtype=pl.Float64),
130
131
  "rt": pl.Series([], dtype=pl.Float64),
132
+ "quant_group": pl.Series([], dtype=pl.Int64),
131
133
  "db_id": pl.Series([], dtype=pl.Utf8),
132
134
  "db": pl.Series([], dtype=pl.Utf8),
133
135
  })
@@ -245,11 +247,13 @@ class Lib:
245
247
  "inchi": compound_data.get("inchi", ""),
246
248
  "inchikey": compound_data.get("inchikey", ""),
247
249
  "formula": compound_data["formula"],
250
+ "iso": 0, # Default to zero
248
251
  "adduct": adduct,
249
252
  "m": adducted_mass,
250
253
  "z": charge,
251
254
  "mz": mz,
252
255
  "rt": compound_data.get("rt", None),
256
+ "quant_group": counter, # Use same as lib_uid for default
253
257
  "db_id": compound_data.get("db_id", None),
254
258
  "db": compound_data.get("db", None),
255
259
  }
@@ -526,12 +530,14 @@ class Lib:
526
530
  "source_id": match_row.get("source_id"),
527
531
  "name": match_row["name"],
528
532
  "formula": match_row["formula"],
533
+ "iso": match_row.get("iso", 0),
529
534
  "adduct": match_row["adduct"],
530
535
  "smiles": match_row["smiles"],
531
536
  "inchi": match_row["inchi"],
532
537
  "inchikey": match_row["inchikey"],
533
538
  "lib_mz": match_row["mz"],
534
539
  "lib_rt": match_row["rt"],
540
+ "quant_group": match_row.get("quant_group"),
535
541
  "delta_mz": abs(feature_mz - match_row["mz"]),
536
542
  "delta_rt": abs(feature_rt - match_row["rt"]) if feature_rt is not None and match_row["rt"] is not None else None,
537
543
  }
@@ -58,7 +58,7 @@ class fill_defaults:
58
58
  "dtype": int,
59
59
  "description": "Minimum absolute samples threshold",
60
60
  "default": 5,
61
- "min_value": 1,
61
+ "min_value": 0,
62
62
  "max_value": 100,
63
63
  },
64
64
  },
@@ -2007,6 +2007,9 @@ def _load_study5(self, filename=None):
2007
2007
  f"Successfully migrated {sample_count} samples to indexed map_id format (0 to {sample_count - 1})",
2008
2008
  )
2009
2009
 
2010
+ # Sanitize null feature_id and consensus_id values with new UIDs (same method as merge)
2011
+ self._sanitize_null_ids()
2012
+
2010
2013
  self.logger.debug("Study loaded")
2011
2014
 
2012
2015