masster 0.5.28__tar.gz → 0.6.0__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.0}/PKG-INFO +15 -17
  2. {masster-0.5.28 → masster-0.6.0}/README.md +14 -16
  3. {masster-0.5.28 → masster-0.6.0}/pyproject.toml +1 -1
  4. {masster-0.5.28 → masster-0.6.0}/src/masster/_version.py +1 -1
  5. masster-0.6.0/src/masster/data/libs/aa_nort.json +240 -0
  6. masster-0.6.0/src/masster/data/libs/ccm_nort.json +1319 -0
  7. {masster-0.5.28 → masster-0.6.0}/src/masster/lib/lib.py +1 -1
  8. {masster-0.5.28 → masster-0.6.0}/src/masster/logger.py +0 -6
  9. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/adducts.py +1 -1
  10. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/defaults/find_adducts_def.py +1 -1
  11. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/h5.py +152 -2
  12. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/helpers.py +91 -5
  13. masster-0.6.0/src/masster/sample/id.py +1160 -0
  14. masster-0.6.0/src/masster/sample/importers.py +316 -0
  15. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/plot.py +175 -71
  16. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/sample.py +18 -3
  17. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/sample5_schema.json +99 -1
  18. {masster-0.5.28 → masster-0.6.0}/src/masster/study/defaults/study_def.py +8 -12
  19. {masster-0.5.28 → masster-0.6.0}/src/masster/study/id.py +59 -12
  20. {masster-0.5.28 → masster-0.6.0}/src/masster/study/load.py +0 -11
  21. {masster-0.5.28 → masster-0.6.0}/src/masster/study/merge.py +153 -0
  22. {masster-0.5.28 → masster-0.6.0}/src/masster/study/plot.py +197 -0
  23. {masster-0.5.28 → masster-0.6.0}/src/masster/study/study.py +3 -1
  24. {masster-0.5.28 → masster-0.6.0}/src/masster/study/study5_schema.json +15 -0
  25. {masster-0.5.28 → masster-0.6.0}/src/masster/wizard/wizard.py +11 -12
  26. masster-0.5.28/src/masster/data/libs/aa.csv +0 -22
  27. masster-0.5.28/src/masster/data/libs/ccm.csv +0 -120
  28. masster-0.5.28/src/masster/data/libs/urine.csv +0 -4693
  29. {masster-0.5.28 → masster-0.6.0}/.gitignore +0 -0
  30. {masster-0.5.28 → masster-0.6.0}/LICENSE +0 -0
  31. {masster-0.5.28 → masster-0.6.0}/THIRD_PARTY_NOTICES.md +0 -0
  32. {masster-0.5.28 → masster-0.6.0}/src/masster/__init__.py +0 -0
  33. {masster-0.5.28 → masster-0.6.0}/src/masster/chromatogram.py +0 -0
  34. {masster-0.5.28 → masster-0.6.0}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.timeseries.data +0 -0
  35. {masster-0.5.28 → masster-0.6.0}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff +0 -0
  36. {masster-0.5.28 → masster-0.6.0}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff.scan +0 -0
  37. {masster-0.5.28 → masster-0.6.0}/src/masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff2 +0 -0
  38. {masster-0.5.28 → masster-0.6.0}/src/masster/lib/__init__.py +0 -0
  39. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/__init__.py +0 -0
  40. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/defaults/__init__.py +0 -0
  41. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/defaults/find_features_def.py +0 -0
  42. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/defaults/find_ms2_def.py +0 -0
  43. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/defaults/get_spectrum_def.py +0 -0
  44. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/defaults/sample_def.py +0 -0
  45. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/lib.py +0 -0
  46. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/load.py +0 -0
  47. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/parameters.py +0 -0
  48. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/processing.py +0 -0
  49. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/quant.py +0 -0
  50. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/save.py +0 -0
  51. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/sciex.py +0 -0
  52. {masster-0.5.28 → masster-0.6.0}/src/masster/sample/thermo.py +0 -0
  53. {masster-0.5.28 → masster-0.6.0}/src/masster/spectrum.py +0 -0
  54. {masster-0.5.28 → masster-0.6.0}/src/masster/study/__init__.py +0 -0
  55. {masster-0.5.28 → masster-0.6.0}/src/masster/study/analysis.py +0 -0
  56. {masster-0.5.28 → masster-0.6.0}/src/masster/study/defaults/__init__.py +0 -0
  57. {masster-0.5.28 → masster-0.6.0}/src/masster/study/defaults/align_def.py +0 -0
  58. {masster-0.5.28 → masster-0.6.0}/src/masster/study/defaults/export_def.py +0 -0
  59. {masster-0.5.28 → masster-0.6.0}/src/masster/study/defaults/fill_def.py +0 -0
  60. {masster-0.5.28 → masster-0.6.0}/src/masster/study/defaults/find_consensus_def.py +0 -0
  61. {masster-0.5.28 → masster-0.6.0}/src/masster/study/defaults/find_ms2_def.py +0 -0
  62. {masster-0.5.28 → masster-0.6.0}/src/masster/study/defaults/identify_def.py +0 -0
  63. {masster-0.5.28 → masster-0.6.0}/src/masster/study/defaults/integrate_chrom_def.py +0 -0
  64. {masster-0.5.28 → masster-0.6.0}/src/masster/study/defaults/integrate_def.py +0 -0
  65. {masster-0.5.28 → masster-0.6.0}/src/masster/study/defaults/merge_def.py +0 -0
  66. {masster-0.5.28 → masster-0.6.0}/src/masster/study/export.py +0 -0
  67. {masster-0.5.28 → masster-0.6.0}/src/masster/study/h5.py +0 -0
  68. {masster-0.5.28 → masster-0.6.0}/src/masster/study/helpers.py +0 -0
  69. {masster-0.5.28 → masster-0.6.0}/src/masster/study/importers.py +0 -0
  70. {masster-0.5.28 → masster-0.6.0}/src/masster/study/parameters.py +0 -0
  71. {masster-0.5.28 → masster-0.6.0}/src/masster/study/processing.py +0 -0
  72. {masster-0.5.28 → masster-0.6.0}/src/masster/study/save.py +0 -0
  73. {masster-0.5.28 → masster-0.6.0}/src/masster/wizard/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: masster
