masster 0.5.28__tar.gz → 0.6.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 (73) hide show
  1. {masster-0.5.28 → masster-0.6.1}/PKG-INFO +17 -18
  2. {masster-0.5.28 → masster-0.6.1}/README.md +15 -16
  3. {masster-0.5.28 → masster-0.6.1}/pyproject.toml +2 -2
  4. {masster-0.5.28 → masster-0.6.1}/src/masster/_version.py +1 -1
  5. masster-0.6.1/src/masster/data/libs/aa_nort.json +240 -0
  6. masster-0.6.1/src/masster/data/libs/ccm_nort.json +1319 -0
  7. {masster-0.5.28 → masster-0.6.1}/src/masster/lib/lib.py +1 -1
  8. {masster-0.5.28 → masster-0.6.1}/src/masster/logger.py +0 -6
  9. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/adducts.py +1 -1
  10. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/defaults/find_adducts_def.py +1 -1
  11. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/h5.py +152 -2
  12. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/helpers.py +91 -5
  13. masster-0.6.1/src/masster/sample/id.py +1160 -0
  14. masster-0.6.1/src/masster/sample/importers.py +316 -0
  15. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/plot.py +175 -71
  16. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/sample.py +18 -3
  17. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/sample5_schema.json +99 -1
  18. {masster-0.5.28 → masster-0.6.1}/src/masster/study/defaults/study_def.py +8 -12
  19. {masster-0.5.28 → masster-0.6.1}/src/masster/study/export.py +62 -62
  20. {masster-0.5.28 → masster-0.6.1}/src/masster/study/id.py +59 -12
  21. {masster-0.5.28 → masster-0.6.1}/src/masster/study/load.py +0 -11
  22. {masster-0.5.28 → masster-0.6.1}/src/masster/study/merge.py +153 -0
  23. {masster-0.5.28 → masster-0.6.1}/src/masster/study/plot.py +197 -0
  24. {masster-0.5.28 → masster-0.6.1}/src/masster/study/study.py +3 -1
  25. {masster-0.5.28 → masster-0.6.1}/src/masster/study/study5_schema.json +15 -0
  26. {masster-0.5.28 → masster-0.6.1}/src/masster/wizard/wizard.py +11 -12
  27. masster-0.5.28/src/masster/data/libs/aa.csv +0 -22
  28. masster-0.5.28/src/masster/data/libs/ccm.csv +0 -120
  29. masster-0.5.28/src/masster/data/libs/urine.csv +0 -4693
  30. {masster-0.5.28 → masster-0.6.1}/.gitignore +0 -0
  31. {masster-0.5.28 → masster-0.6.1}/LICENSE +0 -0
  32. {masster-0.5.28 → masster-0.6.1}/THIRD_PARTY_NOTICES.md +0 -0
  33. {masster-0.5.28 → masster-0.6.1}/src/masster/__init__.py +0 -0
  34. {masster-0.5.28 → masster-0.6.1}/src/masster/chromatogram.py +0 -0
  35. {masster-0.5.28 → masster-0.6.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.28 → masster-0.6.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.28 → masster-0.6.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.28 → masster-0.6.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.28 → masster-0.6.1}/src/masster/lib/__init__.py +0 -0
  40. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/__init__.py +0 -0
  41. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/defaults/__init__.py +0 -0
  42. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/defaults/find_features_def.py +0 -0
  43. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/defaults/find_ms2_def.py +0 -0
  44. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/defaults/get_spectrum_def.py +0 -0
  45. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/defaults/sample_def.py +0 -0
  46. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/lib.py +0 -0
  47. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/load.py +0 -0
  48. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/parameters.py +0 -0
  49. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/processing.py +0 -0
  50. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/quant.py +0 -0
  51. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/save.py +0 -0
  52. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/sciex.py +0 -0
  53. {masster-0.5.28 → masster-0.6.1}/src/masster/sample/thermo.py +0 -0
  54. {masster-0.5.28 → masster-0.6.1}/src/masster/spectrum.py +0 -0
  55. {masster-0.5.28 → masster-0.6.1}/src/masster/study/__init__.py +0 -0
  56. {masster-0.5.28 → masster-0.6.1}/src/masster/study/analysis.py +0 -0
  57. {masster-0.5.28 → masster-0.6.1}/src/masster/study/defaults/__init__.py +0 -0
  58. {masster-0.5.28 → masster-0.6.1}/src/masster/study/defaults/align_def.py +0 -0
  59. {masster-0.5.28 → masster-0.6.1}/src/masster/study/defaults/export_def.py +0 -0
  60. {masster-0.5.28 → masster-0.6.1}/src/masster/study/defaults/fill_def.py +0 -0
  61. {masster-0.5.28 → masster-0.6.1}/src/masster/study/defaults/find_consensus_def.py +0 -0
  62. {masster-0.5.28 → masster-0.6.1}/src/masster/study/defaults/find_ms2_def.py +0 -0
  63. {masster-0.5.28 → masster-0.6.1}/src/masster/study/defaults/identify_def.py +0 -0
  64. {masster-0.5.28 → masster-0.6.1}/src/masster/study/defaults/integrate_chrom_def.py +0 -0
  65. {masster-0.5.28 → masster-0.6.1}/src/masster/study/defaults/integrate_def.py +0 -0
  66. {masster-0.5.28 → masster-0.6.1}/src/masster/study/defaults/merge_def.py +0 -0
  67. {masster-0.5.28 → masster-0.6.1}/src/masster/study/h5.py +0 -0
  68. {masster-0.5.28 → masster-0.6.1}/src/masster/study/helpers.py +0 -0
  69. {masster-0.5.28 → masster-0.6.1}/src/masster/study/importers.py +0 -0
  70. {masster-0.5.28 → masster-0.6.1}/src/masster/study/parameters.py +0 -0
  71. {masster-0.5.28 → masster-0.6.1}/src/masster/study/processing.py +0 -0
  72. {masster-0.5.28 → masster-0.6.1}/src/masster/study/save.py +0 -0
  73. {masster-0.5.28 → masster-0.6.1}/src/masster/wizard/__init__.py +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: masster
