OpenMS
Loading...
Searching...
No Matches
ArrowSchemaRegistry.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: Timo Sachsenberg $
6// $Authors: Timo Sachsenberg $
7// --------------------------------------------------------------------------
8
9#pragma once
10
11#include <OpenMS/OpenMSConfig.h>
12#include <memory>
13#include <string>
14#include <vector>
15
16// Forward declarations
17namespace arrow
18{
19 class Schema;
20 class DataType;
21 class Table;
22}
23
24namespace OpenMS
25{
26
28 namespace ArrowSchemaValidation
29 {
31 enum class Mode
32 {
33 Strict,
34 Subset
35 };
36
38 struct OPENMS_DLLAPI ValidationResult
39 {
40 bool valid = true;
41 std::vector<std::string> errors;
42 std::string toString() const;
43 };
44
47 const std::shared_ptr<arrow::Table>& table,
48 const std::shared_ptr<arrow::Schema>& expected_schema,
49 Mode mode = Mode::Strict);
50 }
51
53 struct OPENMS_DLLAPI ProteinSchema
54 {
55 static constexpr const char* ACCESSION = "accession";
56 static constexpr const char* SCORE = "score";
57 static constexpr const char* RANK = "rank";
58 static constexpr const char* COVERAGE = "coverage";
59 static constexpr const char* SEQUENCE = "sequence";
60 static constexpr const char* DESCRIPTION = "description";
61 static constexpr const char* IS_DECOY = "is_decoy";
62 static constexpr const char* RUN_IDENTIFIER = "run_identifier";
63 static constexpr const char* MODIFICATIONS = "modifications";
64 static constexpr const char* METAVALUES = "metavalues";
65
66 static std::shared_ptr<arrow::DataType> modificationsType();
67 static std::shared_ptr<arrow::DataType> metavaluesType();
68 static std::shared_ptr<arrow::Schema> schema();
69 };
70
72 struct OPENMS_DLLAPI ProteinGroupSchema
73 {
74 static constexpr const char* GROUP_TYPE = "group_type";
75 static constexpr const char* PROBABILITY = "probability";
76 static constexpr const char* ACCESSIONS = "accessions";
77 static constexpr const char* RUN_IDENTIFIER = "run_identifier";
78 static constexpr const char* GROUP_INDEX = "group_index";
79 static constexpr const char* FLOAT_DATA = "float_data";
80 static constexpr const char* STRING_DATA = "string_data";
81 static constexpr const char* INTEGER_DATA = "integer_data";
82
83 static std::shared_ptr<arrow::DataType> floatDataType();
84 static std::shared_ptr<arrow::DataType> stringDataType();
85 static std::shared_ptr<arrow::DataType> integerDataType();
86 static std::shared_ptr<arrow::Schema> schema();
87 };
88
90 struct OPENMS_DLLAPI SearchParamsSchema
91 {
92 static constexpr const char* RUN_IDENTIFIER = "run_identifier";
93 static constexpr const char* SEARCH_ENGINE = "search_engine";
94 static constexpr const char* SEARCH_ENGINE_VERSION = "search_engine_version";
95 static constexpr const char* INFERENCE_ENGINE = "inference_engine";
96 static constexpr const char* INFERENCE_ENGINE_VERSION = "inference_engine_version";
97 static constexpr const char* DATE = "date";
98 static constexpr const char* SCORE_TYPE = "score_type";
99 static constexpr const char* HIGHER_SCORE_BETTER = "higher_score_better";
100 static constexpr const char* SIGNIFICANCE_THRESHOLD = "significance_threshold";
101 static constexpr const char* DB = "db";
102 static constexpr const char* DB_VERSION = "db_version";
103 static constexpr const char* TAXONOMY = "taxonomy";
104 static constexpr const char* CHARGES = "charges";
105 static constexpr const char* MASS_TYPE = "mass_type";
106 static constexpr const char* PRECURSOR_MASS_TOLERANCE = "precursor_mass_tolerance";
107 static constexpr const char* PRECURSOR_MASS_TOLERANCE_PPM = "precursor_mass_tolerance_ppm";
108 static constexpr const char* FRAGMENT_MASS_TOLERANCE = "fragment_mass_tolerance";
109 static constexpr const char* FRAGMENT_MASS_TOLERANCE_PPM = "fragment_mass_tolerance_ppm";
110 static constexpr const char* DIGESTION_ENZYME = "digestion_enzyme";
111 static constexpr const char* ENZYME_TERM_SPECIFICITY = "enzyme_term_specificity";
112 static constexpr const char* MISSED_CLEAVAGES = "missed_cleavages";
113 static constexpr const char* FIXED_MODIFICATIONS = "fixed_modifications";
114 static constexpr const char* VARIABLE_MODIFICATIONS = "variable_modifications";
115 static constexpr const char* PRIMARY_MS_RUN_PATHS = "primary_ms_run_paths";
116 static constexpr const char* METAVALUES = "metavalues";
117 static constexpr const char* SP_METAVALUES = "sp_metavalues";
118
119 static std::shared_ptr<arrow::DataType> metavaluesType();
120 static std::shared_ptr<arrow::Schema> schema();
121 };
122
124 struct OPENMS_DLLAPI FeatureSchema
125 {
126 static constexpr const char* UNIQUE_ID = "unique_id";
127 static constexpr const char* PARENT_FEATURE_ID = "parent_feature_id";
128 static constexpr const char* DEPTH = "depth";
129 static constexpr const char* RT = "rt";
130 static constexpr const char* MZ = "mz";
131 static constexpr const char* INTENSITY = "intensity";
132 static constexpr const char* CHARGE = "charge";
133 static constexpr const char* QUALITY = "quality";
134 static constexpr const char* QUALITY_RT = "quality_rt";
135 static constexpr const char* QUALITY_MZ = "quality_mz";
136 static constexpr const char* WIDTH = "width";
137 static constexpr const char* RT_BB_MIN = "rt_bb_min";
138 static constexpr const char* RT_BB_MAX = "rt_bb_max";
139 static constexpr const char* MZ_BB_MIN = "mz_bb_min";
140 static constexpr const char* MZ_BB_MAX = "mz_bb_max";
141 static constexpr const char* CONVEX_HULLS = "convex_hulls";
142 static constexpr const char* METAVALUES = "metavalues";
143
144 static std::shared_ptr<arrow::DataType> convexHullType();
145 static std::shared_ptr<arrow::DataType> metavaluesType();
146 static std::shared_ptr<arrow::Schema> schema();
147 };
148
150 struct OPENMS_DLLAPI ConsensusFeatureSchema
151 {
152 static constexpr const char* UNIQUE_ID = "unique_id";
153 static constexpr const char* RT = "rt";
154 static constexpr const char* MZ = "mz";
155 static constexpr const char* INTENSITY = "intensity";
156 static constexpr const char* CHARGE = "charge";
157 static constexpr const char* QUALITY = "quality";
158 static constexpr const char* WIDTH = "width";
159 static constexpr const char* HANDLES = "handles";
160 static constexpr const char* METAVALUES = "metavalues";
161
162 static std::shared_ptr<arrow::DataType> handlesType();
163 static std::shared_ptr<arrow::DataType> metavaluesType();
164 static std::shared_ptr<arrow::Schema> schema();
165 };
166
168 struct OPENMS_DLLAPI PSMSchema
169 {
170 static constexpr const char* SEQUENCE = "sequence";
171 static constexpr const char* PEPTIDOFORM = "peptidoform";
172 static constexpr const char* MODIFICATIONS = "modifications";
173 static constexpr const char* PRECURSOR_CHARGE = "precursor_charge";
174 static constexpr const char* POSTERIOR_ERROR_PROBABILITY = "posterior_error_probability";
175 static constexpr const char* IS_DECOY = "is_decoy";
176 static constexpr const char* CALCULATED_MZ = "calculated_mz";
177 static constexpr const char* OBSERVED_MZ = "observed_mz";
178 static constexpr const char* ADDITIONAL_SCORES = "additional_scores";
179 static constexpr const char* PROTEIN_ACCESSIONS = "protein_accessions";
180 static constexpr const char* PREDICTED_RT = "predicted_rt";
181 static constexpr const char* REFERENCE_FILE_NAME = "reference_file_name";
182 static constexpr const char* CV_PARAMS = "cv_params";
183 static constexpr const char* SCAN = "scan";
184 static constexpr const char* RT = "rt";
185 static constexpr const char* ION_MOBILITY = "ion_mobility";
186 static constexpr const char* SPECTRUM_REFERENCE = "spectrum_reference";
187 static constexpr const char* SCORE = "score";
188 static constexpr const char* SCORE_TYPE = "score_type";
189 static constexpr const char* HIGHER_SCORE_BETTER = "higher_score_better";
190 static constexpr const char* RANK = "rank";
191 static constexpr const char* PEPTIDE_IDENTIFICATION_INDEX = "peptide_identification_index";
192 static constexpr const char* PSM_METAVALUES = "psm_metavalues";
193 static constexpr const char* SPECTRUM_METAVALUES = "spectrum_metavalues";
194 static constexpr const char* RUN_IDENTIFIER = "run_identifier";
195
196 static std::shared_ptr<arrow::DataType> modificationsType();
197 static std::shared_ptr<arrow::DataType> additionalScoresType();
198 static std::shared_ptr<arrow::DataType> metavaluesType();
199 static std::shared_ptr<arrow::Schema> schema();
200 };
201
206 struct OPENMS_DLLAPI QPXPSMSchema
207 {
208 static constexpr const char* SEQUENCE = "sequence";
209 static constexpr const char* PEPTIDOFORM = "peptidoform";
210 static constexpr const char* MODIFICATIONS = "modifications";
211 static constexpr const char* CHARGE = "charge";
212 static constexpr const char* POSTERIOR_ERROR_PROBABILITY = "posterior_error_probability";
213 static constexpr const char* IS_DECOY = "is_decoy";
214 static constexpr const char* CALCULATED_MZ = "calculated_mz";
215 static constexpr const char* OBSERVED_MZ = "observed_mz";
216 static constexpr const char* MASS_ERROR_PPM = "mass_error_ppm";
217 static constexpr const char* ADDITIONAL_SCORES = "additional_scores";
218 static constexpr const char* PREDICTED_RT = "predicted_rt";
219 static constexpr const char* RUN_FILE_NAME = "run_file_name";
220 static constexpr const char* CV_PARAMS = "cv_params";
221 static constexpr const char* SCAN = "scan";
222 static constexpr const char* RT = "rt";
223 static constexpr const char* ION_MOBILITY = "ion_mobility";
224 static constexpr const char* MISSED_CLEAVAGES = "missed_cleavages";
225 static constexpr const char* PROTEIN_ACCESSIONS = "protein_accessions";
226 static constexpr const char* CROSS_LINKS = "cross_links";
227 static constexpr const char* MZ_ARRAY = "mz_array";
228 static constexpr const char* INTENSITY_ARRAY = "intensity_array";
229 static constexpr const char* CHARGE_ARRAY = "charge_array";
230 static constexpr const char* ION_TYPE_ARRAY = "ion_type_array";
231 static constexpr const char* ION_MOBILITY_ARRAY = "ion_mobility_array";
232
234 static std::shared_ptr<arrow::DataType> modificationsType();
236 static std::shared_ptr<arrow::DataType> additionalScoresType();
238 static std::shared_ptr<arrow::DataType> cvParamsType();
240 static std::shared_ptr<arrow::DataType> crossLinksType();
242 static std::shared_ptr<arrow::Schema> schema();
243 };
244
249 struct OPENMS_DLLAPI QPXFeatureSchema
250 {
251 static constexpr const char* SEQUENCE = "sequence";
252 static constexpr const char* PEPTIDOFORM = "peptidoform";
253 static constexpr const char* MODIFICATIONS = "modifications";
254 static constexpr const char* CHARGE = "charge";
255 static constexpr const char* POSTERIOR_ERROR_PROBABILITY = "posterior_error_probability";
256 static constexpr const char* IS_DECOY = "is_decoy";
257 static constexpr const char* CALCULATED_MZ = "calculated_mz";
258 static constexpr const char* OBSERVED_MZ = "observed_mz";
259 static constexpr const char* MASS_ERROR_PPM = "mass_error_ppm";
260 static constexpr const char* ADDITIONAL_SCORES = "additional_scores";
261 static constexpr const char* PREDICTED_RT = "predicted_rt";
262 static constexpr const char* RUN_FILE_NAME = "run_file_name";
263 static constexpr const char* CV_PARAMS = "cv_params";
264 static constexpr const char* SCAN = "scan";
265 static constexpr const char* RT = "rt";
266 static constexpr const char* ION_MOBILITY = "ion_mobility";
267 static constexpr const char* MISSED_CLEAVAGES = "missed_cleavages";
268 static constexpr const char* INTENSITIES = "intensities";
269 static constexpr const char* ADDITIONAL_INTENSITIES = "additional_intensities";
270 static constexpr const char* PG_ACCESSIONS = "pg_accessions";
271 static constexpr const char* ANCHOR_PROTEIN = "anchor_protein";
272 static constexpr const char* UNIQUE = "unique";
273 static constexpr const char* PG_GLOBAL_QVALUE = "pg_global_qvalue";
274 static constexpr const char* PG_POSITIONS = "pg_positions";
275 static constexpr const char* ION_MOBILITY_START = "ion_mobility_start";
276 static constexpr const char* ION_MOBILITY_STOP = "ion_mobility_stop";
277 static constexpr const char* GG_ACCESSIONS = "gg_accessions";
278 static constexpr const char* GG_NAMES = "gg_names";
279 static constexpr const char* ID_RUN_FILE_NAME = "id_run_file_name";
280 static constexpr const char* RT_START = "rt_start";
281 static constexpr const char* RT_STOP = "rt_stop";
282
284 static std::shared_ptr<arrow::DataType> modificationsType();
286 static std::shared_ptr<arrow::DataType> additionalScoresType();
288 static std::shared_ptr<arrow::DataType> cvParamsType();
290 static std::shared_ptr<arrow::DataType> intensitiesType();
292 static std::shared_ptr<arrow::DataType> additionalIntensitiesType();
294 static std::shared_ptr<arrow::DataType> pgAccessionsType();
296 static std::shared_ptr<arrow::DataType> pgPositionsType();
298 static std::shared_ptr<arrow::Schema> schema();
299 };
300
302 struct OPENMS_DLLAPI SpectraLongSchema
303 {
304 static constexpr const char* MZ = "mz";
305 static constexpr const char* INTENSITY = "intensity";
306 static constexpr const char* RT = "rt";
307 static constexpr const char* ION_MOBILITY = "ion_mobility";
308 static constexpr const char* SPECTRUM_INDEX = "spectrum_index";
309 static constexpr const char* MS_LEVEL = "ms_level";
310 static constexpr const char* NATIVE_ID = "native_id";
311 static constexpr const char* PRECURSOR_MZ = "precursor_mz";
312 static constexpr const char* PRECURSOR_CHARGE = "precursor_charge";
313 static constexpr const char* PRECURSOR_INTENSITY = "precursor_intensity";
314 static constexpr const char* ISOLATION_LOWER = "isolation_lower";
315 static constexpr const char* ISOLATION_UPPER = "isolation_upper";
316
317 static std::shared_ptr<arrow::Schema> schema();
318 };
319
321 struct OPENMS_DLLAPI SpectraSemiWideSchema
322 {
323 static constexpr const char* SPECTRUM_INDEX = "spectrum_index";
324 static constexpr const char* RT = "rt";
325 static constexpr const char* MS_LEVEL = "ms_level";
326 static constexpr const char* NATIVE_ID = "native_id";
327 static constexpr const char* MZ = "mz";
328 static constexpr const char* INTENSITY = "intensity";
329 static constexpr const char* ION_MOBILITY = "ion_mobility";
330 static constexpr const char* PRECURSOR_MZ = "precursor_mz";
331 static constexpr const char* PRECURSOR_CHARGE = "precursor_charge";
332 static constexpr const char* PRECURSOR_INTENSITY = "precursor_intensity";
333 static constexpr const char* ISOLATION_LOWER = "isolation_lower";
334 static constexpr const char* ISOLATION_UPPER = "isolation_upper";
335
336 static std::shared_ptr<arrow::Schema> schema();
337 };
338
340 struct OPENMS_DLLAPI ChromatogramSchema
341 {
342 static constexpr const char* RT = "rt";
343 static constexpr const char* INTENSITY = "intensity";
344 static constexpr const char* CHROMATOGRAM_INDEX = "chromatogram_index";
345 static constexpr const char* NATIVE_ID = "native_id";
346 static constexpr const char* PRECURSOR_MZ = "precursor_mz";
347 static constexpr const char* PRODUCT_MZ = "product_mz";
348
349 static std::shared_ptr<arrow::Schema> schema();
350 };
351
353 struct OPENMS_DLLAPI ChromatogramSemiWideSchema
354 {
355 static constexpr const char* CHROMATOGRAM_INDEX = "chromatogram_index";
356 static constexpr const char* NATIVE_ID = "native_id";
357 static constexpr const char* RT = "rt";
358 static constexpr const char* INTENSITY = "intensity";
359 static constexpr const char* PRECURSOR_MZ = "precursor_mz";
360 static constexpr const char* PRODUCT_MZ = "product_mz";
361
362 static std::shared_ptr<arrow::Schema> schema();
363 };
364
366 struct OPENMS_DLLAPI OSWPrecursorSchema
367 {
368 static constexpr const char* PRECURSOR_ID = "precursor_id";
369 static constexpr const char* PRECURSOR_MZ = "precursor_mz";
370 static constexpr const char* CHARGE = "charge";
371 static constexpr const char* LIBRARY_RT = "library_rt";
372 static constexpr const char* LIBRARY_DRIFT_TIME = "library_drift_time";
373 static constexpr const char* DECOY = "decoy";
374 static constexpr const char* TRAML_ID = "traml_id";
375 static constexpr const char* MODIFIED_SEQUENCE = "modified_sequence";
376 static constexpr const char* UNMODIFIED_SEQUENCE = "unmodified_sequence";
377 static constexpr const char* PROTEIN_ACCESSIONS = "protein_accessions";
378
379 static std::shared_ptr<arrow::Schema> schema();
380 };
381
383 struct OPENMS_DLLAPI OSWTransitionSchema
384 {
385 static constexpr const char* TRANSITION_ID = "transition_id";
386 static constexpr const char* PRECURSOR_ID = "precursor_id";
387 static constexpr const char* TRAML_ID = "traml_id";
388 static constexpr const char* PRODUCT_MZ = "product_mz";
389 static constexpr const char* CHARGE = "charge";
390 static constexpr const char* TYPE = "type";
391 static constexpr const char* ANNOTATION = "annotation";
392 static constexpr const char* ORDINAL = "ordinal";
393 static constexpr const char* DETECTING = "detecting";
394 static constexpr const char* IDENTIFYING = "identifying";
395 static constexpr const char* QUANTIFYING = "quantifying";
396 static constexpr const char* LIBRARY_INTENSITY = "library_intensity";
397 static constexpr const char* DECOY = "decoy";
398
399 static std::shared_ptr<arrow::Schema> schema();
400 };
401
403 struct OPENMS_DLLAPI OSWFeaturePrecursorSchema
404 {
405 static constexpr const char* FEATURE_ID = "feature_id";
406 static constexpr const char* RUN_ID = "run_id";
407 static constexpr const char* PRECURSOR_ISOTOPE = "precursor_isotope";
408 static constexpr const char* PRECURSOR_AREA_INTENSITY = "precursor_area_intensity";
409 static constexpr const char* PRECURSOR_APEX_INTENSITY = "precursor_apex_intensity";
410
411 static std::shared_ptr<arrow::Schema> schema();
412 };
413
415 struct OPENMS_DLLAPI OSWRunSchema
416 {
417 static constexpr const char* RUN_ID = "run_id";
418 static constexpr const char* FILENAME = "filename";
419
420 static std::shared_ptr<arrow::Schema> schema();
421 };
422
424 struct OPENMS_DLLAPI OSWFeatureSchema
425 {
426 static constexpr const char* FEATURE_ID = "feature_id";
427 static constexpr const char* RUN_ID = "run_id";
428 static constexpr const char* PRECURSOR_ID = "precursor_id";
429 static constexpr const char* EXP_RT = "exp_rt";
430 static constexpr const char* EXP_IM = "exp_im";
431 static constexpr const char* NORM_RT = "norm_rt";
432 static constexpr const char* DELTA_RT = "delta_rt";
433 static constexpr const char* LEFT_WIDTH = "left_width";
434 static constexpr const char* RIGHT_WIDTH = "right_width";
435 static constexpr const char* EXP_IM_LEFTWIDTH = "exp_im_leftwidth";
436 static constexpr const char* EXP_IM_RIGHTWIDTH = "exp_im_rightwidth";
437 static constexpr const char* MS1_AREA_INTENSITY = "ms1_area_intensity";
438 static constexpr const char* MS1_APEX_INTENSITY = "ms1_apex_intensity";
439 static constexpr const char* MS1_EXP_IM = "ms1_exp_im";
440 static constexpr const char* MS1_DELTA_IM = "ms1_delta_im";
441 static constexpr const char* VAR_MS1_MASSDEV_SCORE = "var_ms1_massdev_score";
442 static constexpr const char* VAR_MS1_IM_MS1_DELTA_SCORE = "var_ms1_im_ms1_delta_score";
443 static constexpr const char* VAR_MS1_MI_SCORE = "var_ms1_mi_score";
444 static constexpr const char* VAR_MS1_MI_CONTRAST_SCORE = "var_ms1_mi_contrast_score";
445 static constexpr const char* VAR_MS1_MI_COMBINED_SCORE = "var_ms1_mi_combined_score";
446 static constexpr const char* VAR_MS1_ISOTOPE_CORRELATION_SCORE = "var_ms1_isotope_correlation_score";
447 static constexpr const char* VAR_MS1_ISOTOPE_OVERLAP_SCORE = "var_ms1_isotope_overlap_score";
448 static constexpr const char* VAR_MS1_XCORR_COELUTION = "var_ms1_xcorr_coelution";
449 static constexpr const char* VAR_MS1_XCORR_COELUTION_CONTRAST = "var_ms1_xcorr_coelution_contrast";
450 static constexpr const char* VAR_MS1_XCORR_COELUTION_COMBINED = "var_ms1_xcorr_coelution_combined";
451 static constexpr const char* VAR_MS1_XCORR_SHAPE = "var_ms1_xcorr_shape";
452 static constexpr const char* VAR_MS1_XCORR_SHAPE_CONTRAST = "var_ms1_xcorr_shape_contrast";
453 static constexpr const char* VAR_MS1_XCORR_SHAPE_COMBINED = "var_ms1_xcorr_shape_combined";
454 static constexpr const char* MS2_AREA_INTENSITY = "ms2_area_intensity";
455 static constexpr const char* MS2_TOTAL_AREA_INTENSITY = "ms2_total_area_intensity";
456 static constexpr const char* MS2_APEX_INTENSITY = "ms2_apex_intensity";
457 static constexpr const char* MS2_EXP_IM = "ms2_exp_im";
458 static constexpr const char* MS2_EXP_IM_LEFTWIDTH = "ms2_exp_im_leftwidth";
459 static constexpr const char* MS2_EXP_IM_RIGHTWIDTH = "ms2_exp_im_rightwidth";
460 static constexpr const char* MS2_DELTA_IM = "ms2_delta_im";
461 static constexpr const char* MS2_TOTAL_MI = "ms2_total_mi";
462 static constexpr const char* VAR_MS2_BSERIES_SCORE = "var_ms2_bseries_score";
463 static constexpr const char* VAR_MS2_DOTPROD_SCORE = "var_ms2_dotprod_score";
464 static constexpr const char* VAR_MS2_INTENSITY_SCORE = "var_ms2_intensity_score";
465 static constexpr const char* VAR_MS2_ISOTOPE_CORRELATION_SCORE = "var_ms2_isotope_correlation_score";
466 static constexpr const char* VAR_MS2_ISOTOPE_OVERLAP_SCORE = "var_ms2_isotope_overlap_score";
467 static constexpr const char* VAR_MS2_LIBRARY_CORR = "var_ms2_library_corr";
468 static constexpr const char* VAR_MS2_LIBRARY_DOTPROD = "var_ms2_library_dotprod";
469 static constexpr const char* VAR_MS2_LIBRARY_MANHATTAN = "var_ms2_library_manhattan";
470 static constexpr const char* VAR_MS2_LIBRARY_RMSD = "var_ms2_library_rmsd";
471 static constexpr const char* VAR_MS2_LIBRARY_ROOTMEANSQUARE = "var_ms2_library_rootmeansquare";
472 static constexpr const char* VAR_MS2_LIBRARY_SANGLE = "var_ms2_library_sangle";
473 static constexpr const char* VAR_MS2_LOG_SN_SCORE = "var_ms2_log_sn_score";
474 static constexpr const char* VAR_MS2_MANHATTAN_SCORE = "var_ms2_manhattan_score";
475 static constexpr const char* VAR_MS2_MASSDEV_SCORE = "var_ms2_massdev_score";
476 static constexpr const char* VAR_MS2_MASSDEV_SCORE_WEIGHTED = "var_ms2_massdev_score_weighted";
477 static constexpr const char* VAR_MS2_MI_SCORE = "var_ms2_mi_score";
478 static constexpr const char* VAR_MS2_MI_WEIGHTED_SCORE = "var_ms2_mi_weighted_score";
479 static constexpr const char* VAR_MS2_MI_RATIO_SCORE = "var_ms2_mi_ratio_score";
480 static constexpr const char* VAR_MS2_NORM_RT_SCORE = "var_ms2_norm_rt_score";
481 static constexpr const char* VAR_MS2_XCORR_COELUTION = "var_ms2_xcorr_coelution";
482 static constexpr const char* VAR_MS2_XCORR_COELUTION_WEIGHTED = "var_ms2_xcorr_coelution_weighted";
483 static constexpr const char* VAR_MS2_XCORR_SHAPE = "var_ms2_xcorr_shape";
484 static constexpr const char* VAR_MS2_XCORR_SHAPE_WEIGHTED = "var_ms2_xcorr_shape_weighted";
485 static constexpr const char* VAR_MS2_YSERIES_SCORE = "var_ms2_yseries_score";
486 static constexpr const char* VAR_MS2_ELUTION_MODEL_FIT_SCORE = "var_ms2_elution_model_fit_score";
487 static constexpr const char* VAR_MS2_IM_XCORR_SHAPE = "var_ms2_im_xcorr_shape";
488 static constexpr const char* VAR_MS2_IM_XCORR_COELUTION = "var_ms2_im_xcorr_coelution";
489 static constexpr const char* VAR_MS2_IM_DELTA_SCORE = "var_ms2_im_delta_score";
490 static constexpr const char* VAR_MS2_IM_LOG_INTENSITY = "var_ms2_im_log_intensity";
491
492 static std::shared_ptr<arrow::Schema> schema();
493 };
494
496 struct OPENMS_DLLAPI OSWFeatureTransitionSchema
497 {
498 static constexpr const char* FEATURE_ID = "feature_id";
499 static constexpr const char* RUN_ID = "run_id";
500 static constexpr const char* TRANSITION_ID = "transition_id";
501 static constexpr const char* AREA_INTENSITY = "area_intensity";
502 static constexpr const char* TOTAL_AREA_INTENSITY = "total_area_intensity";
503 static constexpr const char* APEX_INTENSITY = "apex_intensity";
504 static constexpr const char* APEX_RT = "apex_rt";
505 static constexpr const char* RT_FWHM = "rt_fwhm";
506 static constexpr const char* MASSERROR_PPM = "masserror_ppm";
507 static constexpr const char* TOTAL_MI = "total_mi";
508 static constexpr const char* VAR_INTENSITY_SCORE = "var_intensity_score";
509 static constexpr const char* VAR_INTENSITY_RATIO_SCORE = "var_intensity_ratio_score";
510 static constexpr const char* VAR_LOG_INTENSITY = "var_log_intensity";
511 static constexpr const char* VAR_XCORR_COELUTION = "var_xcorr_coelution";
512 static constexpr const char* VAR_XCORR_SHAPE = "var_xcorr_shape";
513 static constexpr const char* VAR_LOG_SN_SCORE = "var_log_sn_score";
514 static constexpr const char* VAR_MASSDEV_SCORE = "var_massdev_score";
515 static constexpr const char* VAR_MI_SCORE = "var_mi_score";
516 static constexpr const char* VAR_MI_RATIO_SCORE = "var_mi_ratio_score";
517 static constexpr const char* VAR_ISOTOPE_CORRELATION_SCORE = "var_isotope_correlation_score";
518 static constexpr const char* VAR_ISOTOPE_OVERLAP_SCORE = "var_isotope_overlap_score";
519 static constexpr const char* EXP_IM = "exp_im";
520 static constexpr const char* EXP_IM_LEFTWIDTH = "exp_im_leftwidth";
521 static constexpr const char* EXP_IM_RIGHTWIDTH = "exp_im_rightwidth";
522 static constexpr const char* DELTA_IM = "delta_im";
523 static constexpr const char* VAR_IM_DELTA_SCORE = "var_im_delta_score";
524 static constexpr const char* VAR_IM_LOG_INTENSITY = "var_im_log_intensity";
525 static constexpr const char* VAR_IM_XCORR_COELUTION_CONTRAST = "var_im_xcorr_coelution_contrast";
526 static constexpr const char* VAR_IM_XCORR_SHAPE_CONTRAST = "var_im_xcorr_shape_contrast";
527 static constexpr const char* VAR_IM_XCORR_COELUTION_COMBINED = "var_im_xcorr_coelution_combined";
528 static constexpr const char* VAR_IM_XCORR_SHAPE_COMBINED = "var_im_xcorr_shape_combined";
529 static constexpr const char* START_POSITION_AT_5 = "start_position_at_5";
530 static constexpr const char* END_POSITION_AT_5 = "end_position_at_5";
531 static constexpr const char* START_POSITION_AT_10 = "start_position_at_10";
532 static constexpr const char* END_POSITION_AT_10 = "end_position_at_10";
533 static constexpr const char* START_POSITION_AT_50 = "start_position_at_50";
534 static constexpr const char* END_POSITION_AT_50 = "end_position_at_50";
535 static constexpr const char* TOTAL_WIDTH = "total_width";
536 static constexpr const char* TAILING_FACTOR = "tailing_factor";
537 static constexpr const char* ASYMMETRY_FACTOR = "asymmetry_factor";
538 static constexpr const char* SLOPE_OF_BASELINE = "slope_of_baseline";
539 static constexpr const char* BASELINE_DELTA_2_HEIGHT = "baseline_delta_2_height";
540 static constexpr const char* POINTS_ACROSS_BASELINE = "points_across_baseline";
541 static constexpr const char* POINTS_ACROSS_HALF_HEIGHT = "points_across_half_height";
542
543 static std::shared_ptr<arrow::Schema> schema();
544 };
545
547 struct OPENMS_DLLAPI XICSchema
548 {
549 static constexpr const char* RUN_ID = "RUN_ID";
550 static constexpr const char* SOURCE_FILE = "SOURCE_FILE";
551 static constexpr const char* MS_LEVEL = "MS_LEVEL";
552 static constexpr const char* PRECURSOR_ID = "PRECURSOR_ID";
553 static constexpr const char* TRANSITION_ID = "TRANSITION_ID";
554 static constexpr const char* MODIFIED_SEQUENCE = "MODIFIED_SEQUENCE";
555 static constexpr const char* PRECURSOR_CHARGE = "PRECURSOR_CHARGE";
556 static constexpr const char* PRODUCT_CHARGE = "PRODUCT_CHARGE";
557 static constexpr const char* DETECTING_TRANSITION = "DETECTING_TRANSITION";
558 static constexpr const char* PRECURSOR_DECOY = "PRECURSOR_DECOY";
559 static constexpr const char* PRODUCT_DECOY = "PRODUCT_DECOY";
560 static constexpr const char* TRANSITION_ORDINAL = "TRANSITION_ORDINAL";
561 static constexpr const char* TRANSITION_TYPE = "TRANSITION_TYPE";
562 static constexpr const char* ANNOTATION = "ANNOTATION";
563 static constexpr const char* RT_DATA = "RT_DATA";
564 static constexpr const char* INTENSITY_DATA = "INTENSITY_DATA";
565 static constexpr const char* RT_COMPRESSION = "RT_COMPRESSION";
566 static constexpr const char* INTENSITY_COMPRESSION = "INTENSITY_COMPRESSION";
567
568 static std::shared_ptr<arrow::Schema> schema();
569 };
570
572 struct OPENMS_DLLAPI XIMSchema
573 {
574 static constexpr const char* RUN_ID = "RUN_ID";
575 static constexpr const char* SOURCE_FILE = "SOURCE_FILE";
576 static constexpr const char* MS_LEVEL = "MS_LEVEL";
577 static constexpr const char* MOBILOGRAM_TYPE = "MOBILOGRAM_TYPE";
578 static constexpr const char* PRECURSOR_ID = "PRECURSOR_ID";
579 static constexpr const char* TRANSITION_ID = "TRANSITION_ID";
580 static constexpr const char* FEATURE_ID = "FEATURE_ID";
581 static constexpr const char* FEATURE_RT = "FEATURE_RT";
582 static constexpr const char* MODIFIED_SEQUENCE = "MODIFIED_SEQUENCE";
583 static constexpr const char* PRECURSOR_CHARGE = "PRECURSOR_CHARGE";
584 static constexpr const char* PRODUCT_CHARGE = "PRODUCT_CHARGE";
585 static constexpr const char* DETECTING_TRANSITION = "DETECTING_TRANSITION";
586 static constexpr const char* PRECURSOR_DECOY = "PRECURSOR_DECOY";
587 static constexpr const char* PRODUCT_DECOY = "PRODUCT_DECOY";
588 static constexpr const char* TRANSITION_ORDINAL = "TRANSITION_ORDINAL";
589 static constexpr const char* TRANSITION_TYPE = "TRANSITION_TYPE";
590 static constexpr const char* ANNOTATION = "ANNOTATION";
591 static constexpr const char* MOBILITY_DATA = "MOBILITY_DATA";
592 static constexpr const char* INTENSITY_DATA = "INTENSITY_DATA";
593 static constexpr const char* MOBILITY_COMPRESSION = "MOBILITY_COMPRESSION";
594 static constexpr const char* INTENSITY_COMPRESSION = "INTENSITY_COMPRESSION";
595
596 static std::shared_ptr<arrow::Schema> schema();
597 };
598
599} // namespace OpenMS
ValidationResult validate(const std::shared_ptr< arrow::Table > &table, const std::shared_ptr< arrow::Schema > &expected_schema, Mode mode=Mode::Strict)
Validate an Arrow table's schema against an expected schema.
Mode
Validation strictness: Strict requires exact match, Subset allows missing and extra columns.
Definition ArrowSchemaRegistry.h:32
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
@ RT
RT in seconds.
Definition ArrowSchemaRegistry.h:18
Result of schema validation containing validity flag and error messages.
Definition ArrowSchemaRegistry.h:39
std::vector< std::string > errors
Definition ArrowSchemaRegistry.h:41
Schema for chromatograms in long (one row per data point) format.
Definition ArrowSchemaRegistry.h:341
static std::shared_ptr< arrow::Schema > schema()
Schema for chromatograms in semi-wide (one row per chromatogram, list columns) format.
Definition ArrowSchemaRegistry.h:354
static std::shared_ptr< arrow::Schema > schema()
Schema for consensus feature table (ConsensusMap features)
Definition ArrowSchemaRegistry.h:151
static std::shared_ptr< arrow::Schema > schema()
static std::shared_ptr< arrow::DataType > handlesType()
static std::shared_ptr< arrow::DataType > metavaluesType()
Schema for LC-MS feature table (FeatureMap features)
Definition ArrowSchemaRegistry.h:125
static std::shared_ptr< arrow::Schema > schema()
static std::shared_ptr< arrow::DataType > metavaluesType()
static std::shared_ptr< arrow::DataType > convexHullType()
Schema for OpenSWATH feature-level precursor intensity table.
Definition ArrowSchemaRegistry.h:404
static std::shared_ptr< arrow::Schema > schema()
Schema for OpenSWATH feature scoring results table.
Definition ArrowSchemaRegistry.h:425
static std::shared_ptr< arrow::Schema > schema()
Schema for OpenSWATH per-transition feature scoring results table.
Definition ArrowSchemaRegistry.h:497
static std::shared_ptr< arrow::Schema > schema()
Schema for OpenSWATH precursor (peptide query) table.
Definition ArrowSchemaRegistry.h:367
static std::shared_ptr< arrow::Schema > schema()
Schema for OpenSWATH run metadata table.
Definition ArrowSchemaRegistry.h:416
static std::shared_ptr< arrow::Schema > schema()
Schema for OpenSWATH transition (fragment ion) table.
Definition ArrowSchemaRegistry.h:384
static std::shared_ptr< arrow::Schema > schema()
Schema for peptide-spectrum match (PSM) results table.
Definition ArrowSchemaRegistry.h:169
static std::shared_ptr< arrow::Schema > schema()
static std::shared_ptr< arrow::DataType > additionalScoresType()
static std::shared_ptr< arrow::DataType > modificationsType()
static std::shared_ptr< arrow::DataType > metavaluesType()
Schema for protein group (indistinguishable group) results table.
Definition ArrowSchemaRegistry.h:73
static std::shared_ptr< arrow::Schema > schema()
static std::shared_ptr< arrow::DataType > floatDataType()
static std::shared_ptr< arrow::DataType > stringDataType()
static std::shared_ptr< arrow::DataType > integerDataType()
Schema for protein identification results table.
Definition ArrowSchemaRegistry.h:54
static std::shared_ptr< arrow::Schema > schema()
static std::shared_ptr< arrow::DataType > modificationsType()
static std::shared_ptr< arrow::DataType > metavaluesType()
Schema for QPX feature view (quantms Parquet eXchange format)
Definition ArrowSchemaRegistry.h:250
static std::shared_ptr< arrow::Schema > schema()
Complete Arrow schema for QPX feature table (31 fields)
static std::shared_ptr< arrow::DataType > pgAccessionsType()
Arrow type for protein group accessions: list<struct{accession, start, end, pre, post}>
static std::shared_ptr< arrow::DataType > additionalScoresType()
Arrow type for additional scores (delegates to QPXPSMSchema::additionalScoresType)
static std::shared_ptr< arrow::DataType > additionalIntensitiesType()
Arrow type for additional intensities: list<struct{label, intensities: list<struct{....
static std::shared_ptr< arrow::DataType > intensitiesType()
Arrow type for intensities: list<struct{label, intensity}>
static std::shared_ptr< arrow::DataType > modificationsType()
Arrow type for modifications (delegates to QPXPSMSchema::modificationsType)
static std::shared_ptr< arrow::DataType > cvParamsType()
Arrow type for CV params (delegates to QPXPSMSchema::cvParamsType)
static std::shared_ptr< arrow::DataType > pgPositionsType()
Arrow type for protein group positions: list<struct{protein_accession, start, end}>
Schema for QPX PSM export (quantms Parquet eXchange format, PSM table)
Definition ArrowSchemaRegistry.h:207
static std::shared_ptr< arrow::Schema > schema()
Complete Arrow schema for QPX PSM table (24 fields)
static std::shared_ptr< arrow::DataType > crossLinksType()
Arrow type for cross-links: list<struct{xl_type, partner_sequence, ...}>
static std::shared_ptr< arrow::DataType > additionalScoresType()
Arrow type for additional scores: list<struct{score_name, score_value, higher_better}>
static std::shared_ptr< arrow::DataType > modificationsType()
Arrow type for modifications: list<struct{name, accession, positions: list<struct{position,...
static std::shared_ptr< arrow::DataType > cvParamsType()
Arrow type for CV params: list<struct{cv_name, cv_value}>
Schema for search engine parameters and settings table.
Definition ArrowSchemaRegistry.h:91
static std::shared_ptr< arrow::Schema > schema()
static std::shared_ptr< arrow::DataType > metavaluesType()
Schema for spectra in long (one row per peak) format.
Definition ArrowSchemaRegistry.h:303
static std::shared_ptr< arrow::Schema > schema()
Schema for spectra in semi-wide (one row per spectrum, list columns for peaks) format.
Definition ArrowSchemaRegistry.h:322
static std::shared_ptr< arrow::Schema > schema()
Schema for extracted ion chromatogram (XIC) data table.
Definition ArrowSchemaRegistry.h:548
static std::shared_ptr< arrow::Schema > schema()
Schema for extracted ion mobilogram (XIM) data table.
Definition ArrowSchemaRegistry.h:573
static std::shared_ptr< arrow::Schema > schema()