3
- Version: 0.5.28
3
+ Version: 0.6.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
@@ -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
@@ -874,7 +874,7 @@ sample.plot_2d()
874
874
  sample.plot_features_stats()
875
875
 
876
876
  # explore methods
877
- dir(study)
877
+ dir(sample)
878
878
  ```
879
879
 
880
880
  ## Disclaimer
@@ -885,11 +885,9 @@ dir(study)
885
885
  - **Backward compatibility**: We do not guarantee backward compatibility between versions. Breaking changes may occur as we improve the software
886
886
  - **Performance**: While optimized for our workflows, performance may vary depending on your data and system configuration
887
887
  - **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
888
+ - **Support**: This is an academic project with limited resources. At the moment, we do not provide external user support.
889
889
  - **Production use**: If you plan to use MASSter in production or critical workflows, thorough testing with your data is recommended
890
890
 
891
- We welcome feedback, bug reports, and contributions via GitHub!
892
-
893
891
  ## License
894
892
  GNU Affero General Public License v3
895
893
 
@@ -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
@@ -146,7 +146,7 @@ sample.plot_2d()
146
146
  sample.plot_features_stats()
147
147
 
148
148
  # explore methods
149
- dir(study)
149
+ dir(sample)
150
150
  ```
151
151
 
152
152
  ## Disclaimer
@@ -157,11 +157,9 @@ dir(study)
157
157
  - **Backward compatibility**: We do not guarantee backward compatibility between versions. Breaking changes may occur as we improve the software
158
158
  - **Performance**: While optimized for our workflows, performance may vary depending on your data and system configuration
159
159
  - **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
160
+ - **Support**: This is an academic project with limited resources. At the moment, we do not provide external user support.
161
161
  - **Production use**: If you plan to use MASSter in production or critical workflows, thorough testing with your data is recommended
162
162
 
163
- We welcome feedback, bug reports, and contributions via GitHub!
164
-
165
163
  ## License
166
164
  GNU Affero General Public License v3
167
165
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  [project]
3
3
  name = "masster"
4
- version = "0.5.28"
4
+ version = "0.6.0"
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.25"
4
+ __version__ = "0.5.26"
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
+ }