masster 0.4.21__py3-none-any.whl → 0.5.0__py3-none-any.whl

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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: masster
3
- Version: 0.4.21
3
+ Version: 0.5.0
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
@@ -686,6 +686,7 @@ Requires-Dist: bokeh>=3.7.3
686
686
  Requires-Dist: cmap>=0.6.2
687
687
  Requires-Dist: datashader>=0.18.1
688
688
  Requires-Dist: h5py>=3.14.0
689
+ Requires-Dist: hdbscan>=0.8.40
689
690
  Requires-Dist: holoviews>=1.21.0
690
691
  Requires-Dist: hvplot>=0.11.3
691
692
  Requires-Dist: loguru>=0.7.3
@@ -701,6 +702,7 @@ Requires-Dist: pythonnet>=3.0.0
701
702
  Requires-Dist: scikit-learn>=1.7.1
702
703
  Requires-Dist: scipy>=1.12.0
703
704
  Requires-Dist: tqdm>=4.65.0
705
+ Requires-Dist: umap-learn>=0.5.9.post2
704
706
  Provides-Extra: dev
705
707
  Requires-Dist: bandit>=1.7.0; extra == 'dev'
706
708
  Requires-Dist: black>=23.0.0; extra == 'dev'
@@ -726,12 +728,13 @@ Description-Content-Type: text/markdown
726
728
 
727
729
  # MASSter
728
730
 
729
- **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.
731
+ **MASSter** is a Python package for the analysis of mass spectrometry data, tailored for the purpose of metabolomics and LC-MS data processing. It is designed to deal with DDA, and hides functionalities for DIA and ZTScan DIA data. The sample-centric feature detection uses OpenMS. All other functionalities for e.g. centroiding, RT alignment, adduct and isotopomer detection, merging of multiple samples, gap-filling, quantification, etc. were redesigned and engineered to maximize scalability (tested with 3000 LC-MS), speed, quality, and results.
730
732
 
731
733
  This is a poorly documented, stable branch of the development codebase in use in the Zamboni lab.
732
734
 
733
- 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.
735
+ ## Prerequisites
734
736
 
737
+ **MASSter** reads raw (Thermo), wiff (SCIEX), or mzML data. It's recommended to provide raw, profile data.
735
738
 
736
739
  ## Installation
737
740
 
@@ -739,20 +742,60 @@ Some of the core processing functions are derived from OpenMS. We use the same n
739
742
  pip install masster
740
743
  ```
741
744
 
742
- ### Basic Workflow for analyzing LC-MS study with 2-... samples
745
+ ## Basic usage
746
+ ### Quick start: use the wizard
747
+
748
+ ```python
749
+ import masster
750
+ masster.wizard.execute(
751
+ source=r'..\..\folder_with_raw_data',
752
+ folder=r'..\..folder_to_store_results'
753
+ )
754
+ ```
743
755
 
756
+ This will run a wizard that should perform all key steps and save the results to the `folder`.
757
+
758
+ ### Basic workflow for analyzing a single sample
744
759
  ```python
745
760
  import masster
761
+ sample = masster.Sample(filename='...') # full path to a *.raw, *.wiff, or *.mzML file
762
+ # process
763
+ sample.find_features(chrom_fwhm=0.5, noise=50) # for orbitrap data, set noise to 1e5
764
+ sample.find_adducts()
765
+ sample.find_ms2()
766
+
767
+ # access data
768
+ sample.features_df
769
+
770
+ # save results
771
+ sample.save() # stores to *.sample5, our custom hdf5 format
772
+ sample.export_mgf()
773
+
774
+ # some plots
775
+ sample.plot_bpc()
776
+ sample.plot_tic()
777
+ sample.plot_2d()
778
+ sample.plot_features_stats()
779
+
780
+ # explore methods
781
+ dir(study)
782
+ ```
783
+
784
+ ### Basic Workflow for analyzing LC-MS study with 2-... samples
746
785
 
786
+ ```python
787
+ import masster
747
788
  # Initialize the Study object with the default folder
748
- study = masster.Study(default_folder=r'D:\...\mylcms')
789
+ study = masster.Study(folder=r'D:\...\mylcms')
749
790
 
750
791
  # Load data from folder with raw data, here: WIFF
751
792
  study.add(r'D:\...\...\...\*.wiff')
752
793
 
753
794
  # Perform retention time correction
