masster 0.4.5__py3-none-any.whl → 0.4.6__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.
- masster/__init__.py +8 -8
- masster/chromatogram.py +2 -2
- masster/logger.py +3 -3
- masster/sample/__init__.py +1 -1
- masster/sample/adducts.py +1 -1
- masster/sample/h5.py +4 -4
- masster/sample/lib.py +2 -2
- masster/sample/load.py +7 -7
- masster/sample/parameters.py +1 -1
- masster/sample/plot.py +2 -2
- masster/sample/processing.py +2 -2
- masster/sample/sample.py +85 -85
- masster/sample/save.py +1 -1
- masster/spectrum.py +2 -2
- masster/study/__init__.py +1 -1
- masster/study/export.py +6 -6
- masster/study/h5.py +3 -3
- masster/study/helpers.py +9 -9
- masster/study/helpers_optimized.py +1 -1
- masster/study/id.py +4 -4
- masster/study/load.py +5 -5
- masster/study/plot.py +3 -3
- masster/study/processing.py +1 -1
- masster/study/save.py +1 -1
- masster/study/study.py +97 -97
- {masster-0.4.5.dist-info → masster-0.4.6.dist-info}/METADATA +3 -3
- {masster-0.4.5.dist-info → masster-0.4.6.dist-info}/RECORD +31 -31
- {masster-0.4.5.dist-info → masster-0.4.6.dist-info}/WHEEL +0 -0
- {masster-0.4.5.dist-info → masster-0.4.6.dist-info}/entry_points.txt +0 -0
- {masster-0.4.5.dist-info → masster-0.4.6.dist-info}/licenses/LICENSE +0 -0
- {masster-0.4.5.dist-info → masster-0.4.6.dist-info}/top_level.txt +0 -0
masster/__init__.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
|
|
2
|
+
masster - 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
|
|
11
|
+
from masster._version import __version__
|
|
12
12
|
|
|
13
|
-
# from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
16
|
-
from
|
|
17
|
-
from
|
|
18
|
-
from
|
|
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
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
__all__ = [
|
masster/chromatogram.py
CHANGED
|
@@ -88,10 +88,10 @@ class Chromatogram:
|
|
|
88
88
|
|
|
89
89
|
Example Usage:
|
|
90
90
|
>>> import numpy as np
|
|
91
|
-
>>> from
|
|
91
|
+
>>> from masster import Chromatogram
|
|
92
92
|
>>> rt = np.linspace(0, 300, 1000)
|
|
93
93
|
>>> intensity = np.random.normal(1000, 100, 1000)
|
|
94
|
-
>>> chromatogram =
|
|
94
|
+
>>> chromatogram = Chromatogram(rt=rt, inty=intensity, label="EIC m/z 150")
|
|
95
95
|
>>> chromatogram.find_peaks()
|
|
96
96
|
>>> chromatogram.calculate_area()
|
|
97
97
|
|
masster/logger.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# masster/logger.py
|
|
2
2
|
"""
|
|
3
|
-
Simple logger system for
|
|
3
|
+
Simple logger system for masster 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
|
|
@@ -59,7 +59,7 @@ class MasterLogger:
|
|
|
59
59
|
self.sink = sink
|
|
60
60
|
|
|
61
61
|
# Create a unique logger name for this instance
|
|
62
|
-
self.logger_name = f"
|
|
62
|
+
self.logger_name = f"masster.{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,7 +73,7 @@ class MasterLogger:
|
|
|
73
73
|
# Create a stream handler
|
|
74
74
|
self.handler = logging.StreamHandler(self.sink)
|
|
75
75
|
|
|
76
|
-
# Create formatter that matches the original
|
|
76
|
+
# Create formatter that matches the original masster style
|
|
77
77
|
class masterFormatter(logging.Formatter):
|
|
78
78
|
def __init__(self, label):
|
|
79
79
|
super().__init__()
|
masster/sample/__init__.py
CHANGED
masster/sample/adducts.py
CHANGED
|
@@ -18,7 +18,7 @@ from typing import List, Dict
|
|
|
18
18
|
from itertools import combinations
|
|
19
19
|
|
|
20
20
|
# Import defaults class for external use
|
|
21
|
-
from
|
|
21
|
+
from masster.sample.defaults.find_adducts_def import find_adducts_defaults
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
def _get_adducts(self, adducts_list: list = None, **kwargs):
|
masster/sample/h5.py
CHANGED
|
@@ -7,8 +7,8 @@ import polars as pl
|
|
|
7
7
|
|
|
8
8
|
from typing import Any, Dict, List, Optional, Tuple
|
|
9
9
|
|
|
10
|
-
from
|
|
11
|
-
from
|
|
10
|
+
from masster.chromatogram import Chromatogram
|
|
11
|
+
from masster.spectrum import Spectrum
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def _save_sample5(
|
|
@@ -356,7 +356,7 @@ def _load_sample5(self, filename: str, map: bool = False):
|
|
|
356
356
|
loaded_data = load_parameters_from_metadata(metadata_group)
|
|
357
357
|
|
|
358
358
|
# Always create a fresh sample_defaults object
|
|
359
|
-
from
|
|
359
|
+
from masster.sample.defaults.sample_def import sample_defaults
|
|
360
360
|
|
|
361
361
|
self.parameters = sample_defaults()
|
|
362
362
|
|
|
@@ -1096,7 +1096,7 @@ def _load_sample5_study(self, filename: str, map: bool = False):
|
|
|
1096
1096
|
loaded_data = load_parameters_from_metadata(metadata_group)
|
|
1097
1097
|
|
|
1098
1098
|
# Always create a fresh sample_defaults object
|
|
1099
|
-
from
|
|
1099
|
+
from masster.sample.defaults.sample_def import sample_defaults
|
|
1100
1100
|
|
|
1101
1101
|
self.parameters = sample_defaults()
|
|
1102
1102
|
|
masster/sample/lib.py
CHANGED
|
@@ -34,7 +34,7 @@ Supported Adducts:
|
|
|
34
34
|
|
|
35
35
|
Example Usage:
|
|
36
36
|
```python
|
|
37
|
-
from
|
|
37
|
+
from masster.sample.lib import Lib
|
|
38
38
|
|
|
39
39
|
# Create library instance
|
|
40
40
|
lib = Lib()
|
|
@@ -63,7 +63,7 @@ import pyopenms as oms
|
|
|
63
63
|
|
|
64
64
|
from tqdm import tqdm
|
|
65
65
|
|
|
66
|
-
from
|
|
66
|
+
from masster.chromatogram import Chromatogram
|
|
67
67
|
# Parameters removed - using hardcoded defaults
|
|
68
68
|
|
|
69
69
|
|
masster/sample/load.py
CHANGED
|
@@ -47,10 +47,10 @@ import pyopenms as oms
|
|
|
47
47
|
|
|
48
48
|
from tqdm import tqdm
|
|
49
49
|
|
|
50
|
-
from
|
|
50
|
+
from masster.chromatogram import Chromatogram
|
|
51
51
|
|
|
52
52
|
# Parameters removed - using hardcoded defaults
|
|
53
|
-
from
|
|
53
|
+
from masster.spectrum import Spectrum
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
def load(
|
|
@@ -556,12 +556,12 @@ def _load_wiff(
|
|
|
556
556
|
filename=None,
|
|
557
557
|
):
|
|
558
558
|
try:
|
|
559
|
-
# Use
|
|
560
|
-
from
|
|
559
|
+
# Use masster's own implementation first
|
|
560
|
+
from masster.sample.sciex import SciexWiffData as MasterSciexWiffData
|
|
561
561
|
|
|
562
562
|
SciexWiffDataClass = MasterSciexWiffData
|
|
563
563
|
except ImportError:
|
|
564
|
-
# Fallback to alpharaw if
|
|
564
|
+
# Fallback to alpharaw if masster implementation fails
|
|
565
565
|
from alpharaw.sciex import SciexWiffData as AlpharawSciexWiffData
|
|
566
566
|
|
|
567
567
|
SciexWiffDataClass = AlpharawSciexWiffData
|
|
@@ -972,8 +972,8 @@ def index_file(self):
|
|
|
972
972
|
try:
|
|
973
973
|
from alpharaw.sciex import SciexWiffData
|
|
974
974
|
except ImportError:
|
|
975
|
-
# Fallback to
|
|
976
|
-
from
|
|
975
|
+
# Fallback to masster's own implementation
|
|
976
|
+
from masster.sample.sciex import SciexWiffData
|
|
977
977
|
|
|
978
978
|
raw_data = SciexWiffData(centroided=False)
|
|
979
979
|
raw_data.keep_k_peaks_per_spec = self.parameters.max_points_per_spectrum
|
masster/sample/parameters.py
CHANGED
|
@@ -85,7 +85,7 @@ def update_parameters(self, **kwargs):
|
|
|
85
85
|
- Individual parameter names and values (see sample_defaults for details)
|
|
86
86
|
"""
|
|
87
87
|
# Import here to avoid circular imports
|
|
88
|
-
from
|
|
88
|
+
from masster.sample.defaults.sample_def import (
|
|
89
89
|
sample_defaults as SampleDefaults,
|
|
90
90
|
)
|
|
91
91
|
|
masster/sample/plot.py
CHANGED
|
@@ -2073,7 +2073,7 @@ def plot_tic(
|
|
|
2073
2073
|
return
|
|
2074
2074
|
|
|
2075
2075
|
# Import helper locally to avoid circular imports
|
|
2076
|
-
from
|
|
2076
|
+
from masster.study.helpers import get_tic
|
|
2077
2077
|
|
|
2078
2078
|
# Delegate TIC computation to study helper which handles ms1_df and scans_df fallbacks
|
|
2079
2079
|
try:
|
|
@@ -2128,7 +2128,7 @@ def plot_bpc(
|
|
|
2128
2128
|
return
|
|
2129
2129
|
|
|
2130
2130
|
# Import helper locally to avoid circular imports
|
|
2131
|
-
from
|
|
2131
|
+
from masster.study.helpers import get_bpc
|
|
2132
2132
|
|
|
2133
2133
|
# Delegate BPC computation to study helper
|
|
2134
2134
|
try:
|
masster/sample/processing.py
CHANGED
|
@@ -8,13 +8,13 @@ import pyopenms as oms
|
|
|
8
8
|
|
|
9
9
|
from tqdm import tqdm
|
|
10
10
|
|
|
11
|
-
from
|
|
11
|
+
from masster.spectrum import Spectrum
|
|
12
12
|
from .defaults.find_features_def import find_features_defaults
|
|
13
13
|
from .defaults.find_ms2_def import find_ms2_defaults
|
|
14
14
|
from .defaults.get_spectrum_def import get_spectrum_defaults
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from masster.chromatogram import Chromatogram
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
def get_spectrum(self, scan, **kwargs):
|
masster/sample/sample.py
CHANGED
|
@@ -23,7 +23,7 @@ Classes:
|
|
|
23
23
|
|
|
24
24
|
Example Usage:
|
|
25
25
|
```python
|
|
26
|
-
from
|
|
26
|
+
from masster.sample import Sample
|
|
27
27
|
|
|
28
28
|
sample = Sample(file="example.mzML")
|
|
29
29
|
sample.find_features()
|
|
@@ -38,87 +38,87 @@ import sys
|
|
|
38
38
|
|
|
39
39
|
import polars as pl
|
|
40
40
|
|
|
41
|
-
from
|
|
42
|
-
from
|
|
41
|
+
from masster._version import get_version
|
|
42
|
+
from masster.logger import MasterLogger
|
|
43
43
|
|
|
44
|
-
from
|
|
45
|
-
from
|
|
46
|
-
from
|
|
47
|
-
from
|
|
48
|
-
from
|
|
44
|
+
from masster.sample.defaults.sample_def import sample_defaults
|
|
45
|
+
from masster.sample.defaults.find_features_def import find_features_defaults
|
|
46
|
+
from masster.sample.defaults.find_adducts_def import find_adducts_defaults
|
|
47
|
+
from masster.sample.defaults.find_ms2_def import find_ms2_defaults
|
|
48
|
+
from masster.sample.defaults.get_spectrum_def import get_spectrum_defaults
|
|
49
49
|
|
|
50
50
|
# Sample-specific imports
|
|
51
|
-
from
|
|
52
|
-
from
|
|
53
|
-
from
|
|
54
|
-
from
|
|
55
|
-
from
|
|
56
|
-
from
|
|
57
|
-
from
|
|
58
|
-
from
|
|
59
|
-
|
|
60
|
-
# from
|
|
61
|
-
# from
|
|
62
|
-
# from
|
|
63
|
-
# from
|
|
64
|
-
# from
|
|
65
|
-
# from
|
|
66
|
-
# from
|
|
67
|
-
# from
|
|
68
|
-
from
|
|
69
|
-
from
|
|
70
|
-
from
|
|
71
|
-
from
|
|
72
|
-
from
|
|
73
|
-
from
|
|
74
|
-
from
|
|
75
|
-
from
|
|
76
|
-
from
|
|
77
|
-
from
|
|
78
|
-
from
|
|
79
|
-
from
|
|
80
|
-
from
|
|
81
|
-
from
|
|
82
|
-
from
|
|
83
|
-
from
|
|
84
|
-
from
|
|
85
|
-
from
|
|
86
|
-
from
|
|
87
|
-
from
|
|
88
|
-
from
|
|
89
|
-
from
|
|
90
|
-
from
|
|
91
|
-
from
|
|
92
|
-
from
|
|
93
|
-
from
|
|
94
|
-
from
|
|
95
|
-
from
|
|
96
|
-
from
|
|
97
|
-
from
|
|
98
|
-
from
|
|
99
|
-
from
|
|
100
|
-
from
|
|
101
|
-
from
|
|
102
|
-
from
|
|
103
|
-
from
|
|
104
|
-
from
|
|
105
|
-
from
|
|
106
|
-
from
|
|
107
|
-
from
|
|
108
|
-
from
|
|
109
|
-
from
|
|
110
|
-
from
|
|
111
|
-
from
|
|
112
|
-
from
|
|
113
|
-
from
|
|
114
|
-
from
|
|
115
|
-
from
|
|
116
|
-
from
|
|
117
|
-
from
|
|
118
|
-
from
|
|
119
|
-
from
|
|
120
|
-
from
|
|
121
|
-
from
|
|
51
|
+
from masster.sample.h5 import _load_sample5
|
|
52
|
+
from masster.sample.h5 import _load_sample5_study
|
|
53
|
+
from masster.sample.h5 import _save_sample5
|
|
54
|
+
from masster.sample.helpers import _delete_ms2
|
|
55
|
+
from masster.sample.helpers import _estimate_memory_usage
|
|
56
|
+
from masster.sample.helpers import _get_scan_uids
|
|
57
|
+
from masster.sample.helpers import _get_feature_uids
|
|
58
|
+
from masster.sample.helpers import _features_sync
|
|
59
|
+
|
|
60
|
+
# from masster.sample.helpers import _parse_adduct_specs
|
|
61
|
+
# from masster.sample.helpers import _calculate_adduct_mass_shift
|
|
62
|
+
# from masster.sample.helpers import _parse_formula_expression
|
|
63
|
+
# from masster.sample.helpers import _calculate_molecular_mass
|
|
64
|
+
# from masster.sample.helpers import _parse_legacy_adduct_format
|
|
65
|
+
# from masster.sample.helpers import _extract_adduct_probability
|
|
66
|
+
# from masster.sample.helpers import _detect_adduct_groups_direct
|
|
67
|
+
# from masster.sample.helpers import _check_adduct_relationship
|
|
68
|
+
from masster.sample.adducts import _get_adducts
|
|
69
|
+
from masster.sample.adducts import find_adducts
|
|
70
|
+
from masster.sample.helpers import features_delete
|
|
71
|
+
from masster.sample.helpers import features_filter
|
|
72
|
+
from masster.sample.helpers import select
|
|
73
|
+
from masster.sample.helpers import select_closest_scan
|
|
74
|
+
from masster.sample.helpers import get_dda_stats
|
|
75
|
+
from masster.sample.helpers import get_feature
|
|
76
|
+
from masster.sample.helpers import get_scan
|
|
77
|
+
from masster.sample.helpers import get_eic
|
|
78
|
+
from masster.sample.helpers import set_source
|
|
79
|
+
from masster.sample.helpers import _recreate_feature_map
|
|
80
|
+
from masster.sample.helpers import _get_feature_map
|
|
81
|
+
from masster.sample.load import _load_featureXML
|
|
82
|
+
from masster.sample.load import _load_ms2data
|
|
83
|
+
from masster.sample.load import _load_mzML
|
|
84
|
+
from masster.sample.load import _load_raw
|
|
85
|
+
from masster.sample.load import _load_wiff
|
|
86
|
+
from masster.sample.load import chrom_extract
|
|
87
|
+
from masster.sample.load import index_file
|
|
88
|
+
from masster.sample.load import load
|
|
89
|
+
from masster.sample.load import load_noms1
|
|
90
|
+
from masster.sample.load import load_study
|
|
91
|
+
from masster.sample.load import sanitize
|
|
92
|
+
from masster.sample.plot import plot_2d
|
|
93
|
+
from masster.sample.plot import plot_2d_oracle
|
|
94
|
+
from masster.sample.plot import plot_dda_stats
|
|
95
|
+
from masster.sample.plot import plot_chrom
|
|
96
|
+
from masster.sample.plot import plot_feature_stats
|
|
97
|
+
from masster.sample.plot import plot_ms2_cycle
|
|
98
|
+
from masster.sample.plot import plot_ms2_eic
|
|
99
|
+
from masster.sample.plot import plot_ms2_q1
|
|
100
|
+
from masster.sample.plot import plot_bpc
|
|
101
|
+
from masster.sample.plot import plot_tic
|
|
102
|
+
from masster.sample.plot import _handle_sample_plot_output
|
|
103
|
+
from masster.sample.processing import _clean_features_df
|
|
104
|
+
from masster.sample.processing import _features_deisotope
|
|
105
|
+
from masster.sample.processing import _get_ztscan_stats
|
|
106
|
+
from masster.sample.processing import _spec_to_mat
|
|
107
|
+
from masster.sample.processing import analyze_dda
|
|
108
|
+
from masster.sample.processing import find_features
|
|
109
|
+
from masster.sample.processing import find_ms2
|
|
110
|
+
from masster.sample.processing import get_spectrum
|
|
111
|
+
from masster.sample.parameters import store_history
|
|
112
|
+
from masster.sample.parameters import get_parameters
|
|
113
|
+
from masster.sample.parameters import update_parameters
|
|
114
|
+
from masster.sample.parameters import get_parameters_property
|
|
115
|
+
from masster.sample.parameters import set_parameters_property
|
|
116
|
+
from masster.sample.save import _save_featureXML
|
|
117
|
+
from masster.sample.save import export_chrom
|
|
118
|
+
from masster.sample.save import export_dda_stats
|
|
119
|
+
from masster.sample.save import export_features
|
|
120
|
+
from masster.sample.save import export_mgf
|
|
121
|
+
from masster.sample.save import save
|
|
122
122
|
|
|
123
123
|
|
|
124
124
|
class Sample:
|
|
@@ -329,20 +329,20 @@ class Sample:
|
|
|
329
329
|
|
|
330
330
|
def _reload(self):
|
|
331
331
|
"""
|
|
332
|
-
Reloads all
|
|
332
|
+
Reloads all masster modules to pick up any changes to their source code,
|
|
333
333
|
and updates the instance's class reference to the newly reloaded class version.
|
|
334
334
|
This ensures that the instance uses the latest implementation without restarting the interpreter.
|
|
335
335
|
"""
|
|
336
336
|
# Reset logger configuration flags to allow proper reconfiguration after reload
|
|
337
337
|
try:
|
|
338
|
-
import
|
|
338
|
+
import masster.logger as logger_module
|
|
339
339
|
|
|
340
340
|
if hasattr(logger_module, "_SAMPLE_LOGGER_CONFIGURED"):
|
|
341
341
|
logger_module._SAMPLE_LOGGER_CONFIGURED = False
|
|
342
342
|
except Exception:
|
|
343
343
|
pass
|
|
344
344
|
|
|
345
|
-
# Get the base module name (
|
|
345
|
+
# Get the base module name (masster)
|
|
346
346
|
base_modname = self.__class__.__module__.split(".")[0]
|
|
347
347
|
current_module = self.__class__.__module__
|
|
348
348
|
|
|
@@ -358,7 +358,7 @@ class Sample:
|
|
|
358
358
|
):
|
|
359
359
|
sample_modules.append(module_name)
|
|
360
360
|
|
|
361
|
-
# Add core
|
|
361
|
+
# Add core masster modules
|
|
362
362
|
core_modules = [
|
|
363
363
|
f"{base_modname}._version",
|
|
364
364
|
f"{base_modname}.chromatogram",
|
|
@@ -437,9 +437,9 @@ class Sample:
|
|
|
437
437
|
|
|
438
438
|
def __str__(self):
|
|
439
439
|
if self.features_df is None:
|
|
440
|
-
str = f"
|
|
440
|
+
str = f"masster Sample, source: {os.path.basename(self.file_path)}, features: 0"
|
|
441
441
|
else:
|
|
442
|
-
str = f"
|
|
442
|
+
str = f"masster Sample, source: {os.path.basename(self.file_path)}, features: {len(self.features_df)}"
|
|
443
443
|
return str
|
|
444
444
|
|
|
445
445
|
|
masster/sample/save.py
CHANGED
masster/spectrum.py
CHANGED
|
@@ -138,10 +138,10 @@ class Spectrum:
|
|
|
138
138
|
|
|
139
139
|
Example Usage:
|
|
140
140
|
>>> import numpy as np
|
|
141
|
-
>>> from
|
|
141
|
+
>>> from masster import Spectrum
|
|
142
142
|
>>> mz = np.array([100.0, 150.0, 200.0, 250.0])
|
|
143
143
|
>>> intensity = np.array([1000, 5000, 3000, 800])
|
|
144
|
-
>>> spectrum =
|
|
144
|
+
>>> spectrum = Spectrum(mz=mz, inty=intensity, ms_level=1)
|
|
145
145
|
>>> spectrum.find_peaks()
|
|
146
146
|
>>> spectrum.plot()
|
|
147
147
|
|
masster/study/__init__.py
CHANGED
masster/study/export.py
CHANGED
|
@@ -10,9 +10,9 @@ import polars as pl
|
|
|
10
10
|
|
|
11
11
|
from tqdm import tqdm
|
|
12
12
|
|
|
13
|
-
from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
13
|
+
from masster.spectrum import combine_peaks
|
|
14
|
+
from masster.study.defaults import export_mgf_defaults
|
|
15
|
+
from masster._version import get_version
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def _get_mgf_df(self, **kwargs):
|
|
@@ -444,7 +444,7 @@ def export_mztab(self, filename: str = None, include_mgf=True, **kwargs) -> None
|
|
|
444
444
|
full_id_data = None
|
|
445
445
|
try:
|
|
446
446
|
# Import here to avoid circular imports
|
|
447
|
-
from
|
|
447
|
+
from masster.study.id import get_id
|
|
448
448
|
|
|
449
449
|
# Get full enriched identification data for SOME section
|
|
450
450
|
full_id_data = get_id(self)
|
|
@@ -1157,7 +1157,7 @@ def export_xlsx(self, filename: str = None) -> None:
|
|
|
1157
1157
|
|
|
1158
1158
|
# 3. Identification results
|
|
1159
1159
|
try:
|
|
1160
|
-
from
|
|
1160
|
+
from masster.study.id import get_id
|
|
1161
1161
|
|
|
1162
1162
|
id_df = get_id(self)
|
|
1163
1163
|
if id_df is not None and not id_df.is_empty():
|
|
@@ -1272,7 +1272,7 @@ def export_parquet(self, basename: str = None) -> None:
|
|
|
1272
1272
|
|
|
1273
1273
|
# 3. Identification results
|
|
1274
1274
|
try:
|
|
1275
|
-
from
|
|
1275
|
+
from masster.study.id import get_id
|
|
1276
1276
|
|
|
1277
1277
|
id_df = get_id(self)
|
|
1278
1278
|
if id_df is not None and not id_df.is_empty():
|
masster/study/h5.py
CHANGED
|
@@ -35,8 +35,8 @@ import h5py
|
|
|
35
35
|
import polars as pl
|
|
36
36
|
from tqdm import tqdm
|
|
37
37
|
|
|
38
|
-
from
|
|
39
|
-
from
|
|
38
|
+
from masster.chromatogram import Chromatogram
|
|
39
|
+
from masster.spectrum import Spectrum
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
# Helper functions for HDF5 operations
|
|
@@ -1734,7 +1734,7 @@ def _load_study5(self, filename=None):
|
|
|
1734
1734
|
self.history = {}
|
|
1735
1735
|
|
|
1736
1736
|
# Reconstruct self.parameters from loaded history
|
|
1737
|
-
from
|
|
1737
|
+
from masster.study.defaults.study_def import study_defaults
|
|
1738
1738
|
|
|
1739
1739
|
# Always create a fresh study_defaults object to ensure we have all defaults
|
|
1740
1740
|
self.parameters = study_defaults()
|
masster/study/helpers.py
CHANGED
|
@@ -22,7 +22,7 @@ import pandas as pd
|
|
|
22
22
|
import polars as pl
|
|
23
23
|
|
|
24
24
|
from tqdm import tqdm
|
|
25
|
-
from
|
|
25
|
+
from masster.chromatogram import Chromatogram
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
# =====================================================================================
|
|
@@ -816,7 +816,7 @@ def get_sample(self, sample):
|
|
|
816
816
|
|
|
817
817
|
This helper mirrors the original Study.get_sample method but lives in helpers for reuse.
|
|
818
818
|
"""
|
|
819
|
-
from
|
|
819
|
+
from masster.sample.sample import Sample
|
|
820
820
|
|
|
821
821
|
if isinstance(sample, Sample):
|
|
822
822
|
return sample
|
|
@@ -942,7 +942,7 @@ def restore_features(self, samples=None, maps=False):
|
|
|
942
942
|
maps (bool, optional): If True, also load featureXML data and update study.feature_maps.
|
|
943
943
|
"""
|
|
944
944
|
import datetime
|
|
945
|
-
from
|
|
945
|
+
from masster.sample.sample import Sample
|
|
946
946
|
|
|
947
947
|
if self.features_df is None or self.features_df.is_empty():
|
|
948
948
|
self.logger.error("No features_df found in study.")
|
|
@@ -1100,8 +1100,8 @@ def restore_chrom(self, samples=None, mz_tol=0.010, rt_tol=10.0):
|
|
|
1100
1100
|
"""
|
|
1101
1101
|
import datetime
|
|
1102
1102
|
import numpy as np
|
|
1103
|
-
from
|
|
1104
|
-
from
|
|
1103
|
+
from masster.sample.sample import Sample
|
|
1104
|
+
from masster.chromatogram import Chromatogram
|
|
1105
1105
|
|
|
1106
1106
|
if self.features_df is None or self.features_df.is_empty():
|
|
1107
1107
|
self.logger.error("No features_df found in study.")
|
|
@@ -2014,7 +2014,7 @@ def monkey_patch_study():
|
|
|
2014
2014
|
as `features_select_original` if not already set, then replaces Study.features_select
|
|
2015
2015
|
with the optimized `features_select` defined above. This function is idempotent.
|
|
2016
2016
|
"""
|
|
2017
|
-
from
|
|
2017
|
+
from masster.study.study import Study
|
|
2018
2018
|
|
|
2019
2019
|
# Only set original if it doesn't exist yet
|
|
2020
2020
|
if not hasattr(Study, "features_select_original"):
|
|
@@ -2276,7 +2276,7 @@ def consensus_select(
|
|
|
2276
2276
|
default_mz_tol = default_mz_tol.eic_mz_tol
|
|
2277
2277
|
else:
|
|
2278
2278
|
# Fallback to align_defaults if study parameters not available
|
|
2279
|
-
from
|
|
2279
|
+
from masster.study.defaults.align_def import align_defaults
|
|
2280
2280
|
|
|
2281
2281
|
default_mz_tol = align_defaults().mz_max_diff
|
|
2282
2282
|
|
|
@@ -2314,7 +2314,7 @@ def consensus_select(
|
|
|
2314
2314
|
default_rt_tol = default_rt_tol.eic_rt_tol
|
|
2315
2315
|
else:
|
|
2316
2316
|
# Fallback to align_defaults if study parameters not available
|
|
2317
|
-
from
|
|
2317
|
+
from masster.study.defaults.align_def import align_defaults
|
|
2318
2318
|
|
|
2319
2319
|
default_rt_tol = align_defaults().rt_tol
|
|
2320
2320
|
|
|
@@ -3549,7 +3549,7 @@ def _ensure_features_df_schema_order(self):
|
|
|
3549
3549
|
try:
|
|
3550
3550
|
import os
|
|
3551
3551
|
import json
|
|
3552
|
-
from
|
|
3552
|
+
from masster.study.h5 import _reorder_columns_by_schema
|
|
3553
3553
|
|
|
3554
3554
|
# Load schema
|
|
3555
3555
|
schema_path = os.path.join(os.path.dirname(__file__), "study5_schema.json")
|
|
@@ -345,7 +345,7 @@ def monkey_patch_study():
|
|
|
345
345
|
|
|
346
346
|
Call this function to replace the original features_select with the optimized version.
|
|
347
347
|
"""
|
|
348
|
-
from
|
|
348
|
+
from masster.study.study import Study
|
|
349
349
|
|
|
350
350
|
# Store original method for benchmarking
|
|
351
351
|
Study.features_select_original = Study.features_select
|
masster/study/id.py
CHANGED
|
@@ -36,7 +36,7 @@ def lib_load(
|
|
|
36
36
|
"""
|
|
37
37
|
# Lazy import to avoid circular imports at module import time
|
|
38
38
|
try:
|
|
39
|
-
from
|
|
39
|
+
from masster.lib.lib import Lib
|
|
40
40
|
except Exception:
|
|
41
41
|
Lib = None
|
|
42
42
|
|
|
@@ -58,7 +58,7 @@ def lib_load(
|
|
|
58
58
|
if isinstance(lib_source, str):
|
|
59
59
|
if Lib is None:
|
|
60
60
|
raise ImportError(
|
|
61
|
-
"Could not import
|
|
61
|
+
"Could not import masster.lib.lib.Lib - required for CSV loading",
|
|
62
62
|
)
|
|
63
63
|
|
|
64
64
|
lib_obj = Lib()
|
|
@@ -74,7 +74,7 @@ def lib_load(
|
|
|
74
74
|
|
|
75
75
|
else:
|
|
76
76
|
raise TypeError(
|
|
77
|
-
"lib_source must be a CSV file path (str), a
|
|
77
|
+
"lib_source must be a CSV file path (str), a masster.lib.Lib instance, or have a 'lib_df' attribute",
|
|
78
78
|
)
|
|
79
79
|
|
|
80
80
|
# Ensure lib_df is populated
|
|
@@ -159,7 +159,7 @@ def identify(study, features=None, params=None, **kwargs):
|
|
|
159
159
|
"""
|
|
160
160
|
# Import defaults class
|
|
161
161
|
try:
|
|
162
|
-
from
|
|
162
|
+
from masster.study.defaults.identify_def import identify_defaults
|
|
163
163
|
except ImportError:
|
|
164
164
|
identify_defaults = None
|
|
165
165
|
|
masster/study/load.py
CHANGED
|
@@ -10,10 +10,10 @@ import pyopenms as oms
|
|
|
10
10
|
|
|
11
11
|
from tqdm import tqdm
|
|
12
12
|
|
|
13
|
-
from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
16
|
-
from
|
|
13
|
+
from masster.chromatogram import Chromatogram
|
|
14
|
+
from masster.study.defaults import fill_defaults
|
|
15
|
+
from masster.sample.sample import Sample
|
|
16
|
+
from masster.spectrum import Spectrum
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
# Pre-import heavy modules to avoid repeated loading in add_sample()
|
|
@@ -533,7 +533,7 @@ def fill_single(self, **kwargs):
|
|
|
533
533
|
min_samples_abs: Absolute minimum sample threshold (default: 2)
|
|
534
534
|
"""
|
|
535
535
|
# parameters initialization
|
|
536
|
-
from
|
|
536
|
+
from masster.study.defaults import fill_defaults
|
|
537
537
|
|
|
538
538
|
params = fill_defaults()
|
|
539
539
|
|
masster/study/plot.py
CHANGED
|
@@ -1132,7 +1132,7 @@ def plot_bpc(
|
|
|
1132
1132
|
from bokeh.plotting import figure, show, output_file
|
|
1133
1133
|
from bokeh.models import ColumnDataSource, HoverTool
|
|
1134
1134
|
from bokeh.io.export import export_png
|
|
1135
|
-
from
|
|
1135
|
+
from masster.study.helpers import get_bpc
|
|
1136
1136
|
|
|
1137
1137
|
sample_uids = self._get_sample_uids(samples)
|
|
1138
1138
|
if not sample_uids:
|
|
@@ -1309,7 +1309,7 @@ def plot_eic(
|
|
|
1309
1309
|
from bokeh.plotting import figure, show, output_file
|
|
1310
1310
|
from bokeh.models import ColumnDataSource, HoverTool
|
|
1311
1311
|
from bokeh.io.export import export_png
|
|
1312
|
-
from
|
|
1312
|
+
from masster.study.helpers import get_eic
|
|
1313
1313
|
|
|
1314
1314
|
# Use study's eic_mz_tol parameter as default if not provided
|
|
1315
1315
|
if mz_tol is None:
|
|
@@ -2325,7 +2325,7 @@ def plot_tic(
|
|
|
2325
2325
|
from bokeh.plotting import figure, show, output_file
|
|
2326
2326
|
from bokeh.models import ColumnDataSource, HoverTool
|
|
2327
2327
|
from bokeh.io.export import export_png
|
|
2328
|
-
from
|
|
2328
|
+
from masster.study.helpers import get_tic
|
|
2329
2329
|
|
|
2330
2330
|
sample_uids = self._get_sample_uids(samples)
|
|
2331
2331
|
if not sample_uids:
|
masster/study/processing.py
CHANGED
masster/study/save.py
CHANGED
masster/study/study.py
CHANGED
|
@@ -52,111 +52,111 @@ import sys
|
|
|
52
52
|
import polars as pl
|
|
53
53
|
|
|
54
54
|
# Study-specific imports
|
|
55
|
-
from
|
|
56
|
-
from
|
|
57
|
-
from
|
|
58
|
-
from
|
|
59
|
-
from
|
|
60
|
-
from
|
|
61
|
-
from
|
|
62
|
-
from
|
|
63
|
-
from
|
|
64
|
-
from
|
|
65
|
-
from
|
|
66
|
-
from
|
|
67
|
-
from
|
|
68
|
-
from
|
|
69
|
-
from
|
|
70
|
-
from
|
|
71
|
-
from
|
|
72
|
-
from
|
|
73
|
-
from
|
|
74
|
-
from
|
|
75
|
-
from
|
|
76
|
-
from
|
|
77
|
-
from
|
|
78
|
-
from
|
|
79
|
-
from
|
|
80
|
-
from
|
|
81
|
-
from
|
|
82
|
-
from
|
|
83
|
-
from
|
|
84
|
-
from
|
|
85
|
-
from
|
|
86
|
-
from
|
|
87
|
-
from
|
|
88
|
-
from
|
|
89
|
-
from
|
|
90
|
-
from
|
|
91
|
-
from
|
|
92
|
-
from
|
|
93
|
-
from
|
|
94
|
-
from
|
|
95
|
-
from
|
|
96
|
-
from
|
|
97
|
-
from
|
|
98
|
-
from
|
|
99
|
-
from
|
|
100
|
-
from
|
|
101
|
-
from
|
|
102
|
-
from
|
|
103
|
-
from
|
|
104
|
-
from
|
|
105
|
-
from
|
|
106
|
-
from
|
|
107
|
-
from
|
|
108
|
-
from
|
|
109
|
-
from
|
|
110
|
-
from
|
|
111
|
-
from
|
|
112
|
-
from
|
|
113
|
-
from
|
|
114
|
-
from
|
|
115
|
-
from
|
|
116
|
-
from
|
|
117
|
-
from
|
|
118
|
-
from
|
|
119
|
-
from
|
|
120
|
-
from
|
|
121
|
-
from
|
|
122
|
-
from
|
|
123
|
-
from
|
|
124
|
-
from
|
|
125
|
-
from
|
|
126
|
-
from
|
|
127
|
-
from
|
|
128
|
-
from
|
|
55
|
+
from masster.study.h5 import _load_study5
|
|
56
|
+
from masster.study.h5 import _save_study5
|
|
57
|
+
from masster.study.h5 import _save_study5_compressed
|
|
58
|
+
from masster.study.helpers import _get_consensus_uids
|
|
59
|
+
from masster.study.helpers import _get_feature_uids
|
|
60
|
+
from masster.study.helpers import _get_sample_uids
|
|
61
|
+
from masster.study.helpers import _ensure_features_df_schema_order
|
|
62
|
+
from masster.study.helpers import compress
|
|
63
|
+
from masster.study.helpers import compress_features
|
|
64
|
+
from masster.study.helpers import compress_ms2
|
|
65
|
+
from masster.study.helpers import compress_chrom
|
|
66
|
+
from masster.study.helpers import restore_features
|
|
67
|
+
from masster.study.helpers import restore_chrom
|
|
68
|
+
from masster.study.helpers import restore_ms2
|
|
69
|
+
from masster.study.helpers import decompress
|
|
70
|
+
from masster.study.helpers import fill_reset
|
|
71
|
+
from masster.study.helpers import get_chrom
|
|
72
|
+
from masster.study.helpers import get_sample
|
|
73
|
+
from masster.study.helpers import get_consensus
|
|
74
|
+
from masster.study.helpers import get_consensus_matches
|
|
75
|
+
from masster.study.helpers import get_consensus_matrix
|
|
76
|
+
from masster.study.helpers import get_orphans
|
|
77
|
+
from masster.study.helpers import get_gaps_matrix
|
|
78
|
+
from masster.study.helpers import get_gaps_stats
|
|
79
|
+
from masster.study.helpers import align_reset
|
|
80
|
+
from masster.study.helpers import set_folder
|
|
81
|
+
from masster.study.helpers import set_source
|
|
82
|
+
from masster.study.helpers import sample_color
|
|
83
|
+
from masster.study.helpers import sample_color_reset
|
|
84
|
+
from masster.study.helpers import sample_name_replace
|
|
85
|
+
from masster.study.helpers import sample_name_reset
|
|
86
|
+
from masster.study.helpers import samples_select
|
|
87
|
+
from masster.study.helpers import samples_delete
|
|
88
|
+
from masster.study.helpers import features_select
|
|
89
|
+
from masster.study.helpers import features_filter
|
|
90
|
+
from masster.study.helpers import features_delete
|
|
91
|
+
from masster.study.helpers import consensus_select
|
|
92
|
+
from masster.study.helpers import consensus_filter
|
|
93
|
+
from masster.study.helpers import consensus_delete
|
|
94
|
+
from masster.study.load import add
|
|
95
|
+
from masster.study.load import add_sample
|
|
96
|
+
from masster.study.load import _add_samples_batch
|
|
97
|
+
from masster.study.load import _add_sample_optimized
|
|
98
|
+
from masster.study.load import _add_sample_standard
|
|
99
|
+
from masster.study.load import _sample_color_reset_optimized
|
|
100
|
+
from masster.study.load import fill_single
|
|
101
|
+
from masster.study.load import fill
|
|
102
|
+
from masster.study.load import _process_sample_for_parallel_fill
|
|
103
|
+
from masster.study.load import _get_missing_consensus_sample_combinations
|
|
104
|
+
from masster.study.load import load
|
|
105
|
+
from masster.study.load import _load_consensusXML
|
|
106
|
+
from masster.study.load import load_features
|
|
107
|
+
from masster.study.load import sanitize
|
|
108
|
+
from masster.study.plot import plot_alignment
|
|
109
|
+
from masster.study.plot import plot_consensus_2d
|
|
110
|
+
from masster.study.plot import plot_samples_2d
|
|
111
|
+
from masster.study.plot import plot_consensus_stats
|
|
112
|
+
from masster.study.plot import plot_chrom
|
|
113
|
+
from masster.study.plot import plot_pca
|
|
114
|
+
from masster.study.plot import plot_bpc
|
|
115
|
+
from masster.study.plot import plot_tic
|
|
116
|
+
from masster.study.plot import plot_eic
|
|
117
|
+
from masster.study.plot import plot_rt_correction
|
|
118
|
+
from masster.study.processing import align
|
|
119
|
+
from masster.study.processing import merge
|
|
120
|
+
from masster.study.processing import integrate
|
|
121
|
+
from masster.study.processing import find_ms2
|
|
122
|
+
from masster.study.parameters import store_history
|
|
123
|
+
from masster.study.parameters import get_parameters
|
|
124
|
+
from masster.study.parameters import update_parameters
|
|
125
|
+
from masster.study.parameters import get_parameters_property
|
|
126
|
+
from masster.study.parameters import set_parameters_property
|
|
127
|
+
from masster.study.save import save, save_consensus, _save_consensusXML, save_samples
|
|
128
|
+
from masster.study.export import (
|
|
129
129
|
export_mgf,
|
|
130
130
|
export_mztab,
|
|
131
131
|
export_xlsx,
|
|
132
132
|
export_parquet,
|
|
133
133
|
_get_mgf_df,
|
|
134
134
|
)
|
|
135
|
-
from
|
|
136
|
-
from
|
|
135
|
+
from masster.study.id import lib_load, identify, get_id, id_reset, lib_reset
|
|
136
|
+
from masster.study.id import (
|
|
137
137
|
_get_adducts,
|
|
138
138
|
_calculate_formula_mass_shift,
|
|
139
139
|
_format_adduct_name,
|
|
140
140
|
_parse_element_counts,
|
|
141
141
|
)
|
|
142
142
|
|
|
143
|
-
from
|
|
144
|
-
from
|
|
145
|
-
from
|
|
146
|
-
from
|
|
147
|
-
from
|
|
148
|
-
from
|
|
149
|
-
from
|
|
150
|
-
from
|
|
151
|
-
from
|
|
152
|
-
from
|
|
153
|
-
from
|
|
143
|
+
from masster.logger import MasterLogger
|
|
144
|
+
from masster.study.defaults.study_def import study_defaults
|
|
145
|
+
from masster.study.defaults.align_def import align_defaults
|
|
146
|
+
from masster.study.defaults.export_def import export_mgf_defaults
|
|
147
|
+
from masster.study.defaults.fill_chrom_def import fill_chrom_defaults
|
|
148
|
+
from masster.study.defaults.fill_def import fill_defaults
|
|
149
|
+
from masster.study.defaults.find_consensus_def import find_consensus_defaults
|
|
150
|
+
from masster.study.defaults.find_ms2_def import find_ms2_defaults
|
|
151
|
+
from masster.study.defaults.integrate_chrom_def import integrate_chrom_defaults
|
|
152
|
+
from masster.study.defaults.integrate_def import integrate_defaults
|
|
153
|
+
from masster.study.defaults.merge_def import merge_defaults
|
|
154
154
|
|
|
155
155
|
# Import sample defaults
|
|
156
|
-
from
|
|
157
|
-
from
|
|
158
|
-
from
|
|
159
|
-
from
|
|
156
|
+
from masster.sample.defaults.sample_def import sample_defaults
|
|
157
|
+
from masster.sample.defaults.find_features_def import find_features_defaults
|
|
158
|
+
from masster.sample.defaults.find_adducts_def import find_adducts_defaults
|
|
159
|
+
from masster.sample.defaults.get_spectrum_def import get_spectrum_defaults
|
|
160
160
|
|
|
161
161
|
# Warning symbols for info display
|
|
162
162
|
_WARNING_SYMBOL = "⚠️" # Yellow warning triangle
|
|
@@ -188,8 +188,8 @@ class Study:
|
|
|
188
188
|
- `export_consensus()`: Export consensus features for downstream analysis.
|
|
189
189
|
|
|
190
190
|
Example Usage:
|
|
191
|
-
>>> from
|
|
192
|
-
>>> study_obj =
|
|
191
|
+
>>> from masster import Study
|
|
192
|
+
>>> study_obj = Study(folder="./data")
|
|
193
193
|
>>> study_obj.load_folder("./mzml_files")
|
|
194
194
|
>>> study_obj.process_all()
|
|
195
195
|
>>> study_obj.align()
|
|
@@ -479,20 +479,20 @@ class Study:
|
|
|
479
479
|
|
|
480
480
|
def _reload(self):
|
|
481
481
|
"""
|
|
482
|
-
Reloads all
|
|
482
|
+
Reloads all masster modules to pick up any changes to their source code,
|
|
483
483
|
and updates the instance's class reference to the newly reloaded class version.
|
|
484
484
|
This ensures that the instance uses the latest implementation without restarting the interpreter.
|
|
485
485
|
"""
|
|
486
486
|
# Reset logger configuration flags to allow proper reconfiguration after reload
|
|
487
487
|
""" try:
|
|
488
|
-
import
|
|
488
|
+
import masster.sample.logger as logger_module
|
|
489
489
|
|
|
490
490
|
if hasattr(logger_module, "_STUDY_LOGGER_CONFIGURED"):
|
|
491
491
|
logger_module._STUDY_LOGGER_CONFIGURED = False
|
|
492
492
|
except Exception:
|
|
493
493
|
pass"""
|
|
494
494
|
|
|
495
|
-
# Get the base module name (
|
|
495
|
+
# Get the base module name (masster)
|
|
496
496
|
base_modname = self.__class__.__module__.split(".")[0]
|
|
497
497
|
current_module = self.__class__.__module__
|
|
498
498
|
|
|
@@ -508,7 +508,7 @@ class Study:
|
|
|
508
508
|
):
|
|
509
509
|
study_modules.append(module_name)
|
|
510
510
|
|
|
511
|
-
# Add core
|
|
511
|
+
# Add core masster modules
|
|
512
512
|
core_modules = [
|
|
513
513
|
f"{base_modname}._version",
|
|
514
514
|
f"{base_modname}.chromatogram",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: masster
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.6
|
|
4
4
|
Summary: Mass spectrometry data analysis package
|
|
5
5
|
Author: Zamboni Lab
|
|
6
6
|
License-Expression: AGPL-3.0-only
|
|
@@ -32,17 +32,17 @@ Requires-Dist: marimo>=0.14.16
|
|
|
32
32
|
Requires-Dist: matplotlib>=3.8.0
|
|
33
33
|
Requires-Dist: pandas>=2.2.0
|
|
34
34
|
Requires-Dist: panel>=1.7.0
|
|
35
|
-
Requires-Dist: polars>=1.0.0
|
|
36
35
|
Requires-Dist: pyopenms>=3.3.0
|
|
37
36
|
Requires-Dist: pyteomics>=4.7.0
|
|
38
37
|
Requires-Dist: pythonnet>=3.0.0
|
|
39
|
-
Requires-Dist: scipy>=1.12.0
|
|
40
38
|
Requires-Dist: tqdm>=4.65.0
|
|
41
39
|
Requires-Dist: openpyxl>=3.1.5
|
|
42
40
|
Requires-Dist: cmap>=0.6.2
|
|
43
41
|
Requires-Dist: altair>=5.5.0
|
|
44
42
|
Requires-Dist: scikit-learn>=1.7.1
|
|
45
43
|
Requires-Dist: ipython>=9.4.0
|
|
44
|
+
Requires-Dist: scipy>=1.14.1
|
|
45
|
+
Requires-Dist: polars>=1.32.3
|
|
46
46
|
Provides-Extra: dev
|
|
47
47
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
48
48
|
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
masster/__init__.py,sha256=
|
|
1
|
+
masster/__init__.py,sha256=8U4cIteNlYyHDrxWSbB_MsDKCX9tds07SJG8-vh8Oa8,738
|
|
2
2
|
masster/_version.py,sha256=VO89cZ_6MtW0W_P2yFvZpdGOhoWdoBYiY0efEf1SqsA,256
|
|
3
|
-
masster/chromatogram.py,sha256=
|
|
4
|
-
masster/logger.py,sha256=
|
|
5
|
-
masster/spectrum.py,sha256=
|
|
3
|
+
masster/chromatogram.py,sha256=iYpdv8C17zVnlWvOFgAn9ns2uFGiF-GgoYf5QVVAbHs,19319
|
|
4
|
+
masster/logger.py,sha256=WoJSi6si7F04hhSfE9wqBvHLuZkw3YGCgPd3vn6bgCE,14747
|
|
5
|
+
masster/spectrum.py,sha256=_upC_g2N9gwTaflXAugs9pSXpKUmzbIehofDordk7WI,47718
|
|
6
6
|
masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_DDA_OT_C-MiLUT_QC_dil2_01_20250602151849.sample5,sha256=LdJMF8uLoDm9ixZNHBoOzBH6hX7NGY7vTvqa2Pzetb8,6539174
|
|
7
7
|
masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_DDA_OT_C-MiLUT_QC_dil3_01_20250602150634.sample5,sha256=hWUfslGoOTiQw59jENSBXP4sa6DdkbOi40FJ68ep61Q,6956773
|
|
8
8
|
masster/data/dda/20250530_VH_IQX_KW_RP_HSST3_100mm_12min_pos_v4_MS1_C-MiLUT_C008_v6_r38_01.sample5,sha256=dSd2cIgYYdRcNSzkhqlZCeWKi3x8Hhhcx8BFMuiVG4c,11382948
|
|
@@ -18,19 +18,19 @@ masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecR
|
|
|
18
18
|
masster/data/wiff/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.wiff2,sha256=TFB0HW4Agkig6yht7FtgjUdbXax8jjKaHpSZSvuU5vs,3252224
|
|
19
19
|
masster/lib/__init__.py,sha256=TcePNx3SYZHz6763TL9Sg4gUNXaRWjlrOtyS6vsu-hg,178
|
|
20
20
|
masster/lib/lib.py,sha256=seAOqzat74iF6YnbNakU3rF5MN5t9WABIpcIPTvU1q8,24987
|
|
21
|
-
masster/sample/__init__.py,sha256=
|
|
22
|
-
masster/sample/adducts.py,sha256=
|
|
23
|
-
masster/sample/h5.py,sha256=
|
|
21
|
+
masster/sample/__init__.py,sha256=HL0m1ept0PMAYUCQtDDnkdOS12IFl6oLAq4TZQz83uY,170
|
|
22
|
+
masster/sample/adducts.py,sha256=jdtkkiMFeObRv3myluUx--IfpRsEq3-hPgkCb2VUxy4,32590
|
|
23
|
+
masster/sample/h5.py,sha256=nl7zVExroa4k4-8YJWLU-Ipyj_ynrqqGmqJ5km8DAr4,111886
|
|
24
24
|
masster/sample/helpers.py,sha256=JhzFpNh7j7YVUibIMuPQ50hBcGDEBCaBbmwA3Z5OhgM,41336
|
|
25
|
-
masster/sample/lib.py,sha256=
|
|
26
|
-
masster/sample/load.py,sha256=
|
|
27
|
-
masster/sample/parameters.py,sha256=
|
|
28
|
-
masster/sample/plot.py,sha256=
|
|
29
|
-
masster/sample/processing.py,sha256=
|
|
25
|
+
masster/sample/lib.py,sha256=E-j9c3Wd8f9a-H8xj7CAOwlA8KcyXPoFyYm3c8r7LtI,33755
|
|
26
|
+
masster/sample/load.py,sha256=ie8krEADEPKMP35D6pTkuajvSP2il7gcmxn5gg86Qco,50985
|
|
27
|
+
masster/sample/parameters.py,sha256=Gg2KcuNbV_wZ_Wwv93QlM5J19ji0oSIvZLPV1NoBmq0,4456
|
|
28
|
+
masster/sample/plot.py,sha256=abLnG0Bk75vqSGQz6uA3uTK3IE9N-s687ZH-n8Mhdzg,82757
|
|
29
|
+
masster/sample/processing.py,sha256=lCHRv290oAFOxe_zR5GMi4FdxodjJh1rj2uLWy_wHnc,49771
|
|
30
30
|
masster/sample/quant.py,sha256=tHNjvUFTdehKR31BXBZnVsBxMD9XJHgaltITOjr71uE,7562
|
|
31
|
-
masster/sample/sample.py,sha256=
|
|
31
|
+
masster/sample/sample.py,sha256=i9bnNOQCD33awRyIf6UIq7fV-FB8MqeSvygoPaFfJTU,18351
|
|
32
32
|
masster/sample/sample5_schema.json,sha256=EKHVKXhqMqsavO34A4AJLPpysW0s2iLuLwjeTJP9R_8,3916
|
|
33
|
-
masster/sample/save.py,sha256=
|
|
33
|
+
masster/sample/save.py,sha256=XZl5ITYdOjojYFOoUZ-0ygVSPH1kT5Va6e8NyuTRNAI,32500
|
|
34
34
|
masster/sample/sciex.py,sha256=vnbxsq_qnAQVuzcpziP1o3IC4kM5amGBcPmC2TAuDLw,46319
|
|
35
35
|
masster/sample/defaults/__init__.py,sha256=A09AOP44cxD_oYohyt7XFUho0zndRcrzVD4DUaGnKH4,447
|
|
36
36
|
masster/sample/defaults/find_adducts_def.py,sha256=Bu2KiBJRxD0SAnOPNMm_Nk-6fx6QYoRXjFNGzz-0_o0,13570
|
|
@@ -38,18 +38,18 @@ masster/sample/defaults/find_features_def.py,sha256=Bcd39uav1BniwKgrsB-I1maF3ljf
|
|
|
38
38
|
masster/sample/defaults/find_ms2_def.py,sha256=KTELMAnioGLYbhzAwOgK14TZqboPEvzeBN0HC-v0Z5A,9872
|
|
39
39
|
masster/sample/defaults/get_spectrum_def.py,sha256=o62p31PhGd-LiIkTOzKQhwPtnO2AtQDHcPu-O-YoQPs,11460
|
|
40
40
|
masster/sample/defaults/sample_def.py,sha256=keoXyMyrm_iLgbYqfIbqCpJ3XHBVlNwCNmb5iMQL0iY,14579
|
|
41
|
-
masster/study/__init__.py,sha256=
|
|
42
|
-
masster/study/export.py,sha256=
|
|
43
|
-
masster/study/h5.py,sha256=
|
|
44
|
-
masster/study/helpers.py,sha256=
|
|
45
|
-
masster/study/helpers_optimized.py,sha256=
|
|
46
|
-
masster/study/id.py,sha256=
|
|
47
|
-
masster/study/load.py,sha256
|
|
41
|
+
masster/study/__init__.py,sha256=Zspv6U8jFqjkHGYdNdDy1rfUnCSolCzUdgSSg98PRgE,166
|
|
42
|
+
masster/study/export.py,sha256=OIr2rXFtzE8n8MyO5Azq4eVuju2kzKiIrtNoIBGF-40,54815
|
|
43
|
+
masster/study/h5.py,sha256=7m4-on04e3d0aNPNdSHPqnUXJgHmlzHHYaVHwwRF9Xc,84060
|
|
44
|
+
masster/study/helpers.py,sha256=t6yHmyolRnzJseeFQZTv5GKZ6FMoMczlHMsJnRJsfAk,152455
|
|
45
|
+
masster/study/helpers_optimized.py,sha256=5qf6tiLPgsOSna9XVtTrx2B0GJ1wI8ZTrSv8n8MtxNg,13927
|
|
46
|
+
masster/study/id.py,sha256=EOw-2dM8nnx8QcQF1qAFfGqql75JusONuDBjmAuMU2w,44723
|
|
47
|
+
masster/study/load.py,sha256=-pdBJdC4-vQWG1JSKucZot9XKJMECvHEwaTA1Kmm0JE,70462
|
|
48
48
|
masster/study/parameters.py,sha256=0elaF7YspTsB7qyajWAbRNL2VfKlGz5GJLifmO8IGkk,3276
|
|
49
|
-
masster/study/plot.py,sha256=
|
|
50
|
-
masster/study/processing.py,sha256=
|
|
51
|
-
masster/study/save.py,sha256=
|
|
52
|
-
masster/study/study.py,sha256=
|
|
49
|
+
masster/study/plot.py,sha256=VBj1seZGGDJ9KGw8pmjuitn5H_tck1IPWSduWk57m3s,93855
|
|
50
|
+
masster/study/processing.py,sha256=Wmfwzi29kD_u248o0Cc40fgub-RBio483SsTxqwpjAk,73933
|
|
51
|
+
masster/study/save.py,sha256=F_H34zmvxV54Ds64ju90JJLy_F4hg6nRdHhJ9ssWKLA,6704
|
|
52
|
+
masster/study/study.py,sha256=stEyhkQFo2yM2swahFPo4XTbLpklzJ7_xJsu0y1lnuY,34844
|
|
53
53
|
masster/study/study5_schema.json,sha256=06cB473eo_IzzbsT1Q9W4-svNTdgNJhCS86NVpuyySI,7246
|
|
54
54
|
masster/study/defaults/__init__.py,sha256=m3Z5KXGqsTdh7GjYzZoENERt39yRg0ceVRV1DeCt1P0,610
|
|
55
55
|
masster/study/defaults/align_def.py,sha256=hHQbGgsOqMRHHr0Wn8Onr8XeaRz3-fFE0qGE-OMst80,20324
|
|
@@ -63,9 +63,9 @@ masster/study/defaults/integrate_chrom_def.py,sha256=0MNIWGTjty-Zu-NTQsIweuj3UVq
|
|
|
63
63
|
masster/study/defaults/integrate_def.py,sha256=Vf4SAzdBfnsSZ3IRaF0qZvWu3gMDPHdgPfMYoPKeWv8,7246
|
|
64
64
|
masster/study/defaults/merge_def.py,sha256=EBsKE3hsAkTEzN9dpdRD5W3_suTKy_WZ_96rwS0uBuE,8572
|
|
65
65
|
masster/study/defaults/study_def.py,sha256=h8dYbi9xv0sesCSQik49Z53IkskMmNtW6ixl7it5pL0,16033
|
|
66
|
-
masster-0.4.
|
|
67
|
-
masster-0.4.
|
|
68
|
-
masster-0.4.
|
|
69
|
-
masster-0.4.
|
|
70
|
-
masster-0.4.
|
|
71
|
-
masster-0.4.
|
|
66
|
+
masster-0.4.6.dist-info/licenses/LICENSE,sha256=bx5iLIKjgAdYQ7sISn7DsfHRKkoCUm1154sJJKhgqnU,35184
|
|
67
|
+
masster-0.4.6.dist-info/METADATA,sha256=teSd_NJ7grgFyakj2BJgFo4ixrpYSi4FdZQSONMv1Gk,4586
|
|
68
|
+
masster-0.4.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
69
|
+
masster-0.4.6.dist-info/entry_points.txt,sha256=ZHguQ_vPmdbpqq2uGtmEOLJfgP-DQ1T0c07Lxh30wc8,58
|
|
70
|
+
masster-0.4.6.dist-info/top_level.txt,sha256=MPZokk6zWIP_UhQ_VkKxSTG63eM4WGu9oTcMpQXp7NI,8
|
|
71
|
+
masster-0.4.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|