masster 0.3.11__py3-none-any.whl → 0.3.12__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/sample/helpers.py +53 -4
- masster/sample/plot.py +100 -16
- masster/sample/sample.py +6 -0
- masster/sample/sample5_schema.json +43 -34
- masster/study/defaults/align_def.py +10 -10
- masster/study/helpers.py +466 -3
- masster/study/load.py +6 -0
- masster/study/plot.py +809 -130
- masster/study/processing.py +35 -10
- masster/study/study.py +60 -4
- masster/study/study5_schema.json +83 -83
- {masster-0.3.11.dist-info → masster-0.3.12.dist-info}/METADATA +1 -1
- {masster-0.3.11.dist-info → masster-0.3.12.dist-info}/RECORD +16 -16
- {masster-0.3.11.dist-info → masster-0.3.12.dist-info}/WHEEL +0 -0
- {masster-0.3.11.dist-info → masster-0.3.12.dist-info}/entry_points.txt +0 -0
- {masster-0.3.11.dist-info → masster-0.3.12.dist-info}/licenses/LICENSE +0 -0
masster/study/processing.py
CHANGED
|
@@ -222,7 +222,7 @@ def align(self, **kwargs):
|
|
|
222
222
|
|
|
223
223
|
# iterate through all feature_maps and add the transformed retention times to the features_df
|
|
224
224
|
|
|
225
|
-
# Build a fast lookup for (sample_uid,
|
|
225
|
+
# Build a fast lookup for (sample_uid, featureUid) to index in features_df
|
|
226
226
|
feats = self.features_df
|
|
227
227
|
|
|
228
228
|
# Pre-build sample_uid lookup for faster access
|
|
@@ -233,7 +233,7 @@ def align(self, **kwargs):
|
|
|
233
233
|
|
|
234
234
|
# Build the main lookup using feature_uid (not feature_id)
|
|
235
235
|
if "feature_id" in feats.columns:
|
|
236
|
-
# Create lookup mapping (sample_uid,
|
|
236
|
+
# Create lookup mapping (sample_uid, feature_id) to DataFrame index using Polars
|
|
237
237
|
# Since we need a pandas-style index lookup, we'll create a simple dict
|
|
238
238
|
sample_uids = feats.get_column("sample_uid").to_list()
|
|
239
239
|
|
|
@@ -289,14 +289,39 @@ def align(self, **kwargs):
|
|
|
289
289
|
|
|
290
290
|
# Single batch update for all features at once
|
|
291
291
|
if all_update_idx:
|
|
292
|
-
#
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
.
|
|
296
|
-
|
|
297
|
-
.
|
|
298
|
-
|
|
299
|
-
#
|
|
292
|
+
# Build a full-length Python list of rt values, update specified indices,
|
|
293
|
+
# then replace the DataFrame column with a Series that has the same length
|
|
294
|
+
try:
|
|
295
|
+
current_rt = self.features_df["rt"].to_list()
|
|
296
|
+
except Exception:
|
|
297
|
+
current_rt = [None] * self.features_df.height
|
|
298
|
+
|
|
299
|
+
# Defensive: ensure list length equals dataframe height
|
|
300
|
+
if len(current_rt) != self.features_df.height:
|
|
301
|
+
current_rt = [None] * self.features_df.height
|
|
302
|
+
|
|
303
|
+
for idx, new_rt in zip(all_update_idx, all_update_rt):
|
|
304
|
+
current_rt[idx] = new_rt
|
|
305
|
+
|
|
306
|
+
new_cols = [pl.Series("rt", current_rt)]
|
|
307
|
+
|
|
308
|
+
# Update rt_original if corresponding updates were collected
|
|
309
|
+
if 'all_update_rt_original' in locals() and all_update_rt_original:
|
|
310
|
+
try:
|
|
311
|
+
current_rt_orig = self.features_df["rt_original"].to_list() if "rt_original" in self.features_df.columns else [None] * self.features_df.height
|
|
312
|
+
except Exception:
|
|
313
|
+
current_rt_orig = [None] * self.features_df.height
|
|
314
|
+
|
|
315
|
+
if len(current_rt_orig) != self.features_df.height:
|
|
316
|
+
current_rt_orig = [None] * self.features_df.height
|
|
317
|
+
|
|
318
|
+
for idx, new_orig in zip(all_update_idx, all_update_rt_original):
|
|
319
|
+
current_rt_orig[idx] = new_orig
|
|
320
|
+
|
|
321
|
+
new_cols.append(pl.Series("rt_original", current_rt_orig))
|
|
322
|
+
|
|
323
|
+
# Replace columns in one call
|
|
324
|
+
self.features_df = self.features_df.with_columns(*new_cols)
|
|
300
325
|
|
|
301
326
|
self.logger.debug("Alignment completed successfully.")
|
|
302
327
|
|
masster/study/study.py
CHANGED
|
@@ -50,6 +50,7 @@ import os
|
|
|
50
50
|
import sys
|
|
51
51
|
|
|
52
52
|
import polars as pl
|
|
53
|
+
import numpy as np
|
|
53
54
|
|
|
54
55
|
# Study-specific imports
|
|
55
56
|
from masster.study.h5 import _load_study5
|
|
@@ -66,6 +67,7 @@ from masster.study.helpers import restore_features
|
|
|
66
67
|
from masster.study.helpers import restore_chrom
|
|
67
68
|
from masster.study.helpers import fill_reset
|
|
68
69
|
from masster.study.helpers import get_chrom
|
|
70
|
+
from masster.study.helpers import get_sample
|
|
69
71
|
from masster.study.helpers import get_consensus
|
|
70
72
|
from masster.study.helpers import get_consensus_matches
|
|
71
73
|
from masster.study.helpers import get_consensus_matrix
|
|
@@ -75,6 +77,8 @@ from masster.study.helpers import get_gaps_stats
|
|
|
75
77
|
from masster.study.helpers import align_reset
|
|
76
78
|
from masster.study.helpers import set_folder
|
|
77
79
|
from masster.study.helpers import set_source
|
|
80
|
+
from masster.study.helpers import name_replace
|
|
81
|
+
from masster.study.helpers import name_reset
|
|
78
82
|
from masster.study.helpers import features_select
|
|
79
83
|
from masster.study.helpers import features_filter
|
|
80
84
|
from masster.study.helpers import features_delete
|
|
@@ -92,12 +96,15 @@ from masster.study.load import _load_consensusXML
|
|
|
92
96
|
from masster.study.load import load_features
|
|
93
97
|
from masster.study.load import sanitize
|
|
94
98
|
from masster.study.plot import plot_alignment
|
|
95
|
-
from masster.study.plot import plot_alignment_bokeh
|
|
96
|
-
from masster.study.plot import plot_chrom
|
|
97
99
|
from masster.study.plot import plot_consensus_2d
|
|
100
|
+
from masster.study.plot import plot_samples_2d
|
|
98
101
|
from masster.study.plot import plot_consensus_stats
|
|
102
|
+
from masster.study.plot import plot_chrom
|
|
99
103
|
from masster.study.plot import plot_pca
|
|
100
|
-
from masster.study.plot import
|
|
104
|
+
from masster.study.plot import plot_bpc
|
|
105
|
+
from masster.study.plot import plot_tic
|
|
106
|
+
from masster.study.plot import plot_eic
|
|
107
|
+
from masster.study.plot import plot_rt_correction
|
|
101
108
|
from masster.study.processing import align
|
|
102
109
|
from masster.study.processing import merge
|
|
103
110
|
from masster.study.processing import integrate
|
|
@@ -309,6 +316,11 @@ class Study:
|
|
|
309
316
|
if auto_load_filename is not None:
|
|
310
317
|
self.load(filename=auto_load_filename)
|
|
311
318
|
|
|
319
|
+
# cache for Sample instances created/loaded by this Study
|
|
320
|
+
self._samples_cache = {}
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
|
|
312
324
|
# Attach module functions as class methods
|
|
313
325
|
load = load
|
|
314
326
|
save = save
|
|
@@ -328,14 +340,18 @@ class Study:
|
|
|
328
340
|
get_parameters_property = get_parameters_property
|
|
329
341
|
set_parameters_property = set_parameters_property
|
|
330
342
|
plot_alignment = plot_alignment
|
|
331
|
-
plot_alignment_bokeh = plot_alignment_bokeh
|
|
332
343
|
plot_chrom = plot_chrom
|
|
333
344
|
plot_consensus_2d = plot_consensus_2d
|
|
334
345
|
plot_consensus_stats = plot_consensus_stats
|
|
335
346
|
plot_pca = plot_pca
|
|
336
347
|
plot_samples_2d = plot_samples_2d
|
|
348
|
+
plot_bpc = plot_bpc
|
|
349
|
+
plot_rt_correction = plot_rt_correction
|
|
350
|
+
plot_tic = plot_tic
|
|
351
|
+
plot_eic = plot_eic
|
|
337
352
|
get_consensus = get_consensus
|
|
338
353
|
get_chrom = get_chrom
|
|
354
|
+
get_sample = get_sample
|
|
339
355
|
get_consensus_matches = get_consensus_matches
|
|
340
356
|
compress = compress
|
|
341
357
|
compress_features = compress_features
|
|
@@ -346,6 +362,8 @@ class Study:
|
|
|
346
362
|
fill_reset = fill_reset
|
|
347
363
|
align_reset = align_reset
|
|
348
364
|
set_source = set_source
|
|
365
|
+
name_replace = name_replace
|
|
366
|
+
name_reset = name_reset
|
|
349
367
|
features_select = features_select
|
|
350
368
|
features_filter = features_filter
|
|
351
369
|
features_delete = features_delete
|
|
@@ -618,6 +636,18 @@ class Study:
|
|
|
618
636
|
else:
|
|
619
637
|
consensus_with_ms2_count = 0
|
|
620
638
|
|
|
639
|
+
if not self.consensus_df.is_empty():
|
|
640
|
+
# Compute RT spread using only consensus rows with number_samples >= half the number of samples
|
|
641
|
+
threshold = len(self.samples_df) / 2 if not self.samples_df.is_empty() else 0
|
|
642
|
+
filtered = self.consensus_df.filter(pl.col("number_samples") >= threshold)
|
|
643
|
+
if filtered.is_empty():
|
|
644
|
+
rt_spread = -1.0
|
|
645
|
+
else:
|
|
646
|
+
rt_spread_row = filtered.select((pl.col("rt_max") - pl.col("rt_min")).mean()).row(0)
|
|
647
|
+
rt_spread = float(rt_spread_row[0]) if rt_spread_row and rt_spread_row[0] is not None else 0.0
|
|
648
|
+
else:
|
|
649
|
+
rt_spread = -1.0
|
|
650
|
+
|
|
621
651
|
# Calculate percentage of consensus features with MS2
|
|
622
652
|
consensus_with_ms2_percentage = (
|
|
623
653
|
(consensus_with_ms2_count / consensus_df_len * 100) if consensus_df_len > 0 else 0
|
|
@@ -643,6 +673,7 @@ class Study:
|
|
|
643
673
|
f"- in consensus: {ratio_in_consensus_to_total:.0f}%\n"
|
|
644
674
|
f"- not in consensus: {ratio_not_in_consensus_to_total:.0f}%\n"
|
|
645
675
|
f"Consensus: {consensus_df_len}\n"
|
|
676
|
+
f"- RT spread: {rt_spread:.3f}s\n"
|
|
646
677
|
f"- Min samples count: {min_samples:.0f}\n"
|
|
647
678
|
f"- Mean samples count: {mean_samples:.0f}\n"
|
|
648
679
|
f"- Max samples count: {max_samples:.0f}\n"
|
|
@@ -654,6 +685,31 @@ class Study:
|
|
|
654
685
|
|
|
655
686
|
print(summary)
|
|
656
687
|
|
|
688
|
+
def _ensure_features_df_schema_order(self):
|
|
689
|
+
"""
|
|
690
|
+
Ensure features_df columns are ordered according to study5_schema.json.
|
|
691
|
+
|
|
692
|
+
This method should be called after operations that might scramble the column order.
|
|
693
|
+
"""
|
|
694
|
+
if self.features_df is None or self.features_df.is_empty():
|
|
695
|
+
return
|
|
696
|
+
|
|
697
|
+
try:
|
|
698
|
+
import os
|
|
699
|
+
import json
|
|
700
|
+
from masster.study.h5 import _reorder_columns_by_schema
|
|
701
|
+
|
|
702
|
+
# Load schema
|
|
703
|
+
schema_path = os.path.join(os.path.dirname(__file__), "study5_schema.json")
|
|
704
|
+
with open(schema_path, 'r') as f:
|
|
705
|
+
schema = json.load(f)
|
|
706
|
+
|
|
707
|
+
# Reorder columns to match schema
|
|
708
|
+
self.features_df = _reorder_columns_by_schema(self.features_df, schema, 'features_df')
|
|
709
|
+
|
|
710
|
+
except Exception as e:
|
|
711
|
+
self.logger.warning(f"Failed to reorder features_df columns: {e}")
|
|
712
|
+
|
|
657
713
|
|
|
658
714
|
if __name__ == "__main__":
|
|
659
715
|
# This block is executed when the script is run directly
|
masster/study/study5_schema.json
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
1
|
{
|
|
2
2
|
"consensus_df": {
|
|
3
3
|
"columns": {
|
|
4
|
-
"
|
|
5
|
-
"dtype": "pl.
|
|
4
|
+
"consensus_uid": {
|
|
5
|
+
"dtype": "pl.Int64"
|
|
6
6
|
},
|
|
7
|
-
"
|
|
8
|
-
"dtype": "pl.
|
|
7
|
+
"consensus_id": {
|
|
8
|
+
"dtype": "pl.Utf8"
|
|
9
9
|
},
|
|
10
|
-
"
|
|
10
|
+
"quality": {
|
|
11
11
|
"dtype": "pl.Float64"
|
|
12
12
|
},
|
|
13
|
-
"
|
|
14
|
-
"dtype": "pl.
|
|
13
|
+
"number_samples": {
|
|
14
|
+
"dtype": "pl.Int64"
|
|
15
15
|
},
|
|
16
|
-
"
|
|
16
|
+
"rt": {
|
|
17
17
|
"dtype": "pl.Float64"
|
|
18
18
|
},
|
|
19
|
-
"
|
|
19
|
+
"mz": {
|
|
20
20
|
"dtype": "pl.Float64"
|
|
21
21
|
},
|
|
22
|
-
"
|
|
22
|
+
"rt_min": {
|
|
23
23
|
"dtype": "pl.Float64"
|
|
24
24
|
},
|
|
25
|
-
"
|
|
26
|
-
"dtype": "pl.
|
|
25
|
+
"rt_max": {
|
|
26
|
+
"dtype": "pl.Float64"
|
|
27
27
|
},
|
|
28
|
-
"
|
|
29
|
-
"dtype": "pl.
|
|
28
|
+
"rt_mean": {
|
|
29
|
+
"dtype": "pl.Float64"
|
|
30
30
|
},
|
|
31
|
-
"
|
|
31
|
+
"rt_start_mean": {
|
|
32
32
|
"dtype": "pl.Float64"
|
|
33
33
|
},
|
|
34
|
-
"
|
|
34
|
+
"rt_end_mean": {
|
|
35
35
|
"dtype": "pl.Float64"
|
|
36
36
|
},
|
|
37
|
-
"
|
|
37
|
+
"rt_delta_mean": {
|
|
38
38
|
"dtype": "pl.Float64"
|
|
39
39
|
},
|
|
40
|
-
"
|
|
40
|
+
"mz_min": {
|
|
41
41
|
"dtype": "pl.Float64"
|
|
42
42
|
},
|
|
43
43
|
"mz_max": {
|
|
@@ -46,41 +46,41 @@
|
|
|
46
46
|
"mz_mean": {
|
|
47
47
|
"dtype": "pl.Float64"
|
|
48
48
|
},
|
|
49
|
-
"mz_min": {
|
|
50
|
-
"dtype": "pl.Float64"
|
|
51
|
-
},
|
|
52
49
|
"mz_start_mean": {
|
|
53
50
|
"dtype": "pl.Float64"
|
|
54
51
|
},
|
|
55
|
-
"
|
|
56
|
-
"dtype": "pl.
|
|
57
|
-
},
|
|
58
|
-
"number_samples": {
|
|
59
|
-
"dtype": "pl.Int64"
|
|
52
|
+
"mz_end_mean": {
|
|
53
|
+
"dtype": "pl.Float64"
|
|
60
54
|
},
|
|
61
|
-
"
|
|
55
|
+
"inty_mean": {
|
|
62
56
|
"dtype": "pl.Float64"
|
|
63
57
|
},
|
|
64
|
-
"
|
|
58
|
+
"bl": {
|
|
65
59
|
"dtype": "pl.Float64"
|
|
66
60
|
},
|
|
67
|
-
"
|
|
61
|
+
"chrom_coherence_mean": {
|
|
68
62
|
"dtype": "pl.Float64"
|
|
69
63
|
},
|
|
70
|
-
"
|
|
64
|
+
"chrom_prominence_mean": {
|
|
71
65
|
"dtype": "pl.Float64"
|
|
72
66
|
},
|
|
73
|
-
"
|
|
67
|
+
"chrom_prominence_scaled_mean": {
|
|
74
68
|
"dtype": "pl.Float64"
|
|
75
69
|
},
|
|
76
|
-
"
|
|
70
|
+
"chrom_height_scaled_mean": {
|
|
77
71
|
"dtype": "pl.Float64"
|
|
78
72
|
},
|
|
79
|
-
"
|
|
73
|
+
"iso_mean": {
|
|
80
74
|
"dtype": "pl.Float64"
|
|
81
75
|
},
|
|
82
|
-
"
|
|
76
|
+
"charge_mean": {
|
|
83
77
|
"dtype": "pl.Float64"
|
|
78
|
+
},
|
|
79
|
+
"number_ms2": {
|
|
80
|
+
"dtype": "pl.Int64"
|
|
81
|
+
},
|
|
82
|
+
"adducts": {
|
|
83
|
+
"dtype": "pl.Object"
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
},
|
|
@@ -133,105 +133,102 @@
|
|
|
133
133
|
},
|
|
134
134
|
"features_df": {
|
|
135
135
|
"columns": {
|
|
136
|
-
"
|
|
137
|
-
"dtype": "pl.Utf8"
|
|
138
|
-
},
|
|
139
|
-
"adduct_group": {
|
|
136
|
+
"feature_uid": {
|
|
140
137
|
"dtype": "pl.Int64"
|
|
141
138
|
},
|
|
142
|
-
"
|
|
143
|
-
"dtype": "pl.
|
|
139
|
+
"feature_id": {
|
|
140
|
+
"dtype": "pl.Utf8"
|
|
144
141
|
},
|
|
145
|
-
"
|
|
142
|
+
"sample_uid": {
|
|
146
143
|
"dtype": "pl.Int32"
|
|
147
144
|
},
|
|
148
|
-
"
|
|
149
|
-
"dtype": "pl.Object"
|
|
150
|
-
},
|
|
151
|
-
"chrom_area": {
|
|
145
|
+
"mz": {
|
|
152
146
|
"dtype": "pl.Float64"
|
|
153
147
|
},
|
|
154
|
-
"
|
|
148
|
+
"rt": {
|
|
155
149
|
"dtype": "pl.Float64"
|
|
156
150
|
},
|
|
157
|
-
"
|
|
151
|
+
"rt_original": {
|
|
158
152
|
"dtype": "pl.Float64"
|
|
159
153
|
},
|
|
160
|
-
"
|
|
154
|
+
"rt_start": {
|
|
161
155
|
"dtype": "pl.Float64"
|
|
162
156
|
},
|
|
163
|
-
"
|
|
157
|
+
"rt_end": {
|
|
164
158
|
"dtype": "pl.Float64"
|
|
165
159
|
},
|
|
166
|
-
"
|
|
167
|
-
"dtype": "pl.
|
|
160
|
+
"rt_delta": {
|
|
161
|
+
"dtype": "pl.Float64"
|
|
168
162
|
},
|
|
169
|
-
"
|
|
170
|
-
"dtype": "pl.
|
|
163
|
+
"mz_start": {
|
|
164
|
+
"dtype": "pl.Float64"
|
|
171
165
|
},
|
|
172
|
-
"
|
|
173
|
-
"dtype": "pl.
|
|
166
|
+
"mz_end": {
|
|
167
|
+
"dtype": "pl.Float64"
|
|
174
168
|
},
|
|
175
169
|
"inty": {
|
|
176
170
|
"dtype": "pl.Float64"
|
|
177
171
|
},
|
|
172
|
+
"quality": {
|
|
173
|
+
"dtype": "pl.Float64"
|
|
174
|
+
},
|
|
175
|
+
"charge": {
|
|
176
|
+
"dtype": "pl.Int32"
|
|
177
|
+
},
|
|
178
178
|
"iso": {
|
|
179
179
|
"dtype": "pl.Int64"
|
|
180
180
|
},
|
|
181
181
|
"iso_of": {
|
|
182
182
|
"dtype": "pl.Int64"
|
|
183
183
|
},
|
|
184
|
-
"
|
|
185
|
-
"dtype": "pl.
|
|
186
|
-
},
|
|
187
|
-
"ms2_specs": {
|
|
188
|
-
"dtype": "pl.Object"
|
|
184
|
+
"adduct": {
|
|
185
|
+
"dtype": "pl.Utf8"
|
|
189
186
|
},
|
|
190
|
-
"
|
|
187
|
+
"adduct_mass": {
|
|
191
188
|
"dtype": "pl.Float64"
|
|
192
189
|
},
|
|
193
|
-
"
|
|
194
|
-
"dtype": "pl.
|
|
190
|
+
"adduct_group": {
|
|
191
|
+
"dtype": "pl.Int64"
|
|
195
192
|
},
|
|
196
|
-
"
|
|
197
|
-
"dtype": "pl.
|
|
193
|
+
"chrom": {
|
|
194
|
+
"dtype": "pl.Object"
|
|
198
195
|
},
|
|
199
|
-
"
|
|
200
|
-
"dtype": "pl.
|
|
196
|
+
"filled": {
|
|
197
|
+
"dtype": "pl.Boolean"
|
|
201
198
|
},
|
|
202
|
-
"
|
|
199
|
+
"chrom_area": {
|
|
203
200
|
"dtype": "pl.Float64"
|
|
204
201
|
},
|
|
205
|
-
"
|
|
202
|
+
"chrom_coherence": {
|
|
206
203
|
"dtype": "pl.Float64"
|
|
207
204
|
},
|
|
208
|
-
"
|
|
205
|
+
"chrom_prominence": {
|
|
209
206
|
"dtype": "pl.Float64"
|
|
210
207
|
},
|
|
211
|
-
"
|
|
208
|
+
"chrom_prominence_scaled": {
|
|
212
209
|
"dtype": "pl.Float64"
|
|
213
210
|
},
|
|
214
|
-
"
|
|
211
|
+
"chrom_height_scaled": {
|
|
215
212
|
"dtype": "pl.Float64"
|
|
216
213
|
},
|
|
217
|
-
"
|
|
218
|
-
"dtype": "pl.
|
|
214
|
+
"ms2_scans": {
|
|
215
|
+
"dtype": "pl.Object"
|
|
216
|
+
},
|
|
217
|
+
"ms2_specs": {
|
|
218
|
+
"dtype": "pl.Object"
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
221
|
},
|
|
222
222
|
"samples_df": {
|
|
223
223
|
"columns": {
|
|
224
|
-
"
|
|
225
|
-
"dtype": "pl.
|
|
224
|
+
"sample_uid": {
|
|
225
|
+
"dtype": "pl.Int64"
|
|
226
226
|
},
|
|
227
227
|
"map_id": {
|
|
228
228
|
"dtype": "pl.Utf8"
|
|
229
229
|
},
|
|
230
|
-
"
|
|
231
|
-
"dtype": "pl.
|
|
232
|
-
},
|
|
233
|
-
"ms2": {
|
|
234
|
-
"dtype": "pl.Int64"
|
|
230
|
+
"file_source": {
|
|
231
|
+
"dtype": "pl.Utf8"
|
|
235
232
|
},
|
|
236
233
|
"sample_name": {
|
|
237
234
|
"dtype": "pl.Utf8"
|
|
@@ -242,10 +239,13 @@
|
|
|
242
239
|
"sample_type": {
|
|
243
240
|
"dtype": "pl.Utf8"
|
|
244
241
|
},
|
|
245
|
-
"
|
|
242
|
+
"size": {
|
|
246
243
|
"dtype": "pl.Int64"
|
|
247
244
|
},
|
|
248
|
-
"
|
|
245
|
+
"ms1": {
|
|
246
|
+
"dtype": "pl.Int64"
|
|
247
|
+
},
|
|
248
|
+
"ms2": {
|
|
249
249
|
"dtype": "pl.Int64"
|
|
250
250
|
}
|
|
251
251
|
}
|
|
@@ -14,15 +14,15 @@ masster/docs/SCX_API_Documentation.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
|
14
14
|
masster/docs/SCX_DLL_Analysis.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
15
|
masster/sample/__init__.py,sha256=HL0m1ept0PMAYUCQtDDnkdOS12IFl6oLAq4TZQz83uY,170
|
|
16
16
|
masster/sample/h5.py,sha256=IdfbdkDgKcij-jMQTxnjW-gsBhb6vwi8w1XXL795yEs,63793
|
|
17
|
-
masster/sample/helpers.py,sha256=
|
|
17
|
+
masster/sample/helpers.py,sha256=U2VyboRdTsQbOefCy7VXh6PlSQtEsR6BK5QF2jGUd94,36208
|
|
18
18
|
masster/sample/lib.py,sha256=l5YdU9TxEWJI0kJxXxrRCxgDDwbzO5zBf1_Qi_HY87w,33556
|
|
19
19
|
masster/sample/load.py,sha256=5Ig94gEWBfdxR86yNwaPj9mdNvPI1nVCp0LXcFJt05U,47577
|
|
20
20
|
masster/sample/parameters.py,sha256=Gg2KcuNbV_wZ_Wwv93QlM5J19ji0oSIvZLPV1NoBmq0,4456
|
|
21
|
-
masster/sample/plot.py,sha256=
|
|
21
|
+
masster/sample/plot.py,sha256=C8Y2DLLHw3Bo_U0MPhKMI3AKOkqj0zMUQxasRVWp26U,77964
|
|
22
22
|
masster/sample/processing.py,sha256=-H93MEUysA-B9PB4nU31WFjtaU_flqbu2gY35ce4vVs,57827
|
|
23
23
|
masster/sample/quant.py,sha256=tHNjvUFTdehKR31BXBZnVsBxMD9XJHgaltITOjr71uE,7562
|
|
24
|
-
masster/sample/sample.py,sha256=
|
|
25
|
-
masster/sample/sample5_schema.json,sha256=
|
|
24
|
+
masster/sample/sample.py,sha256=QxKjXPO5lWRrIq5eDsYzNQPjp0zI_vuPdPlRQe1y3uI,16925
|
|
25
|
+
masster/sample/sample5_schema.json,sha256=4g_uBMODLvxnhZU6iCK61W3fbaT6sTgOvBhEFc3U1nI,3772
|
|
26
26
|
masster/sample/save.py,sha256=kQULZkuhx2ED8jMlQsi5yK98dRKlQKvQf5uJDvI01ZA,31896
|
|
27
27
|
masster/sample/sciex.py,sha256=vnbxsq_qnAQVuzcpziP1o3IC4kM5amGBcPmC2TAuDLw,46319
|
|
28
28
|
masster/sample/defaults/__init__.py,sha256=A09AOP44cxD_oYohyt7XFUho0zndRcrzVD4DUaGnKH4,447
|
|
@@ -34,17 +34,17 @@ masster/sample/defaults/sample_def.py,sha256=keoXyMyrm_iLgbYqfIbqCpJ3XHBVlNwCNmb
|
|
|
34
34
|
masster/study/__init__.py,sha256=Zspv6U8jFqjkHGYdNdDy1rfUnCSolCzUdgSSg98PRgE,166
|
|
35
35
|
masster/study/export.py,sha256=9Bhz8wpO3ZHdwV0iWSX0E38GS3UfqfAFlW9VN8ht2-Y,28845
|
|
36
36
|
masster/study/h5.py,sha256=UOc4tbeWr8Xa_5Aescz7rMMnkzpu8PSTsOAnTfPv0-E,67109
|
|
37
|
-
masster/study/helpers.py,sha256=
|
|
37
|
+
masster/study/helpers.py,sha256=qf5_4DVW5X3MI3TgoZes5bNzuIt-r_esSeJoNOO8a6A,92540
|
|
38
38
|
masster/study/helpers_optimized.py,sha256=sd87kNPIEPdMijekXzZWSyeZzJ_DTAW8HQjAry-jVyY,13922
|
|
39
|
-
masster/study/load.py,sha256=
|
|
39
|
+
masster/study/load.py,sha256=w-HhyQqShgc2R2b3ko3Yy7t-MHLiO9HlSpuOMAdpnZQ,48429
|
|
40
40
|
masster/study/parameters.py,sha256=0elaF7YspTsB7qyajWAbRNL2VfKlGz5GJLifmO8IGkk,3276
|
|
41
|
-
masster/study/plot.py,sha256=
|
|
42
|
-
masster/study/processing.py,sha256=
|
|
41
|
+
masster/study/plot.py,sha256=Vvbh19f94X8D4aX5mLVyPso-iC0ZpsyQCe3NTib34VU,68389
|
|
42
|
+
masster/study/processing.py,sha256=EZlzcMmMWcCW0dMdC3tc4r8ii6kncWQC2_Lc_ybfLFc,52286
|
|
43
43
|
masster/study/save.py,sha256=YjFEiuiB4OFLVvW_AX4-kgnsbjCWrYZeqF85VNEtbdw,6560
|
|
44
|
-
masster/study/study.py,sha256=
|
|
45
|
-
masster/study/study5_schema.json,sha256=
|
|
44
|
+
masster/study/study.py,sha256=ZeCwKgZfAIrvEywxn7HbtBFssWCYxgkRnsNzgmfApyo,31343
|
|
45
|
+
masster/study/study5_schema.json,sha256=Grm2vfi2NnfNfcqKndz3IX9JNyhgwh92T8x-IofLay4,5103
|
|
46
46
|
masster/study/defaults/__init__.py,sha256=m3Z5KXGqsTdh7GjYzZoENERt39yRg0ceVRV1DeCt1P0,610
|
|
47
|
-
masster/study/defaults/align_def.py,sha256=
|
|
47
|
+
masster/study/defaults/align_def.py,sha256=QSJXfe5kAtYp_IN8LUuXjq61IkxT74ml84k5kmmRjqM,19846
|
|
48
48
|
masster/study/defaults/export_def.py,sha256=eXl3h4aoLX88XkHTpqahLd-QZ2gjUqrmjq8IJULXeWo,1203
|
|
49
49
|
masster/study/defaults/fill_chrom_def.py,sha256=hB6-tyC9bhx-IpGj2HC8FinQdW4VLYj_pn5t1rlj-Ew,8887
|
|
50
50
|
masster/study/defaults/fill_def.py,sha256=5B7-iNCngdwHPbf0146LzrqxKCi7_g5OC1XtkxvckeQ,8869
|
|
@@ -54,8 +54,8 @@ masster/study/defaults/integrate_chrom_def.py,sha256=0MNIWGTjty-Zu-NTQsIweuj3UVq
|
|
|
54
54
|
masster/study/defaults/integrate_def.py,sha256=Vf4SAzdBfnsSZ3IRaF0qZvWu3gMDPHdgPfMYoPKeWv8,7246
|
|
55
55
|
masster/study/defaults/merge_def.py,sha256=EBsKE3hsAkTEzN9dpdRD5W3_suTKy_WZ_96rwS0uBuE,8572
|
|
56
56
|
masster/study/defaults/study_def.py,sha256=d8mQWIpvWEWI8grPTAcQa4jKTG7QrM98RRgHZVoh134,9519
|
|
57
|
-
masster-0.3.
|
|
58
|
-
masster-0.3.
|
|
59
|
-
masster-0.3.
|
|
60
|
-
masster-0.3.
|
|
61
|
-
masster-0.3.
|
|
57
|
+
masster-0.3.12.dist-info/METADATA,sha256=gb3nbkBNDa0TARJGbCHRjoOym_L4bMX6mT6415BBvDg,44293
|
|
58
|
+
masster-0.3.12.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
59
|
+
masster-0.3.12.dist-info/entry_points.txt,sha256=ZHguQ_vPmdbpqq2uGtmEOLJfgP-DQ1T0c07Lxh30wc8,58
|
|
60
|
+
masster-0.3.12.dist-info/licenses/LICENSE,sha256=bx5iLIKjgAdYQ7sISn7DsfHRKkoCUm1154sJJKhgqnU,35184
|
|
61
|
+
masster-0.3.12.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|