OpenMS
Loading...
Searching...
No Matches
OpenSwathOSWParquetReader.h
Go to the documentation of this file.
1
2// Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
3// SPDX-License-Identifier: BSD-3-Clause
4//
5// --------------------------------------------------------------------------
6// $Maintainer: Justin Sing $
7// $Authors: Justin Sing $
8// --------------------------------------------------------------------------
9
10#pragma once
11
14#include <map>
15#include <vector>
16
17namespace OpenMS
18{
28 class OPENMS_DLLAPI OpenSwathOSWParquetReader
29 {
30 public:
32 struct Row
33 {
34 int64_t feature_id = 0;
35 int64_t run_id = 0;
36 int64_t precursor_id = 0;
38 double exp_rt = 0.0;
39 double ms2_area_intensity = 0.0;
40 double ms2_total_area_intensity = 0.0;
41 double ms2_apex_intensity = 0.0;
43 int precursor_charge = 0;
44 bool decoy = false;
45 int64_t transition_count = 0;
46 std::string group_id;
47 };
48
52 {
53 // Core per-feature columns (all length N)
54 std::vector<int64_t> feature_id;
55 std::vector<int64_t> run_id;
56 std::vector<int64_t> precursor_id;
58 std::vector<double> exp_rt;
60 std::vector<int> precursor_charge;
61 std::vector<bool> decoy;
62 std::vector<int64_t> transition_count;
63 std::vector<std::string> group_id;
64
65 // Discovered MS2 score columns and their column vectors (each vector length N)
66 // ms2_columns[i] corresponds to ms2_values[i]
67 std::vector<std::string> ms2_columns;
68 std::vector<std::vector<double>> ms2_values;
69
70 // Discovered MS1 score columns and their column vectors (only present if requested)
71 std::vector<std::string> ms1_columns;
72 std::vector<std::vector<double>> ms1_values;
73 };
74
77 {
78 // Core per-transition columns (all length N)
79 std::vector<int64_t> feature_id;
80 std::vector<int64_t> run_id;
81 std::vector<int64_t> precursor_id;
83 std::vector<double> exp_rt;
85 std::vector<int> precursor_charge;
86
87 std::vector<int64_t> transition_id;
88 std::vector<int> product_charge;
89 std::vector<bool> decoy; // transition-level decoy flag
92 std::vector<bool> decoy_valid;
93
94 // basic transition-level peak metrics
95 std::vector<double> area_intensity;
96 std::vector<double> total_area_intensity;
97 std::vector<double> apex_intensity;
98 std::vector<double> apex_rt;
99 std::vector<double> rt_fwhm;
100 std::vector<double> masserror_ppm;
101 std::vector<double> total_mi;
102
103 // Discovered transition-level var_ columns and their column vectors
104 std::vector<std::string> transition_var_columns;
105 std::vector<std::vector<double>> transition_var_values;
106
107 // Group id (run_feature_precursor_transition style)
108 std::vector<std::string> group_id;
109 };
110
117 {
118 std::vector<int64_t> id_run;
119 std::vector<int64_t> id_peptide;
120 std::vector<int64_t> transition_group_id;
121 std::vector<bool> decoy;
122 std::vector<int64_t> run_id;
123 std::vector<std::string> filename;
124 std::vector<double> RT;
125 std::vector<double> assay_rt; // FEATURE.EXP_RT - FEATURE.DELTA_RT
126 std::vector<double> delta_rt; // FEATURE.DELTA_RT
127 std::vector<double> assay_RT; // PRECURSOR.LIBRARY_RT
128 std::vector<double> delta_RT; // FEATURE.NORM_RT - PRECURSOR.LIBRARY_RT
129 std::vector<int64_t> id; // FEATURE.ID
130 std::vector<int> Charge; // PRECURSOR.CHARGE
131 std::vector<double> mz; // PRECURSOR.PRECURSOR_MZ
132 std::vector<double> Intensity; // FEATURE_MS2.AREA_INTENSITY
133
134 // aggregated MS1 metrics
135 std::vector<double> aggr_prec_Peak_Area;
136 std::vector<double> aggr_prec_Peak_Apex;
137
138 std::vector<double> leftWidth;
139 std::vector<double> rightWidth;
140
141 // ion-mobility columns (may be NULL)
142 std::vector<double> EXP_IM;
143 std::vector<double> IM_leftWidth;
144 std::vector<double> IM_rightWidth;
145
146 // Discovered score columns (var_ms1_ and var_ms2_) and their values
147 std::vector<std::string> ms2_columns;
148 std::vector<std::vector<double>> ms2_values;
149 std::vector<std::string> ms1_columns;
150 std::vector<std::vector<double>> ms1_values;
151 };
152
155
167 OpenSwathOSWParquetReader(const std::string& oswpq_dir);
168
174 void load(const std::string& oswpq_dir);
175
177 const std::string& oswpqPath() const { return oswpq_dir_; }
178
180 const std::vector<Row>& rows() const { return rows_; }
181
200 PeakGroupFeatureScoresResult fetchPeakGroupFeatures(const std::string& oswpq_dir, const std::string& level = "ms2", const std::string& main_score = "") const;
201
229 TransitionFeaturesResult fetchTransitionFeatures(const std::string& oswpq_dir) const;
230
261 UnscoredResult fetchUnscoredData(const std::string& oswpq_dir) const;
262
263 private:
264 std::vector<Row> rows_;
265 // store last-loaded path so Python-side code can call fetch methods without re-supplying the path
266 std::string oswpq_dir_;
267 };
268
269} // namespace OpenMS
Reader for OpenSwath OSW Parquet output.
Definition OpenSwathOSWParquetReader.h:29
std::vector< double > area_intensity
Definition OpenSwathOSWParquetReader.h:95
UnscoredResult fetchUnscoredData(const std::string &oswpq_dir) const
Read an "unscored" table and return a column-oriented result.
std::vector< int64_t > transition_id
Definition OpenSwathOSWParquetReader.h:87
std::vector< double > IM_leftWidth
Definition OpenSwathOSWParquetReader.h:143
std::vector< double > apex_rt
Definition OpenSwathOSWParquetReader.h:98
const std::vector< Row > & rows() const
Return extracted rows.
Definition OpenSwathOSWParquetReader.h:180
std::vector< double > delta_rt
Definition OpenSwathOSWParquetReader.h:126
OpenSwathOSWParquetReader(const std::string &oswpq_dir)
Convenience constructor that loads from the given oswpq path.
std::vector< double > Intensity
Definition OpenSwathOSWParquetReader.h:132
PeakGroupFeatureScoresResult fetchPeakGroupFeatures(const std::string &oswpq_dir, const std::string &level="ms2", const std::string &main_score="") const
Extract MS2-level feature rows across all runs.
std::vector< double > assay_RT
Definition OpenSwathOSWParquetReader.h:127
std::vector< std::string > group_id
Definition OpenSwathOSWParquetReader.h:63
std::vector< std::vector< double > > ms2_values
Definition OpenSwathOSWParquetReader.h:68
std::string group_id
Definition OpenSwathOSWParquetReader.h:46
std::vector< int64_t > id_peptide
Definition OpenSwathOSWParquetReader.h:119
std::vector< int64_t > transition_count
Definition OpenSwathOSWParquetReader.h:62
void load(const std::string &oswpq_dir)
Load and extract rows from an OSW Parquet directory or .oswpq archive.
TransitionFeaturesResult fetchTransitionFeatures(const std::string &oswpq_dir) const
Extract transition-level feature rows across all runs (SOA)
std::vector< double > RT
Definition OpenSwathOSWParquetReader.h:124
std::vector< Row > rows_
Definition OpenSwathOSWParquetReader.h:264
std::vector< double > total_area_intensity
Definition OpenSwathOSWParquetReader.h:96
std::vector< double > masserror_ppm
Definition OpenSwathOSWParquetReader.h:100
std::vector< bool > decoy
Definition OpenSwathOSWParquetReader.h:61
std::vector< int64_t > run_id
Definition OpenSwathOSWParquetReader.h:55
std::vector< int64_t > transition_group_id
Definition OpenSwathOSWParquetReader.h:120
std::vector< std::string > ms2_columns
Definition OpenSwathOSWParquetReader.h:67
std::vector< double > delta_RT
Definition OpenSwathOSWParquetReader.h:128
std::string oswpq_dir_
Definition OpenSwathOSWParquetReader.h:266
std::vector< int > precursor_charge
Auxiliary precursor charge, with NULL represented by 0. Scientific identity validation is caller-owne...
Definition OpenSwathOSWParquetReader.h:60
std::vector< double > mz
Definition OpenSwathOSWParquetReader.h:131
std::vector< double > leftWidth
Definition OpenSwathOSWParquetReader.h:138
std::vector< int64_t > id_run
Definition OpenSwathOSWParquetReader.h:118
const std::string & oswpqPath() const
Return the originally provided oswpq path (may be empty)
Definition OpenSwathOSWParquetReader.h:177
std::vector< int64_t > precursor_id
Definition OpenSwathOSWParquetReader.h:56
std::vector< bool > decoy_valid
Definition OpenSwathOSWParquetReader.h:92
std::vector< int64_t > feature_id
Definition OpenSwathOSWParquetReader.h:54
std::vector< std::vector< double > > ms1_values
Definition OpenSwathOSWParquetReader.h:72
std::vector< double > aggr_prec_Peak_Area
Definition OpenSwathOSWParquetReader.h:135
std::vector< int64_t > id
Definition OpenSwathOSWParquetReader.h:129
std::vector< std::string > filename
Definition OpenSwathOSWParquetReader.h:123
std::vector< double > IM_rightWidth
Definition OpenSwathOSWParquetReader.h:144
std::vector< double > total_mi
Definition OpenSwathOSWParquetReader.h:101
OpenSwathOSWParquetReader()=default
Default constructor.
std::vector< double > aggr_prec_Peak_Apex
Definition OpenSwathOSWParquetReader.h:136
std::vector< double > EXP_IM
Definition OpenSwathOSWParquetReader.h:142
std::vector< double > rightWidth
Definition OpenSwathOSWParquetReader.h:139
std::vector< double > exp_rt
Experimental RT, with unknown (NULL) values represented by NaN and sorted last within a group.
Definition OpenSwathOSWParquetReader.h:58
std::vector< int > Charge
Definition OpenSwathOSWParquetReader.h:130
std::vector< double > rt_fwhm
Definition OpenSwathOSWParquetReader.h:99
std::vector< double > assay_rt
Definition OpenSwathOSWParquetReader.h:125
std::vector< double > apex_intensity
Definition OpenSwathOSWParquetReader.h:97
std::vector< int > product_charge
Definition OpenSwathOSWParquetReader.h:88
std::vector< std::vector< double > > transition_var_values
Definition OpenSwathOSWParquetReader.h:105
std::vector< std::string > ms1_columns
Definition OpenSwathOSWParquetReader.h:71
std::vector< std::string > transition_var_columns
Definition OpenSwathOSWParquetReader.h:104
Single extracted row combining feature + precursor + run metadata.
Definition OpenSwathOSWParquetReader.h:33
Result container for transition-level features.
Definition OpenSwathOSWParquetReader.h:77
Result container for an unscored table.
Definition OpenSwathOSWParquetReader.h:117
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19