754
- study.align(rt_max_diff=2.0)
795
+ study.align(rt_tol=2.0)
755
796
  study.plot_alignment()
797
+ study.plot_bpc()
798
+ study.plot_rt_correction()
756
799
 
757
800
  # Find consensus features
758
801
  study.merge(min_samples=3)
@@ -772,18 +815,15 @@ study.export_parquet()
772
815
 
773
816
  # Save the study to .study5
774
817
  study.save()
775
- ```
776
-
777
- ## Requirements
778
818
 
779
- - Python 3.11
780
- - Key dependencies: pandas, polars, numpy, scipy, matplotlib, bokeh, holoviews, panel
781
- - See `pyproject.toml` for complete dependency list
819
+ # Some of the plots...
820
+ study.plot_samples_pca()
821
+ study.plot_samples_umap()
822
+ study.plot_samples_2d()
823
+ ```
782
824
 
783
825
  ## License
784
-
785
826
  GNU Affero General Public License v3
786
827
 
787
828
  ## Citation
788
-
789
829
  If you use Masster in your research, please cite this repository.
@@ -1,5 +1,5 @@
1
1
  masster/__init__.py,sha256=ueZ224WPNRRjQEYTaQUol818nwQgJwB93HbEfmtPRmg,1041
2
- masster/_version.py,sha256=y5IX-RaakVoxIcxnpOMo4HnIGk-qPigff8Q07QC6yJU,257
2
+ masster/_version.py,sha256=P5MV1QkrG88uczENqaXQiyOnJWkFQaZ4FsWNCqYySbg,256
3
3
  masster/chromatogram.py,sha256=iYpdv8C17zVnlWvOFgAn9ns2uFGiF-GgoYf5QVVAbHs,19319
4
4
  masster/logger.py,sha256=tR65N23zfrNpcZNbZm2ot_Aual9XrGB1MWjLrovZkMs,16749
5
5
  masster/spectrum.py,sha256=XJSUrqXZSzfpWnD8v5IMClXMRZLKLYIk014qaMOS9_k,49738
@@ -17,18 +17,18 @@ masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecR
17
17
  masster/lib/__init__.py,sha256=TcePNx3SYZHz6763TL9Sg4gUNXaRWjlrOtyS6vsu-hg,178
18
18
  masster/lib/lib.py,sha256=mxUYBCBmkSBZB82557smSHCS25BAusuCewvW8zwsLGg,27130
19
19
  masster/sample/__init__.py,sha256=HL0m1ept0PMAYUCQtDDnkdOS12IFl6oLAq4TZQz83uY,170
20
- masster/sample/adducts.py,sha256=jdtkkiMFeObRv3myluUx--IfpRsEq3-hPgkCb2VUxy4,32590
20
+ masster/sample/adducts.py,sha256=S7meba3L1tSdjoDhkSiTI71H2NJLu4i1dtJwfDKWI1M,32591
21
21
  masster/sample/h5.py,sha256=B0gAmhrnoFoybotqsqiT8s-PkeZWUdIQfI-4cnM52Zc,115430
22
22
  masster/sample/helpers.py,sha256=JhzFpNh7j7YVUibIMuPQ50hBcGDEBCaBbmwA3Z5OhgM,41336
23
23
  masster/sample/lib.py,sha256=E-j9c3Wd8f9a-H8xj7CAOwlA8KcyXPoFyYm3c8r7LtI,33755
24
- masster/sample/load.py,sha256=TqBuDPrNgIotR-mL475AfDZntsW0JjYcy5AovVKRZxY,51560
24
+ masster/sample/load.py,sha256=CSJnNfJ6EpWEIbDj92mJK0qFao0ycxuGf_w9DzWhlnY,51721
25
25
  masster/sample/parameters.py,sha256=Gg2KcuNbV_wZ_Wwv93QlM5J19ji0oSIvZLPV1NoBmq0,4456
26
- masster/sample/plot.py,sha256=bQlEXCLQQWpUV88vGtftW9WAVwDKZ4k7TBirV9cO54w,82573
27
- masster/sample/processing.py,sha256=A1u5u7lGG0HR_ciUhJFmmwgugher7_AZQopNnbu65Bs,55910
26
+ masster/sample/plot.py,sha256=0v4FzO_yzpUdATjdHZU4YO7UoW73Xlf51vVQByQ33X0,82574
27
+ masster/sample/processing.py,sha256=Sh6IFxuFcmCspyizUPghd4Qqqk1mTPCNtvdxmyy0eKQ,55914
28
28
  masster/sample/quant.py,sha256=tHNjvUFTdehKR31BXBZnVsBxMD9XJHgaltITOjr71uE,7562