3
- Version: 0.5.28
3
+ Version: 0.6.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
7
7
  Project-URL: documentation, https://github.com/zamboni-lab/masster#readme
8
8
  Project-URL: Third-Party Licenses, https://github.com/zamboni-lab/masster/blob/main/THIRD_PARTY_NOTICES.md
9
- Author: Zamboni Lab
9
+ Author: Zamboni Lab, ETH Zurich
10
10
  License: GNU AFFERO GENERAL PUBLIC LICENSE
11
11
  Version 3, 19 November 2007
12
12
 
@@ -734,19 +734,19 @@ Description-Content-Type: text/markdown
734
734
 
735
735
  ## Background and motivation
736
736
 
737
- MASSter is actively used, maintainted, and developed by the Zamboni Lab at ETH Zurich. The project started because many needs of were unmatched by the "usual" software packages (mzmine, msdial, W4M, ...), e.g. performance, scalability, sensitivity, robustness, speed, rapid implementation of new features, embedding in ETL systems, and so on.
737
+ MASSter is actively used, maintained, and developed by the Zamboni Lab at ETH Zurich. The project started because many needs were unmet by the "usual" software packages (mzMine, MS-DIAL, Workflow4Metabolomics (W4M), ...), for example performance, scalability, sensitivity, robustness, speed, rapid implementation of new features, and embedding in ETL systems.
738
738
 
739
- All methods include a long list of parameters, and might wrap alternative algorithms. These are only relevant for advanced users. We recommend running the processing methods with defaults, or using the Wizard.
739
+ All methods include many parameters and may wrap alternative algorithms. These options are primarily relevant for advanced users. We recommend running the processing methods with the defaults or using the Wizard.
740
740
 
741
741
  ## Content
742
742
 
743
743
  MASSter is designed to deal with DDA data, and hides functionalities for DIA and ZTScan DIA data. The sample-centric feature detection uses OpenMS, which is both accurate and fast, and it was wrapped with additional code to improve isotope and adduct detection. All other functionalities are own implementations: centroiding, RT alignment, adduct and isotopomer detection, merging of multiple samples, gap-filling, quantification, etc.
744
744
 
