masster 0.2.4__py3-none-any.whl → 0.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of masster might be problematic. Click here for more details.
- masster/__init__.py +27 -27
- masster/_version.py +17 -17
- masster/chromatogram.py +497 -503
- masster/data/examples/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.featureXML +199787 -0
- masster/data/examples/2025_01_14_VW_7600_LpMx_DBS_CID_2min_TOP15_030msecMS1_005msecReac_CE35_DBS-ON_3.sample5 +0 -0
- masster/logger.py +318 -244
- masster/sample/__init__.py +9 -9
- masster/sample/defaults/__init__.py +15 -15
- masster/sample/defaults/find_adducts_def.py +325 -325
- masster/sample/defaults/find_features_def.py +366 -366
- masster/sample/defaults/find_ms2_def.py +285 -285
- masster/sample/defaults/get_spectrum_def.py +314 -318
- masster/sample/defaults/sample_def.py +374 -378
- masster/sample/h5.py +1321 -1297
- masster/sample/helpers.py +833 -364
- masster/sample/lib.py +762 -0
- masster/sample/load.py +1220 -1187
- masster/sample/parameters.py +131 -131
- masster/sample/plot.py +1610 -1622
- masster/sample/processing.py +1402 -1416
- masster/sample/quant.py +209 -0
- masster/sample/sample.py +391 -387
- masster/sample/sample5_schema.json +181 -181
- masster/sample/save.py +737 -719
- masster/sample/sciex.py +1213 -0
- masster/spectrum.py +1287 -1319
- masster/study/__init__.py +9 -9
- masster/study/defaults/__init__.py +21 -19
- masster/study/defaults/align_def.py +267 -267
- masster/study/defaults/export_def.py +41 -40
- masster/study/defaults/fill_chrom_def.py +264 -264
- masster/study/defaults/fill_def.py +260 -0
- masster/study/defaults/find_consensus_def.py +256 -256
- masster/study/defaults/find_ms2_def.py +163 -163
- masster/study/defaults/integrate_chrom_def.py +225 -225
- masster/study/defaults/integrate_def.py +221 -0
- masster/study/defaults/merge_def.py +256 -0
- masster/study/defaults/study_def.py +272 -269
- masster/study/export.py +674 -287
- masster/study/h5.py +1398 -886
- masster/study/helpers.py +1650 -433
- masster/study/helpers_optimized.py +317 -0
- masster/study/load.py +1201 -1078
- masster/study/parameters.py +99 -99
- masster/study/plot.py +632 -645
- masster/study/processing.py +1057 -1046
- masster/study/save.py +149 -134
- masster/study/study.py +606 -522
- masster/study/study5_schema.json +247 -241
- {masster-0.2.4.dist-info → masster-0.3.0.dist-info}/METADATA +15 -10
- masster-0.3.0.dist-info/RECORD +59 -0
- {masster-0.2.4.dist-info → masster-0.3.0.dist-info}/licenses/LICENSE +661 -661
- masster-0.2.4.dist-info/RECORD +0 -50
- {masster-0.2.4.dist-info → masster-0.3.0.dist-info}/WHEEL +0 -0
- {masster-0.2.4.dist-info → masster-0.3.0.dist-info}/entry_points.txt +0 -0
|
@@ -1,163 +1,163 @@
|
|
|
1
|
-
"""Parameter class for Study find_ms2 method."""
|
|
2
|
-
|
|
3
|
-
from dataclasses import dataclass, field
|
|
4
|
-
from typing import Any
|
|
5
|
-
|
|
6
|
-
# Note: find_ms2 in Study class takes no parameters, but we create this for consistency
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
@dataclass
|
|
10
|
-
class find_ms2_defaults:
|
|
11
|
-
"""
|
|
12
|
-
Parameter class for Study find_ms2 method.
|
|
13
|
-
|
|
14
|
-
This class provides a consistent interface for the find_ms2 method,
|
|
15
|
-
though the current implementation doesn't use any configurable parameters.
|
|
16
|
-
|
|
17
|
-
Note: The find_ms2 method links MS2 spectra to consensus features
|
|
18
|
-
and currently has no configurable parameters.
|
|
19
|
-
"""
|
|
20
|
-
|
|
21
|
-
# No parameters currently, but keeping structure for future extensibility
|
|
22
|
-
_param_metadata: dict[str, dict[str, Any]] = field(
|
|
23
|
-
default_factory=lambda: {},
|
|
24
|
-
repr=False,
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
def get_info(self, param_name: str) -> dict[str, Any]:
|
|
28
|
-
"""
|
|
29
|
-
Get information about a specific parameter.
|
|
30
|
-
|
|
31
|
-
Args:
|
|
32
|
-
param_name: Name of the parameter
|
|
33
|
-
|
|
34
|
-
Returns:
|
|
35
|
-
Dictionary containing parameter metadata
|
|
36
|
-
|
|
37
|
-
Raises:
|
|
38
|
-
KeyError: If parameter name is not found
|
|
39
|
-
"""
|
|
40
|
-
if param_name not in self._param_metadata:
|
|
41
|
-
raise KeyError(f"Parameter '{param_name}' not found")
|
|
42
|
-
return self._param_metadata[param_name]
|
|
43
|
-
|
|
44
|
-
def get_description(self, param_name: str) -> str:
|
|
45
|
-
"""
|
|
46
|
-
Get description for a specific parameter.
|
|
47
|
-
|
|
48
|
-
Args:
|
|
49
|
-
param_name: Name of the parameter
|
|
50
|
-
|
|
51
|
-
Returns:
|
|
52
|
-
Parameter description string
|
|
53
|
-
"""
|
|
54
|
-
return str(self.get_info(param_name)["description"])
|
|
55
|
-
|
|
56
|
-
def validate(self, param_name: str, value: Any) -> bool:
|
|
57
|
-
"""
|
|
58
|
-
Validate a parameter value against its constraints.
|
|
59
|
-
|
|
60
|
-
Args:
|
|
61
|
-
param_name: Name of the parameter
|
|
62
|
-
value: Value to validate
|
|
63
|
-
|
|
64
|
-
Returns:
|
|
65
|
-
True if value is valid, False otherwise
|
|
66
|
-
"""
|
|
67
|
-
# No parameters to validate currently
|
|
68
|
-
return param_name in self._param_metadata
|
|
69
|
-
|
|
70
|
-
def set(self, param_name: str, value: Any, validate: bool = True) -> bool:
|
|
71
|
-
"""
|
|
72
|
-
Set a parameter value with optional validation.
|
|
73
|
-
|
|
74
|
-
Args:
|
|
75
|
-
param_name: Name of the parameter
|
|
76
|
-
value: New value for the parameter
|
|
77
|
-
validate: Whether to validate the value before setting
|
|
78
|
-
|
|
79
|
-
Returns:
|
|
80
|
-
True if parameter was set successfully, False otherwise
|
|
81
|
-
"""
|
|
82
|
-
if not hasattr(self, param_name):
|
|
83
|
-
return False
|
|
84
|
-
|
|
85
|
-
if validate and not self.validate(param_name, value):
|
|
86
|
-
return False
|
|
87
|
-
|
|
88
|
-
setattr(self, param_name, value)
|
|
89
|
-
return True
|
|
90
|
-
|
|
91
|
-
def get(self, param_name: str) -> Any:
|
|
92
|
-
"""
|
|
93
|
-
Get the value of a parameter by name.
|
|
94
|
-
|
|
95
|
-
Args:
|
|
96
|
-
param_name: Name of the parameter
|
|
97
|
-
|
|
98
|
-
Returns:
|
|
99
|
-
Current value of the parameter
|
|
100
|
-
"""
|
|
101
|
-
if not hasattr(self, param_name):
|
|
102
|
-
raise KeyError(f"Parameter '{param_name}' not found")
|
|
103
|
-
return getattr(self, param_name)
|
|
104
|
-
|
|
105
|
-
def set_from_dict(
|
|
106
|
-
self,
|
|
107
|
-
param_dict: dict[str, Any],
|
|
108
|
-
validate: bool = True,
|
|
109
|
-
) -> list[str]:
|
|
110
|
-
"""
|
|
111
|
-
Update multiple parameters from a dictionary.
|
|
112
|
-
|
|
113
|
-
Args:
|
|
114
|
-
param_dict: Dictionary of parameter names and values
|
|
115
|
-
validate: Whether to validate values before setting
|
|
116
|
-
|
|
117
|
-
Returns:
|
|
118
|
-
List of parameter names that could not be set
|
|
119
|
-
"""
|
|
120
|
-
failed_params = []
|
|
121
|
-
|
|
122
|
-
for param_name, value in param_dict.items():
|
|
123
|
-
if not self.set(param_name, value, validate):
|
|
124
|
-
failed_params.append(param_name)
|
|
125
|
-
|
|
126
|
-
return failed_params
|
|
127
|
-
|
|
128
|
-
def to_dict(self) -> dict[str, Any]:
|
|
129
|
-
"""
|
|
130
|
-
Convert parameters to dictionary, excluding metadata.
|
|
131
|
-
|
|
132
|
-
Returns:
|
|
133
|
-
Dictionary of parameter names and values
|
|
134
|
-
"""
|
|
135
|
-
return {k: v for k, v in self.__dict__.items() if not k.startswith("_")}
|
|
136
|
-
|
|
137
|
-
def list_parameters(self) -> list[str]:
|
|
138
|
-
"""
|
|
139
|
-
Get list of all parameter names.
|
|
140
|
-
|
|
141
|
-
Returns:
|
|
142
|
-
List of parameter names
|
|
143
|
-
"""
|
|
144
|
-
return [k for k in self.__dict__.keys() if not k.startswith("_")]
|
|
145
|
-
|
|
146
|
-
def validate_all(self) -> tuple[bool, list[str]]:
|
|
147
|
-
"""
|
|
148
|
-
Validate all parameters in the instance.
|
|
149
|
-
|
|
150
|
-
Returns:
|
|
151
|
-
Tuple of (all_valid, list_of_invalid_params)
|
|
152
|
-
- all_valid: True if all parameters are valid, False otherwise
|
|
153
|
-
- list_of_invalid_params: List of parameter names that failed validation
|
|
154
|
-
"""
|
|
155
|
-
invalid_params = []
|
|
156
|
-
|
|
157
|
-
for param_name in self.list_parameters():
|
|
158
|
-
if param_name in self._param_metadata:
|
|
159
|
-
current_value = getattr(self, param_name)
|
|
160
|
-
if not self.validate(param_name, current_value):
|
|
161
|
-
invalid_params.append(param_name)
|
|
162
|
-
|
|
163
|
-
return len(invalid_params) == 0, invalid_params
|
|
1
|
+
"""Parameter class for Study find_ms2 method."""
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass, field
|
|
4
|
+
from typing import Any
|
|
5
|
+
|
|
6
|
+
# Note: find_ms2 in Study class takes no parameters, but we create this for consistency
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class find_ms2_defaults:
|
|
11
|
+
"""
|
|
12
|
+
Parameter class for Study find_ms2 method.
|
|
13
|
+
|
|
14
|
+
This class provides a consistent interface for the find_ms2 method,
|
|
15
|
+
though the current implementation doesn't use any configurable parameters.
|
|
16
|
+
|
|
17
|
+
Note: The find_ms2 method links MS2 spectra to consensus features
|
|
18
|
+
and currently has no configurable parameters.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
# No parameters currently, but keeping structure for future extensibility
|
|
22
|
+
_param_metadata: dict[str, dict[str, Any]] = field(
|
|
23
|
+
default_factory=lambda: {},
|
|
24
|
+
repr=False,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
def get_info(self, param_name: str) -> dict[str, Any]:
|
|
28
|
+
"""
|
|
29
|
+
Get information about a specific parameter.
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
param_name: Name of the parameter
|
|
33
|
+
|
|
34
|
+
Returns:
|
|
35
|
+
Dictionary containing parameter metadata
|
|
36
|
+
|
|
37
|
+
Raises:
|
|
38
|
+
KeyError: If parameter name is not found
|
|
39
|
+
"""
|
|
40
|
+
if param_name not in self._param_metadata:
|
|
41
|
+
raise KeyError(f"Parameter '{param_name}' not found")
|
|
42
|
+
return self._param_metadata[param_name]
|
|
43
|
+
|
|
44
|
+
def get_description(self, param_name: str) -> str:
|
|
45
|
+
"""
|
|
46
|
+
Get description for a specific parameter.
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
param_name: Name of the parameter
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
Parameter description string
|
|
53
|
+
"""
|
|
54
|
+
return str(self.get_info(param_name)["description"])
|
|
55
|
+
|
|
56
|
+
def validate(self, param_name: str, value: Any) -> bool:
|
|
57
|
+
"""
|
|
58
|
+
Validate a parameter value against its constraints.
|
|
59
|
+
|
|
60
|
+
Args:
|
|
61
|
+
param_name: Name of the parameter
|
|
62
|
+
value: Value to validate
|
|
63
|
+
|
|
64
|
+
Returns:
|
|
65
|
+
True if value is valid, False otherwise
|
|
66
|
+
"""
|
|
67
|
+
# No parameters to validate currently
|
|
68
|
+
return param_name in self._param_metadata
|
|
69
|
+
|
|
70
|
+
def set(self, param_name: str, value: Any, validate: bool = True) -> bool:
|
|
71
|
+
"""
|
|
72
|
+
Set a parameter value with optional validation.
|
|
73
|
+
|
|
74
|
+
Args:
|
|
75
|
+
param_name: Name of the parameter
|
|
76
|
+
value: New value for the parameter
|
|
77
|
+
validate: Whether to validate the value before setting
|
|
78
|
+
|
|
79
|
+
Returns:
|
|
80
|
+
True if parameter was set successfully, False otherwise
|
|
81
|
+
"""
|
|
82
|
+
if not hasattr(self, param_name):
|
|
83
|
+
return False
|
|
84
|
+
|
|
85
|
+
if validate and not self.validate(param_name, value):
|
|
86
|
+
return False
|
|
87
|
+
|
|
88
|
+
setattr(self, param_name, value)
|
|
89
|
+
return True
|
|
90
|
+
|
|
91
|
+
def get(self, param_name: str) -> Any:
|
|
92
|
+
"""
|
|
93
|
+
Get the value of a parameter by name.
|
|
94
|
+
|
|
95
|
+
Args:
|
|
96
|
+
param_name: Name of the parameter
|
|
97
|
+
|
|
98
|
+
Returns:
|
|
99
|
+
Current value of the parameter
|
|
100
|
+
"""
|
|
101
|
+
if not hasattr(self, param_name):
|
|
102
|
+
raise KeyError(f"Parameter '{param_name}' not found")
|
|
103
|
+
return getattr(self, param_name)
|
|
104
|
+
|
|
105
|
+
def set_from_dict(
|
|
106
|
+
self,
|
|
107
|
+
param_dict: dict[str, Any],
|
|
108
|
+
validate: bool = True,
|
|
109
|
+
) -> list[str]:
|
|
110
|
+
"""
|
|
111
|
+
Update multiple parameters from a dictionary.
|
|
112
|
+
|
|
113
|
+
Args:
|
|
114
|
+
param_dict: Dictionary of parameter names and values
|
|
115
|
+
validate: Whether to validate values before setting
|
|
116
|
+
|
|
117
|
+
Returns:
|
|
118
|
+
List of parameter names that could not be set
|
|
119
|
+
"""
|
|
120
|
+
failed_params = []
|
|
121
|
+
|
|
122
|
+
for param_name, value in param_dict.items():
|
|
123
|
+
if not self.set(param_name, value, validate):
|
|
124
|
+
failed_params.append(param_name)
|
|
125
|
+
|
|
126
|
+
return failed_params
|
|
127
|
+
|
|
128
|
+
def to_dict(self) -> dict[str, Any]:
|
|
129
|
+
"""
|
|
130
|
+
Convert parameters to dictionary, excluding metadata.
|
|
131
|
+
|
|
132
|
+
Returns:
|
|
133
|
+
Dictionary of parameter names and values
|
|
134
|
+
"""
|
|
135
|
+
return {k: v for k, v in self.__dict__.items() if not k.startswith("_")}
|
|
136
|
+
|
|
137
|
+
def list_parameters(self) -> list[str]:
|
|
138
|
+
"""
|
|
139
|
+
Get list of all parameter names.
|
|
140
|
+
|
|
141
|
+
Returns:
|
|
142
|
+
List of parameter names
|
|
143
|
+
"""
|
|
144
|
+
return [k for k in self.__dict__.keys() if not k.startswith("_")]
|
|
145
|
+
|
|
146
|
+
def validate_all(self) -> tuple[bool, list[str]]:
|
|
147
|
+
"""
|
|
148
|
+
Validate all parameters in the instance.
|
|
149
|
+
|
|
150
|
+
Returns:
|
|
151
|
+
Tuple of (all_valid, list_of_invalid_params)
|
|
152
|
+
- all_valid: True if all parameters are valid, False otherwise
|
|
153
|
+
- list_of_invalid_params: List of parameter names that failed validation
|
|
154
|
+
"""
|
|
155
|
+
invalid_params = []
|
|
156
|
+
|
|
157
|
+
for param_name in self.list_parameters():
|
|
158
|
+
if param_name in self._param_metadata:
|
|
159
|
+
current_value = getattr(self, param_name)
|
|
160
|
+
if not self.validate(param_name, current_value):
|
|
161
|
+
invalid_params.append(param_name)
|
|
162
|
+
|
|
163
|
+
return len(invalid_params) == 0, invalid_params
|