OpenMS
Loading...
Searching...
No Matches
XIMParquetFile.h
Go to the documentation of this file.
1// Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2// SPDX-License-Identifier: BSD-3-Clause
3//
4// --------------------------------------------------------------------------
5// $Maintainer: Justin Sing $
6// $Authors: Justin Sing $
7// --------------------------------------------------------------------------
8
9#pragma once
10
14
15#include <vector>
16
17namespace OpenMS
18{
60 class OPENMS_DLLAPI XIMParquetFile
61 {
62 public:
66 struct OPENMS_DLLAPI XIMMobilogram
67 {
68 Int64 run_id{0};
70 Int64 ms_level{0};
72
73 bool has_precursor_id{false};
74 Int64 precursor_id{0};
75 bool has_transition_id{false};
76 Int64 transition_id{0};
77 bool has_feature_id{false};
78 Int64 feature_id{0};
79 bool has_feature_rt{false};
80 double feature_rt{0.0};
82 bool has_precursor_charge{false};
83 Int64 precursor_charge{0};
84 bool has_product_charge{false};
85 Int64 product_charge{0};
86 bool has_detecting_transition{false};
87 Int64 detecting_transition{0};
88 bool has_precursor_decoy{false};
89 Int64 precursor_decoy{0};
90 bool has_product_decoy{false};
91 Int64 product_decoy{0};
92 bool has_transition_ordinal{false};
93 Int64 transition_ordinal{0};
96
97 std::vector<double> mobility;
98 std::vector<double> intensity;
99 };
100
104 struct OPENMS_DLLAPI XIMRunInfo
105 {
106 Int64 run_id{0};
108 };
109
119 struct OPENMS_DLLAPI XIMAnalyte
120 {
121 bool has_precursor_id{false};
122 Int64 precursor_id{0};
124 bool has_precursor_charge{false};
125 Int64 precursor_charge{0};
126 bool has_precursor_decoy{false};
127 Int64 precursor_decoy{0};
128
129 bool has_transition_id{false};
130 Int64 transition_id{0};
131 bool has_product_charge{false};
132 Int64 product_charge{0};
133 bool has_transition_ordinal{false};
134 Int64 transition_ordinal{0};
135 bool has_detecting_transition{false};
136 Int64 detecting_transition{0};
137 bool has_product_decoy{false};
138 Int64 product_decoy{0};
141
142 std::vector<Int64> transition_ids;
143 std::vector<Int64> product_charges;
144 std::vector<Int64> transition_ordinals;
145 std::vector<Int64> detecting_transitions;
146 std::vector<Int64> product_decoys;
147 std::vector<String> transition_types;
148 std::vector<String> annotations;
149 };
150
156 explicit XIMParquetFile(const String& filename);
157
163 explicit XIMParquetFile(const std::vector<String>& filenames);
164 XIMParquetFile(const XIMParquetFile& rhs) = default;
166
174 const String& getFilename() const;
175
181 const std::vector<String>& getFilenames() const;
182
188 void load(std::vector<XIMMobilogram>& output) const;
189
207 void getMobilograms(std::vector<XIMMobilogram>& output,
208 Int64 precursor_id = -1,
209 Int64 transition_id = -1,
210 const String& modified_sequence = "",
211 Int64 precursor_charge = -1,
212 Int64 product_charge = -1,
213 Int64 ms_level = -1,
214 Int64 run_id = -1,
215 const String& mobilogram_type = "",
216 Int64 feature_id = -1,
217 double feature_rt = -1.0,
218 const String& filter = "") const;
219
226 void getMobilograms(std::vector<XIMMobilogram>& output,
227 const ParquetFilter& filter) const;
228
235 void getMobilograms(std::vector<XIMMobilogram>& output,
236 const ParquetFilterBuilder& filter) const;
237
244 void getRuns(std::vector<XIMRunInfo>& output) const;
245
261 void getAnalytes(std::vector<XIMAnalyte>& output,
262 const std::vector<String>& columns = {},
263 bool nest_transitions = true) const;
264
270 void getColumns(std::vector<String>& output) const;
271
272 private:
273 void getMobilograms_(std::vector<XIMMobilogram>& output,
274 const FilterExpression& extra_filter,
275 Int64 precursor_id,
276 Int64 transition_id,
277 const String& modified_sequence,
278 Int64 precursor_charge,
279 Int64 product_charge,
280 Int64 ms_level,
281 Int64 run_id,
282 const String& mobilogram_type,
283 Int64 feature_id,
284 double feature_rt,
285 const String& filter) const;
286
288 std::vector<String> filenames_;
289 };
290
297} // namespace OpenMS
Fluent builder for ParquetFilter objects.
Definition ParquetFilter.h:240
Typed filter builder for parquet-backed datasets.
Definition ParquetFilter.h:74
A more convenient string class.
Definition String.h:34
Reader for OpenSWATH mobilogram Parquet files (.xim).
Definition XIMParquetFile.h:61
String modified_sequence
Definition XIMParquetFile.h:81
std::vector< Int64 > transition_ids
Definition XIMParquetFile.h:142
void getMobilograms(std::vector< XIMMobilogram > &output, const ParquetFilter &filter) const
Return mobilograms using a typed filter expression.
void getMobilograms(std::vector< XIMMobilogram > &output, Int64 precursor_id=-1, Int64 transition_id=-1, const String &modified_sequence="", Int64 precursor_charge=-1, Int64 product_charge=-1, Int64 ms_level=-1, Int64 run_id=-1, const String &mobilogram_type="", Int64 feature_id=-1, double feature_rt=-1.0, const String &filter="") const
Load mobilograms with optional filtering.
std::vector< String > filenames_
Definition XIMParquetFile.h:288
String transition_type
Definition XIMParquetFile.h:94
std::vector< String > transition_types
Definition XIMParquetFile.h:147
void getColumns(std::vector< String > &output) const
Return the parquet schema column names.
String filename_
Definition XIMParquetFile.h:287
XIMParquetFile(const String &filename)
Construct from a single .xim file.
void getMobilograms(std::vector< XIMMobilogram > &output, const ParquetFilterBuilder &filter) const
Return mobilograms using a typed filter builder.
std::vector< Int64 > transition_ordinals
Definition XIMParquetFile.h:144
std::vector< Int64 > detecting_transitions
Definition XIMParquetFile.h:145
const String & getFilename() const
Return the primary filename.
void getMobilograms_(std::vector< XIMMobilogram > &output, const FilterExpression &extra_filter, Int64 precursor_id, Int64 transition_id, const String &modified_sequence, Int64 precursor_charge, Int64 product_charge, Int64 ms_level, Int64 run_id, const String &mobilogram_type, Int64 feature_id, double feature_rt, const String &filter) const
String source_file
Definition XIMParquetFile.h:69
String mobilogram_type
Definition XIMParquetFile.h:71
const std::vector< String > & getFilenames() const
Return all filenames associated with this instance.
XIMParquetFile & operator=(const XIMParquetFile &rhs)=default
void getAnalytes(std::vector< XIMAnalyte > &output, const std::vector< String > &columns={}, bool nest_transitions=true) const
Return unique analyte metadata.
String annotation
Definition XIMParquetFile.h:95
XIMParquetFile(const std::vector< String > &filenames)
Construct from multiple .xim files.
void getRuns(std::vector< XIMRunInfo > &output) const
Return unique run metadata (run_id, source_file).
std::vector< double > intensity
Definition XIMParquetFile.h:98
void load(std::vector< XIMMobilogram > &output) const
Load all mobilograms from the file(s).
std::vector< String > annotations
Definition XIMParquetFile.h:148
std::vector< Int64 > product_charges
Definition XIMParquetFile.h:143
std::vector< Int64 > product_decoys
Definition XIMParquetFile.h:146
std::vector< double > mobility
Definition XIMParquetFile.h:97
XIMParquetFile(const XIMParquetFile &rhs)=default
Analyte metadata container.
Definition XIMParquetFile.h:120
Lightweight mobilogram container for XIM parquet rows.
Definition XIMParquetFile.h:67
Unique run information (run_id, source_file).
Definition XIMParquetFile.h:105
int64_t Int64
Signed integer type (64bit)
Definition Types.h:40
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
XIMParquetFile::XIMMobilogram XIMMobilogram
Convenience alias for the nested XIM mobilogram type.
Definition XIMParquetFile.h:292
XIMParquetFile::XIMRunInfo XIMRunInfo
Convenience alias for the nested run info type.
Definition XIMParquetFile.h:294
XIMParquetFile::XIMAnalyte XIMAnalyte
Convenience alias for the nested analyte type.
Definition XIMParquetFile.h:296
Simple conjunction/disjunction of conditions.
Definition ParquetFilter.h:42