745
- MASSter was engineered to maximize quality of results, sensitivity, scalability, and also speed. Yes, it's Python which is notoriously slower than other languages, but considerable time was spent in speeding up everything, including the systematic use of [polars](https://pola.rs/), numpy vectorization, multiprocessing, chunking, etc. MASSter was tested with studies with 3000+ LC-MS/MS samples (1 Mio MS2 spectra), and it autonomously completed analysis within a few hours.
745
+ MASSter was engineered to maximize result quality, sensitivity, scalability, and speed. Yes, it's Python, which can be slower than other languages, but considerable effort was spent on optimizations, including the systematic use of [Polars](https://pola.rs/), NumPy vectorization, multiprocessing, and chunking. MASSter has been tested on studies with 3,000+ LCMS/MS samples (1 million MS2 spectra) and autonomously completed analyses within a few hours.
746
746
 
747
747
  ## Architecture
748
748
 
749
- MASSter defines own classes for Spectra, Chromatograms, Libraries, Samples, and Studies (= bunch of samples, i.e. a LC-MS sequence). Users will deal mostly with one Study() object at the time. Sample() objects are created when analyzing a batch - and saved for caching -, or will be used only for development, troubleshooting, or to generate illustrations.
749
+ MASSter defines classes for Spectra, Chromatograms, Libraries, Samples, and Studies (a Study is a collection of samples, i.e. an LCMS sequence). Users will typically work with a single `Study` object at a time. `Sample` objects are created when analyzing a batch (and saved for caching), or used for development, troubleshooting, or generating illustrations.
750
750
 