29
- masster/sample/sample.py,sha256=uQP5DLdsRSC2YwZZvspsL9rgl_HefB-oxrL2dpgg_fc,19788
29
+ masster/sample/sample.py,sha256=_IUvUIlW2F4NRxsOdtBb1NePJJX_9FDcT5ZgM4O7ZRs,20534
30
30
  masster/sample/sample5_schema.json,sha256=H5e2T6rHIDzul2kp_yP-ILUUWUpW08wP2pEQjMR0nSk,3977
31
- masster/sample/save.py,sha256=MfgHGiR2ofLyVp_rP9FIu7mUG3A6PEZHSscMypSTH7M,36425
31
+ masster/sample/save.py,sha256=2yQtcQcRJjgAKPImTydj7LpyyMop_Q9JKRlNEK4yU6k,36339
32
32
  masster/sample/sciex.py,sha256=vnbxsq_qnAQVuzcpziP1o3IC4kM5amGBcPmC2TAuDLw,46319
33
33
  masster/sample/defaults/__init__.py,sha256=A09AOP44cxD_oYohyt7XFUho0zndRcrzVD4DUaGnKH4,447
34
34
  masster/sample/defaults/find_adducts_def.py,sha256=Bu2KiBJRxD0SAnOPNMm_Nk-6fx6QYoRXjFNGzz-0_o0,13570
@@ -37,17 +37,18 @@ masster/sample/defaults/find_ms2_def.py,sha256=KTELMAnioGLYbhzAwOgK14TZqboPEvzeB
37
37
  masster/sample/defaults/get_spectrum_def.py,sha256=o62p31PhGd-LiIkTOzKQhwPtnO2AtQDHcPu-O-YoQPs,11460
38
38
  masster/sample/defaults/sample_def.py,sha256=keoXyMyrm_iLgbYqfIbqCpJ3XHBVlNwCNmb5iMQL0iY,14579
39
39
  masster/study/__init__.py,sha256=55axdFuqRX4aXtJ8ocnhcLB32fNtmmJpCi58moO0r4g,237
40
- masster/study/export.py,sha256=CKrmje4_cQAJnQjQsB5u3mXkvDDbxKkAJO8e_MoeB38,59270
40
+ masster/study/analysis.py,sha256=L-wXBnGZCLB5UUDrjIdOiMG9zdej3Tw_SftcEmmTukM,84264
41
+ masster/study/export.py,sha256=Rp1vc5iDl-XFWo_RBVCJDGBNSKakq9f8aC2FeUCP9GA,59398
41
42
  masster/study/h5.py,sha256=eINlVmcJuntwbkkZHwzm10c63Kg7zib49vkzLDj1PyU,84790