751
751
  The analysis can be done in scripts (without user intervention, e.g. by the integrated Wizard), or interactively in notebooks, i.e. [marimo](https://marimo.io/) or [jupyter](https://jupyter.org/).
752
752
 
@@ -756,9 +756,9 @@ You'll need to install Python (3.10-3.13, 3.14 has not been tested yet).
756
756
 
757
757
  MASSter reads raw (Thermo), wiff (SCIEX), or mzML data. Reading vendor formats relies on .NET libraries, and is only possible in Windows. On Linux or MacOS, you'll be forced to use mzML data.
758
758
 
759
- **It's recommended to use data in either vendor's raw format (wiff and raw) or mzML in profile data.** MASSter includes a sophisticated and sufficiently fast centroiding algorithm that works well across the full dynamic range and will only act on the spectra that are relevant. In our tests with data from different vendors, the centroiding performed much better than most Vendor's implementations (that are primarily proteomics-centric).
759
+ **It's recommended to use data in either the vendor's raw formats (WIFF and Thermo RAW) or mzML in profile mode.** MASSter includes a sophisticated and sufficiently fast centroiding algorithm that works well across the full dynamic range and will only act on spectra that are relevant. In our tests with data from different vendors, the centroiding performed much better than most vendor implementations (which are primarily proteomics-centric).
760
760
 
761
- If still want to convert raw data to centroided mzML, please use (CentroidR)[https://github.com/Adafede/CentroidR/tree/0.0.0.9001].
761
+ If you still want to convert raw data to centroided mzML, please use CentroidR: https://github.com/Adafede/CentroidR/tree/0.0.0.9001
762
762
 
763
763
  ## Installation
764
764
 
@@ -769,7 +769,7 @@ pip install masster
769
769
  ## Getting started
770
770
  **The quickest way to use, or learn how to use MASSter, is to use the Wizard** which we integrated and, ideally, takes care of everything automatically.
771
771
 
772
- The Wizard only needs to know where to find the MS files and were the store the results.
772
+ The Wizard only needs to know where to find the MS files and where to store the results.
773
773
  ```python
774
774
  from masster import Wizard
775
775
  wiz = Wizard(
@@ -780,15 +780,15 @@ wiz = Wizard(
780
780
  wiz.test_and_run()
781
781
  ```
782
782
 
783
- This will trigger the analysis of raw data, and the creation of a script to process all samples and then assemble the study. The whole processing will be stored as `1_masster_workflow.py` in the output folder. The wizard will test once and, if successull, run the full workflow using parallel processes. Once the processing is over you, navigate to `folder` to see what happened...
783
+ This will trigger the analysis of raw data, and the creation of a script to process all samples and then assemble the study. The whole processing will be stored as `1_masster_workflow.py` in the output folder. The wizard will test once and, if successful, run the full workflow using parallel processes. Once the processing is over you, navigate to `folder` to see what happened...
784
784
 
785
785
  If you want to interact with your data, we recommend using [marimo](https://marimo.io/) or [jupyter](https://jupyter.org/) and open the `*.study5` file, for example:
786
786
 
787
787
  ```bash
788
- # use marimo to open the script created by marino
789
- marimo edit '..\..folder_to_store_results\2_interactive_analysis.py'
790
- # or, if you use uv to manage an environment with masster
791
- uv run marimo edit '..\..folder_to_store_results\2_interactive_analysis.py'
788
+ # use marimo to open the script created by marimo
789
+ marimo edit '..\\..\\folder_to_store_results\\2_interactive_analysis.py'
790
+ # or, if you use uv to manage an environment with masster
791
+ uv run marimo edit '..\\..\\folder_to_store_results\\2_interactive_analysis.py'
792
792
  ```
793
793
 
794
794
  ### Basic Workflow for analyzing LC-MS study with 1-1000+ samples
@@ -833,6 +833,7 @@ study.save()
833
833
  study.plot_samples_pca()
834
834
  study.plot_samples_umap()
835
835
  study.plot_samples_2d()
836
+ study.plot_heatmap()
836
837
 
837
838
  # To know more about the available methods...
838
839
  dir(study)
@@ -874,7 +875,7 @@ sample.plot_2d()
874
875
  sample.plot_features_stats()
875
876
 
876
877
  # explore methods
877
- dir(study)
878
+ dir(sample)
878
879
  ```
879
880
 
880
881
  ## Disclaimer
@@ -885,11 +886,9 @@ dir(study)
885
886
  - **Backward compatibility**: We do not guarantee backward compatibility between versions. Breaking changes may occur as we improve the software
886
887
  - **Performance**: While optimized for our workflows, performance may vary depending on your data and system configuration
887
888
  - **Results**: We do our best to ensure accuracy, but you should validate results independently for your research
888
- - **Support**: This is an academic project with limited resources. Community support is available through GitHub issues, but we cannot guarantee response times
889
+ - **Support**: This is an academic project with limited resources. At the moment, we do not provide external user support.
889
890
  - **Production use**: If you plan to use MASSter in production or critical workflows, thorough testing with your data is recommended
890
891
 
891
- We welcome feedback, bug reports, and contributions via GitHub!
892
-
893
892
  ## License
894
893
  GNU Affero General Public License v3
895
894
 
@@ -6,19 +6,19 @@
6
6
 
7
7
  ## Background and motivation
8
8
 
9
- MASSter is actively used, maintainted, and developed by the Zamboni Lab at ETH Zurich. The project started because many needs of were unmatched by the "usual" software packages (mzmine, msdial, W4M, ...), e.g. performance, scalability, sensitivity, robustness, speed, rapid implementation of new features, embedding in ETL systems, and so on.
9
+ MASSter is actively used, maintained, and developed by the Zamboni Lab at ETH Zurich. The project started because many needs were unmet by the "usual" software packages (mzMine, MS-DIAL, Workflow4Metabolomics (W4M), ...), for example performance, scalability, sensitivity, robustness, speed, rapid implementation of new features, and embedding in ETL systems.
10
10
 
11
- All methods include a long list of parameters, and might wrap alternative algorithms. These are only relevant for advanced users. We recommend running the processing methods with defaults, or using the Wizard.
11
+ All methods include many parameters and may wrap alternative algorithms. These options are primarily relevant for advanced users. We recommend running the processing methods with the defaults or using the Wizard.
12
12
 
13
13
  ## Content
14
14
 
15
15
  MASSter is designed to deal with DDA data, and hides functionalities for DIA and ZTScan DIA data. The sample-centric feature detection uses OpenMS, which is both accurate and fast, and it was wrapped with additional code to improve isotope and adduct detection. All other functionalities are own implementations: centroiding, RT alignment, adduct and isotopomer detection, merging of multiple samples, gap-filling, quantification, etc.
16
16
 
17
- MASSter was engineered to maximize quality of results, sensitivity, scalability, and also speed. Yes, it's Python which is notoriously slower than other languages, but considerable time was spent in speeding up everything, including the systematic use of [polars](https://pola.rs/), numpy vectorization, multiprocessing, chunking, etc. MASSter was tested with studies with 3000+ LC-MS/MS samples (1 Mio MS2 spectra), and it autonomously completed analysis within a few hours.
17
+ MASSter was engineered to maximize result quality, sensitivity, scalability, and speed. Yes, it's Python, which can be slower than other languages, but considerable effort was spent on optimizations, including the systematic use of [Polars](https://pola.rs/), NumPy vectorization, multiprocessing, and chunking. MASSter has been tested on studies with 3,000+ LCMS/MS samples (1 million MS2 spectra) and autonomously completed analyses within a few hours.
18
18
 
19
19
  ## Architecture
20
20
 
21
- MASSter defines own classes for Spectra, Chromatograms, Libraries, Samples, and Studies (= bunch of samples, i.e. a LC-MS sequence). Users will deal mostly with one Study() object at the time. Sample() objects are created when analyzing a batch - and saved for caching -, or will be used only for development, troubleshooting, or to generate illustrations.
21
+ MASSter defines classes for Spectra, Chromatograms, Libraries, Samples, and Studies (a Study is a collection of samples, i.e. an LCMS sequence). Users will typically work with a single `Study` object at a time. `Sample` objects are created when analyzing a batch (and saved for caching), or used for development, troubleshooting, or generating illustrations.
22
22
 
23
23
  The analysis can be done in scripts (without user intervention, e.g. by the integrated Wizard), or interactively in notebooks, i.e. [marimo](https://marimo.io/) or [jupyter](https://jupyter.org/).
24
24
 
@@ -28,9 +28,9 @@ You'll need to install Python (3.10-3.13, 3.14 has not been tested yet).
28
28
 
29
29
  MASSter reads raw (Thermo), wiff (SCIEX), or mzML data. Reading vendor formats relies on .NET libraries, and is only possible in Windows. On Linux or MacOS, you'll be forced to use mzML data.
30
30
 
31
- **It's recommended to use data in either vendor's raw format (wiff and raw) or mzML in profile data.** MASSter includes a sophisticated and sufficiently fast centroiding algorithm that works well across the full dynamic range and will only act on the spectra that are relevant. In our tests with data from different vendors, the centroiding performed much better than most Vendor's implementations (that are primarily proteomics-centric).
31
+ **It's recommended to use data in either the vendor's raw formats (WIFF and Thermo RAW) or mzML in profile mode.** MASSter includes a sophisticated and sufficiently fast centroiding algorithm that works well across the full dynamic range and will only act on spectra that are relevant. In our tests with data from different vendors, the centroiding performed much better than most vendor implementations (which are primarily proteomics-centric).
32
32
 
33
- If still want to convert raw data to centroided mzML, please use (CentroidR)[https://github.com/Adafede/CentroidR/tree/0.0.0.9001].
33
+ If you still want to convert raw data to centroided mzML, please use CentroidR: https://github.com/Adafede/CentroidR/tree/0.0.0.9001
34
34
 
35
35
  ## Installation
36
36
 
@@ -41,7 +41,7 @@ pip install masster
41
41
  ## Getting started
42
42
  **The quickest way to use, or learn how to use MASSter, is to use the Wizard** which we integrated and, ideally, takes care of everything automatically.
43
43
 
44
- The Wizard only needs to know where to find the MS files and were the store the results.
44
+ The Wizard only needs to know where to find the MS files and where to store the results.
45
45
  ```python
46
46
  from masster import Wizard
47
47
  wiz = Wizard(
@@ -52,15 +52,15 @@ wiz = Wizard(
52
52
  wiz.test_and_run()
53
53
  ```
54
54
 
55
- This will trigger the analysis of raw data, and the creation of a script to process all samples and then assemble the study. The whole processing will be stored as `1_masster_workflow.py` in the output folder. The wizard will test once and, if successull, run the full workflow using parallel processes. Once the processing is over you, navigate to `folder` to see what happened...
55
+ This will trigger the analysis of raw data, and the creation of a script to process all samples and then assemble the study. The whole processing will be stored as `1_masster_workflow.py` in the output folder. The wizard will test once and, if successful, run the full workflow using parallel processes. Once the processing is over you, navigate to `folder` to see what happened...
56
56
 
57
57
  If you want to interact with your data, we recommend using [marimo](https://marimo.io/) or [jupyter](https://jupyter.org/) and open the `*.study5` file, for example:
58
58
 
59
59
  ```bash
60
- # use marimo to open the script created by marino
61
- marimo edit '..\..folder_to_store_results\2_interactive_analysis.py'
62
- # or, if you use uv to manage an environment with masster
63
- uv run marimo edit '..\..folder_to_store_results\2_interactive_analysis.py'
60
+ # use marimo to open the script created by marimo
61
+ marimo edit '..\\..\\folder_to_store_results\\2_interactive_analysis.py'
62
+ # or, if you use uv to manage an environment with masster
63
+ uv run marimo edit '..\\..\\folder_to_store_results\\2_interactive_analysis.py'
64
64
  ```
65
65
 
66
66
  ### Basic Workflow for analyzing LC-MS study with 1-1000+ samples
@@ -105,6 +105,7 @@ study.save()
105
105
  study.plot_samples_pca()
106
106
  study.plot_samples_umap()
107
107
  study.plot_samples_2d()
108
+ study.plot_heatmap()
108
109
 
109
110
  # To know more about the available methods...
110
111
  dir(study)
@@ -146,7 +147,7 @@ sample.plot_2d()
146
147
  sample.plot_features_stats()
147
148
 
148
149
  # explore methods
149
- dir(study)
150
+ dir(sample)
150
151
  ```
151
152
 
152
153
  ## Disclaimer
@@ -157,11 +158,9 @@ dir(study)
157
158
  - **Backward compatibility**: We do not guarantee backward compatibility between versions. Breaking changes may occur as we improve the software
158
159
  - **Performance**: While optimized for our workflows, performance may vary depending on your data and system configuration
159
160
  - **Results**: We do our best to ensure accuracy, but you should validate results independently for your research
160
- - **Support**: This is an academic project with limited resources. Community support is available through GitHub issues, but we cannot guarantee response times
161
+ - **Support**: This is an academic project with limited resources. At the moment, we do not provide external user support.
161
162
  - **Production use**: If you plan to use MASSter in production or critical workflows, thorough testing with your data is recommended
162
163
 
163
- We welcome feedback, bug reports, and contributions via GitHub!
164
-
165
164
  ## License
166
165
  GNU Affero General Public License v3
167
166
 
@@ -1,10 +1,10 @@
1
1
 
2
2
  [project]
3
3
  name = "masster"
4
- version = "0.5.28"
4
+ version = "0.6.1"
5
5
  description = "Mass spectrometry data analysis package"
6
6
  authors = [
7
- { name = "Zamboni Lab" }
7
+ { name = "Zamboni Lab, ETH Zurich" }
8
8
  ]
9
9
  license = { file = "LICENSE" }
10
10
  readme = "README.md"
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
 
4
- __version__ = "0.5.25"
4
+ __version__ = "0.6.1"
5
5
 
6
6
 
7
7
  def get_version():
@@ -0,0 +1,240 @@
1
+ {
2
+ "version": "1.0",
3
+ "creation_date": "2025-10-30T14:38:00.595771",
4
+ "description": "Converted from CSV file aa.csv containing 21 records",
5
+ "source_file": "aa.csv",
6
+ "record_count": 21,
7
+ "data": [
8
+ {
9
+ "Name": "L-Glutamic acid",
10
+ "Formula": "C5H9NO4",
11
+ "SMILES": "N[C@@H](CCC(O)=O)C(O)=O",
12
+ "InChIKey": "WHUUTDBJXJRKMK-VKHMYHEASA-N",
13
+ "db_id": "CID:33032",
14
+ "db": "pubchem",
15
+ "rt": "",
16
+ "rt_min": "",
17
+ "rt_max": ""
18
+ },
19
+ {
20
+ "Name": "L-Tyrosine",
21
+ "Formula": "C9H11NO3",
22
+ "SMILES": "N[C@@H](CC1=CC=C(O)C=C1)C(O)=O",
23
+ "InChIKey": "OUYCCCASQSFEME-QMMMGPOBSA-N",
24
+ "db_id": "CID:6057",
25
+ "db": "pubchem",
26
+ "rt": "",
27
+ "rt_min": "",
28
+ "rt_max": ""
29
+ },
30
+ {
31
+ "Name": "L-Phenylalanine",
32
+ "Formula": "C9H11NO2",
33
+ "SMILES": "N[C@@H](CC1=CC=CC=C1)C(O)=O",
34
+ "InChIKey": "COLNVLDHVKWLRT-QMMMGPOBSA-N",
35
+ "db_id": "CID:6140",
36
+ "db": "pubchem",
37
+ "rt": "",
38
+ "rt_min": "",
39
+ "rt_max": ""
40
+ },
41
+ {
42
+ "Name": "L-Alanine",
43
+ "Formula": "C3H7NO2",
44
+ "SMILES": "C[C@H](N)C(O)=O",
45
+ "InChIKey": "QNAYBMKLOCPYGJ-REOHCLBHSA-N",
46
+ "db_id": "CID:5950",
47
+ "db": "pubchem",
48
+ "rt": "",
49
+ "rt_min": "",
50
+ "rt_max": ""
51
+ },
52
+ {
53
+ "Name": "L-Proline",
54
+ "Formula": "C5H9NO2",
55
+ "SMILES": "OC(=O)[C@@H]1CCCN1",
56
+ "InChIKey": "ONIBWKKTOPOVIA-BYPYZUCNSA-N",
57
+ "db_id": "CID:145742",
58
+ "db": "pubchem",
59
+ "rt": "",
60
+ "rt_min": "",
61
+ "rt_max": ""
62
+ },
63
+ {
64
+ "Name": "L-Threonine",
65
+ "Formula": "C4H9NO3",
66
+ "SMILES": "C[C@@H](O)[C@H](N)C(O)=O",
67
+ "InChIKey": "AYFVYJQAPQTCCC-GBXIJSLDSA-N",
68
+ "db_id": "CID:6288",
69
+ "db": "pubchem",
70
+ "rt": "",
71
+ "rt_min": "",
72
+ "rt_max": ""
73
+ },
74
+ {
75
+ "Name": "L-Asparagine",
76
+ "Formula": "C4H8N2O3",
77
+ "SMILES": "N[C@@H](CC(N)=O)C(O)=O",
78
+ "InChIKey": "DCXYFEDJOCDNAF-REOHCLBHSA-N",
79
+ "db_id": "CID:6267",
80
+ "db": "pubchem",
81
+ "rt": "",
82
+ "rt_min": "",
83
+ "rt_max": ""
84
+ },
85
+ {
86
+ "Name": "L-Isoleucine",
87
+ "Formula": "C6H13NO2",
88
+ "SMILES": "CC[C@H](C)[C@H](N)C(O)=O",
89
+ "InChIKey": "AGPKZVBTJJNPAG-WHFBIAKZSA-N",
90
+ "db_id": "CID:6306",
91
+ "db": "pubchem",
92
+ "rt": "",
93
+ "rt_min": "",
94
+ "rt_max": ""
95
+ },
96
+ {
97
+ "Name": "L-Histidine",
98
+ "Formula": "C6H9N3O2",
99
+ "SMILES": "N[C@@H](CC1=CN=CN1)C(O)=O",
100
+ "InChIKey": "HNDVDQJCIGZPNO-YFKPBYRVSA-N",
101
+ "db_id": "CID:6274",
102
+ "db": "pubchem",
103
+ "rt": "",
104
+ "rt_min": "",
105
+ "rt_max": ""
106
+ },
107
+ {
108
+ "Name": "L-Lysine",
109
+ "Formula": "C6H14N2O2",
110
+ "SMILES": "NCCCC[C@H](N)C(O)=O",
111
+ "InChIKey": "KDXKERNSBIXSRK-YFKPBYRVSA-N",
112
+ "db_id": "CID:5962",
113
+ "db": "pubchem",
114
+ "rt": "",
115
+ "rt_min": "",
116
+ "rt_max": ""
117
+ },
118
+ {
119
+ "Name": "L-Serine",
120
+ "Formula": "C3H7NO3",
121
+ "SMILES": "N[C@@H](CO)C(O)=O",
122
+ "InChIKey": "MTCFGRXMJLQNBG-REOHCLBHSA-N",
123
+ "db_id": "CID:5951",
124
+ "db": "pubchem",
125
+ "rt": "",
126
+ "rt_min": "",
127
+ "rt_max": ""
128
+ },
129
+ {
130
+ "Name": "L-Aspartic acid",
131
+ "Formula": "C4H7NO4",
132
+ "SMILES": "N[C@@H](CC(O)=O)C(O)=O",
133
+ "InChIKey": "CKLJMWTZIZZHCS-REOHCLBHSA-N",
134
+ "db_id": "CID:5960",
135
+ "db": "pubchem",
136
+ "rt": "",
137
+ "rt_min": "",
138
+ "rt_max": ""
139
+ },
140
+ {
141
+ "Name": "L-Cystine",
142
+ "Formula": "C6H12N2O4S2",
143
+ "SMILES": "N[C@@H](CSSC[C@H](N)C(O)=O)C(O)=O",
144
+ "InChIKey": "LEVWYRKDKASIDU-IMJSIDKUSA-N",
145
+ "db_id": "CID:67678",
146
+ "db": "pubchem",
147
+ "rt": "",
148
+ "rt_min": "",
149
+ "rt_max": ""
150
+ },
151
+ {
152
+ "Name": "L-Arginine",
153
+ "Formula": "C6H14N4O2",
154
+ "SMILES": "N[C@@H](CCCNC(N)=N)C(O)=O",
155
+ "InChIKey": "ODKSFYDXXFIFQN-BYPYZUCNSA-N",
156
+ "db_id": "CID:6322",
157
+ "db": "pubchem",
158
+ "rt": "",
159
+ "rt_min": "",
160
+ "rt_max": ""
161
+ },
162
+ {
163
+ "Name": "L-Cysteine",
164
+ "Formula": "C3H7NO2S",
165
+ "SMILES": "N[C@@H](CS)C(O)=O",
166
+ "InChIKey": "XUJNEKJLAYXESH-REOHCLBHSA-N",
167
+ "db_id": "CID:5862",
168
+ "db": "pubchem",
169
+ "rt": "",
170
+ "rt_min": "",
171
+ "rt_max": ""
172
+ },
173
+ {
174
+ "Name": "L-Glutamine",
175
+ "Formula": "C5H10N2O3",
176
+ "SMILES": "N[C@@H](CCC(N)=O)C(O)=O",
177
+ "InChIKey": "ZDXPYRJPNDTMRX-VKHMYHEASA-N",
178
+ "db_id": "CID:5961",
179
+ "db": "pubchem",
180
+ "rt": "",
181
+ "rt_min": "",
182
+ "rt_max": ""
183
+ },
184
+ {
185
+ "Name": "L-Leucine",
186
+ "Formula": "C6H13NO2",
187
+ "SMILES": "CC(C)C[C@H](N)C(O)=O",
188
+ "InChIKey": "ROHFNLRQFUQHCH-YFKPBYRVSA-N",
189
+ "db_id": "CID:6106",
190
+ "db": "pubchem",
191
+ "rt": "",
192
+ "rt_min": "",
193
+ "rt_max": ""
194
+ },
195
+ {
196
+ "Name": "L-Methionine",
197
+ "Formula": "C5H11NO2S",
198
+ "SMILES": "CSCC[C@H](N)C(O)=O",
199
+ "InChIKey": "FFEARJCKVFRZRR-BYPYZUCNSA-N",
200
+ "db_id": "CID:6137",
201
+ "db": "pubchem",
202
+ "rt": "",
203
+ "rt_min": "",
204
+ "rt_max": ""
205
+ },
206
+ {
207
+ "Name": "L-Valine",
208
+ "Formula": "C5H11NO2",
209
+ "SMILES": "CC(C)[C@H](N)C(O)=O",
210
+ "InChIKey": "KZSNJWFQEVHDMF-BYPYZUCNSA-N",
211
+ "db_id": "CID:6287",
212
+ "db": "pubchem",
213
+ "rt": "",
214
+ "rt_min": "",
215
+ "rt_max": ""
216
+ },
217
+ {
218
+ "Name": "L-Tryptophan",
219
+ "Formula": "C11H12N2O2",
220
+ "SMILES": "N[C@@H](CC1=CNC2=C1C=CC=C2)C(O)=O",
221
+ "InChIKey": "QIVBCDIJIAJPQS-VIFPVBQESA-N",
222
+ "db_id": "CID:6305",
223
+ "db": "pubchem",
224
+ "rt": "",
225
+ "rt_min": "",
226
+ "rt_max": ""
227
+ },
228
+ {
229
+ "Name": "Glycine",
230
+ "Formula": "C2H5NO2",
231
+ "SMILES": "NCC(O)=O",
232
+ "InChIKey": "QNAYBMKLOCPYGJ-UHFFFAOYSA-N",
233
+ "db_id": "CID:750",
234
+ "db": "Glycine",
235
+ "rt": "",
236
+ "rt_min": "",
237
+ "rt_max": ""
238
+ }
239
+ ]
240
+ }