42
- masster/study/helpers.py,sha256=6nDTNlsZbZWf9L6D5qzK2TUO2y7UBq51Ftj8N4bkIAk,160260
43
- masster/study/id.py,sha256=6NUBBKZCFOU1wlDKM0eXQeOIStSZCRNJ_3x7ZaIHzmM,55263
44
- masster/study/load.py,sha256=CQQY_7BzagE3oQTdDlqNyfuMdVWIAft-M4a2WCFnxp0,70695
45
- masster/study/merge.py,sha256=3R_Dg6l2mnJUu3gFVAgrAN5hFSQyfHbqYPmc2cUfJqQ,159232
46
- masster/study/parameters.py,sha256=0elaF7YspTsB7qyajWAbRNL2VfKlGz5GJLifmO8IGkk,3276
47
- masster/study/plot.py,sha256=G9eStCUPxJTHrQk9TZpivk5rYxO1vbu5Yba6rP8NELM,90649
48
- masster/study/processing.py,sha256=WOcBdQ1agayASLkrtJ9GfUT0mgCJZVNnbuT77-J-KDY,52011
49
- masster/study/save.py,sha256=BANh9F1s-q7MclO1Mq_-v4xQyHeloEgmoPgRDVc-9aE,9037
50
- masster/study/study.py,sha256=rk-pJNg80N6xbROa9fqPfwVxFgzL_FLoSUNOTYeD5E0,40116
43
+ masster/study/helpers.py,sha256=dU2YxAGPmu1w55mpcgNoHPpg2fNW-vK944aJy3YwLsU,163555
44
+ masster/study/id.py,sha256=L5S0etAeEmtkzE06M32PNo3rp-WE01sLU6M5_TdNC3w,55266
45
+ masster/study/load.py,sha256=x0OvfOoSY-6lQ8_B9KeDUh_E99eYRm1WGLnCY3CGqF8,71222
46
+ masster/study/merge.py,sha256=MvvEwS2_UCWIrxROtuYTkJOu3pk8EasorbrfWug2e68,159736
47
+ masster/study/parameters.py,sha256=bTvmcwX9INxzcrEAmTiFH8qeWVhwkvMTZjuP394pz5o,3279
48
+ masster/study/plot.py,sha256=pAN5uQKYPUpupQVtKBloWjKOKpM_C9o2e3VWkJ-aZN8,102041
49
+ masster/study/processing.py,sha256=hf8FEPONXz4x6G1fke6SEUnCJCv47cGeo--6h1c1Sis,56441
50
+ masster/study/save.py,sha256=47AP518epJJ9TjaGGyrLKsMsyjIk8_J4ka7bmsnRtFQ,9268
51
+ masster/study/study.py,sha256=YLt6tqCPkWvmKGBvhiyh1LeZgr165f9eqgiIV5OLomY,38393
51
52
  masster/study/study5_schema.json,sha256=ghBeAXFS4a4Uavdn6TUVs9GaR1QOTnADCjQTOkN0tjU,7563
52
53
  masster/study/defaults/__init__.py,sha256=m3Z5KXGqsTdh7GjYzZoENERt39yRg0ceVRV1DeCt1P0,610
53
54
  masster/study/defaults/align_def.py,sha256=hHQbGgsOqMRHHr0Wn8Onr8XeaRz3-fFE0qGE-OMst80,20324
@@ -64,9 +65,9 @@ masster/study/defaults/study_def.py,sha256=h8dYbi9xv0sesCSQik49Z53IkskMmNtW6ixl7
64
65
  masster/wizard/README.md,sha256=mL1A3YWJZOefpJ6D0-HqGLkVRmUlOpwyVFdvJBeeoZM,14149
65
66
  masster/wizard/__init__.py,sha256=a2hcZnHASjfuw1lqZhZnvTR58rc33rRnoGAY_JfvGhI,683
66
67
  masster/wizard/example.py,sha256=xEZFTH9UZ8HKOm6s3JL8Js0Uw5ChnISWBHSZCL32vsM,7983
67
- masster/wizard/wizard.py,sha256=498u3rvYNC0mb0kDG7T71E8TKwMk2s1KKzHgDBn76c4,37698
68
- masster-0.4.21.dist-info/METADATA,sha256=BuBxOoHsoKYPLa5Jy6a2SPIUNDv9uCnujAbB7ibMqJU,44207
69
- masster-0.4.21.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
70
- masster-0.4.21.dist-info/entry_points.txt,sha256=ZHguQ_vPmdbpqq2uGtmEOLJfgP-DQ1T0c07Lxh30wc8,58
71
- masster-0.4.21.dist-info/licenses/LICENSE,sha256=bx5iLIKjgAdYQ7sISn7DsfHRKkoCUm1154sJJKhgqnU,35184
72
- masster-0.4.21.dist-info/RECORD,,
68
+ masster/wizard/wizard.py,sha256=esgaifLRyaGxytif9qOkTy-21VxlUQxrvl47K-l-BpE,37666
69
+ masster-0.5.0.dist-info/METADATA,sha256=HSAp3U_YG6chyHAIJ6YAzyQbN0OQ1L2dxs_S0p_CGns,45113
70
+ masster-0.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
71
+ masster-0.5.0.dist-info/entry_points.txt,sha256=ZHguQ_vPmdbpqq2uGtmEOLJfgP-DQ1T0c07Lxh30wc8,58
72
+ masster-0.5.0.dist-info/licenses/LICENSE,sha256=bx5iLIKjgAdYQ7sISn7DsfHRKkoCUm1154sJJKhgqnU,35184
73
+ masster-0.5.0.dist-info/RECORD,,