OpenMS
Loading...
Searching...
No Matches
CalibrationWorkflow.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
21
22namespace OpenMS
23{
44
61 class OPENMS_DLLAPI CalibrationWorkflow :
63 public ProgressLogger
64 {
65 public:
68 {
69 // Transformation
74
75 // Estimated Extraction Windows
77 double ms2_mz_window_ppm{-1.0};
79 double ms2_im_window{-1.0};
81 double ms1_mz_window_ppm{-1.0};
83 double ms1_im_window{-1.0};
85 double estimated_rt_window{-1.0};
86 };
87
90 {
96 IrtStrategy strategy{IrtStrategy::STATIC_FILES};
98 bool is_prepared{false};
99 };
100
103
106
124 const OpenSwath::LightTargetedExperiment& full_transition_exp,
125 size_t num_runs = 1
126 ) const;
127
149 IrtStrategy strategy,
150 const OpenSwath::LightTargetedExperiment& full_transition_exp,
151 const std::vector<String>& priority_peptides,
152 size_t run_index = 0,
153 const IrtExperiments* cached_irts = nullptr
154 );
155
186 std::vector<OpenSwath::SwathMap>& swath_maps,
189 ChromExtractParams& cp_ms1,
190 const IrtExperiments& irt_experiments,
191 const Param& feature_finder_param,
192 const ChromExtractParams& cp_irt,
193 const Param& irt_detection_param,
194 const Param& calibration_param,
195 const Param& mrm_mapping_param,
196 bool pasef = false,
197 bool load_into_memory = false,
198 const String& irt_trafo_out = "",
199 const String& irt_mzml_out = "",
200 Size debug_level = 0
201 );
202
216 const String& irt_file_path,
217 const String& label) const;
218
246 const OpenSwath::LightTargetedExperiment& irt_transitions,
247 std::vector< OpenSwath::SwathMap > & swath_maps,
249 double min_rsq,
250 double min_coverage,
251 const Param& feature_finder_param,
252 const ChromExtractParams& cp_irt,
253 const Param& irt_detection_param,
254 const Param& calibration_param,
255 const Param& mrm_mapping_param,
256 const String& irt_mzml_out,
257 Size debug_level,
258 bool pasef = false,
259 bool load_into_memory = false);
260
294 const OpenSwath::LightTargetedExperiment& targeted_exp,
295 const std::vector< OpenMS::MSChromatogram >& chromatograms,
297 std::vector< OpenSwath::SwathMap > & swath_maps,
298 double min_rsq,
299 double min_coverage,
300 const Param& default_ffparam,
301 const Param& irt_detection_param,
302 const Param& calibration_param,
303 const bool pasef);
304
313 double getEstimatedMzWindow() const { return estimated_mz_window_; }
314
323 double getEstimatedImWindow() const { return estimated_im_window_; }
324
333 double getEstimatedMs1MzWindow() const { return estimated_ms1_mz_window_; }
334
343 double getEstimatedMs1ImWindow() const { return estimated_ms1_im_window_; }
344
345 private:
347
348
354 void updateMembers_() override;
356
357 // Estimated windows stored during calibration (internal caching)
358 double estimated_mz_window_{-1.0};
359 double estimated_im_window_{-1.0};
360 double estimated_ms1_mz_window_{-1.0};
361 double estimated_ms1_im_window_{-1.0};
362
364
365
366 // iRT File Parameters
369 // Run-specific iRT file lists (positional mapping: nth entry -> nth run)
370 std::vector<String> linear_irt_files_list_;
371 std::vector<String> nonlinear_irt_files_list_;
372
373 // Auto-iRT Sampling Parameters
382
383 // Linear Calibration Parameters
385
386 // Nonlinear Calibration Parameters
388
389 // Window Estimation Parameters
395
396 // Quality Control Parameters
397 double min_rsq_;
399
401
403
404
424 std::vector<OpenSwath::SwathMap>& swath_maps,
425 const IrtExperiments& irt_experiments,
426 const Param& feature_finder_param,
427 const ChromExtractParams& cp_irt,
428 const Param& irt_detection_param,
429 const Param& calibration_param,
430 const Param& mrm_mapping_param,
431 bool pasef,
432 bool load_into_memory,
433 const String& irt_trafo_out,
434 const String& irt_mzml_out,
435 Size debug_level);
436
459 std::vector<OpenSwath::SwathMap>& swath_maps,
460 const IrtExperiments& irt_experiments,
461 const Param& feature_finder_param,
462 const ChromExtractParams& cp_irt,
463 const Param& irt_detection_param,
464 const Param& calibration_param,
465 const Param& mrm_mapping_param,
466 bool pasef,
467 bool load_into_memory,
468 const String& irt_trafo_out,
469 const String& irt_mzml_out,
470 Size debug_level);
471
485 const CalibrationResult& result,
487 ChromExtractParams& cp_ms1,
488 bool pasef,
489 bool use_ms1_im) const;
490
514 const char* label,
515 double estimate,
516 double& dst_param,
517 double user_value,
518 bool applicable = true,
519 bool commit = true) const;
520
532 inline bool isValidWindow_(double v, double min_positive = 1e-9) const noexcept;
534 };
535
536} // namespace OpenMS
Orchestrates calibration workflows for OpenSWATH analysis.
Definition CalibrationWorkflow.h:64
double min_coverage_
Definition CalibrationWorkflow.h:398
~CalibrationWorkflow() override
Destructor
double auto_irt_nonlinear_top_fraction_
Definition CalibrationWorkflow.h:381
std::vector< String > linear_irt_files_list_
Definition CalibrationWorkflow.h:370
TransformationDescription im_trafo
Ion mobility transformation (fitted). May be empty if no IM calibration performed.
Definition CalibrationWorkflow.h:73
String linear_irt_file_
Definition CalibrationWorkflow.h:367
String linear_outlier_detection_
Definition CalibrationWorkflow.h:384
double getEstimatedImWindow() const
Get estimated MS2 ion mobility extraction window.
Definition CalibrationWorkflow.h:323
String nonlinear_irt_file_
Definition CalibrationWorkflow.h:368
double rt_estimation_padding_factor_
Definition CalibrationWorkflow.h:394
double getEstimatedMzWindow() const
Get estimated MS2 m/z extraction window.
Definition CalibrationWorkflow.h:313
bool windows_estimate_im_
Definition CalibrationWorkflow.h:392
bool isValidWindow_(double v, double min_positive=1e-9) const noexcept
Check if an estimated extraction window value is valid.
double min_rsq_
Definition CalibrationWorkflow.h:397
CalibrationResult performLinearThenNonlinearCalibration_(std::vector< OpenSwath::SwathMap > &swath_maps, const IrtExperiments &irt_experiments, const Param &feature_finder_param, const ChromExtractParams &cp_irt, const Param &irt_detection_param, const Param &calibration_param, const Param &mrm_mapping_param, bool pasef, bool load_into_memory, const String &irt_trafo_out, const String &irt_mzml_out, Size debug_level)
Perform linear + nonlinear calibration workflow.
CalibrationWorkflow()
Default constructor.
bool windows_estimate_rt_
Definition CalibrationWorkflow.h:390
void applyEstimatedWindows_(const CalibrationResult &result, ChromExtractParams &cp, ChromExtractParams &cp_ms1, bool pasef, bool use_ms1_im) const
Apply estimated extraction windows to parameters.
int auto_irt_irt_bins_nonlinear_
Definition CalibrationWorkflow.h:378
double getEstimatedMs1MzWindow() const
Get estimated MS1 m/z extraction window.
Definition CalibrationWorkflow.h:333
IrtStrategy determineIrtStrategy(const OpenSwath::LightTargetedExperiment &full_transition_exp, size_t num_runs=1) const
Determine the appropriate IRT strategy based on available data.
String nonlinear_outlier_detection_
Definition CalibrationWorkflow.h:387
CalibrationResult performLinearCalibration_(std::vector< OpenSwath::SwathMap > &swath_maps, const IrtExperiments &irt_experiments, const Param &feature_finder_param, const ChromExtractParams &cp_irt, const Param &irt_detection_param, const Param &calibration_param, const Param &mrm_mapping_param, bool pasef, bool load_into_memory, const String &irt_trafo_out, const String &irt_mzml_out, Size debug_level)
Perform linear-only calibration workflow.
int auto_irt_irt_bins_
Definition CalibrationWorkflow.h:375
void updateMembers_() override
Update member variables from parameters.
OpenSwath::LightTargetedExperiment linear_irt
Linear iRT experiment (always required for calibration)
Definition CalibrationWorkflow.h:92
TransformationDescription doDataNormalization_(const OpenSwath::LightTargetedExperiment &targeted_exp, const std::vector< OpenMS::MSChromatogram > &chromatograms, TransformationDescription &im_trafo, std::vector< OpenSwath::SwathMap > &swath_maps, double min_rsq, double min_coverage, const Param &default_ffparam, const Param &irt_detection_param, const Param &calibration_param, const bool pasef)
Perform retention time and m/z calibration.
int auto_irt_irt_peptides_per_bin_
Definition CalibrationWorkflow.h:376
int auto_irt_irt_seed_
Definition CalibrationWorkflow.h:377
double windows_rt_percentile_
Definition CalibrationWorkflow.h:393
double auto_irt_linear_top_fraction_
Definition CalibrationWorkflow.h:380
bool windows_estimate_mz_
Definition CalibrationWorkflow.h:391
CalibrationResult performCalibration(std::vector< OpenSwath::SwathMap > &swath_maps, OpenSwath::LightTargetedExperiment &transition_exp, ChromExtractParams &cp, ChromExtractParams &cp_ms1, const IrtExperiments &irt_experiments, const Param &feature_finder_param, const ChromExtractParams &cp_irt, const Param &irt_detection_param, const Param &calibration_param, const Param &mrm_mapping_param, bool pasef=false, bool load_into_memory=false, const String &irt_trafo_out="", const String &irt_mzml_out="", Size debug_level=0)
Perform calibration workflow with pre-prepared iRT experiments.
OpenSwath::LightTargetedExperiment loadIrtExperimentFromFile_(const String &irt_file_path, const String &label) const
Load iRT transition experiment from file.
TransformationDescription rt_trafo
RT normalization transformation (fitted)
Definition CalibrationWorkflow.h:71
OpenSwath::LightTargetedExperiment nonlinear_irt
Nonlinear iRT experiment (optional, empty if not used)
Definition CalibrationWorkflow.h:94
bool auto_irt_enabled_
Definition CalibrationWorkflow.h:374
IrtExperiments prepareIrtExperiments(IrtStrategy strategy, const OpenSwath::LightTargetedExperiment &full_transition_exp, const std::vector< String > &priority_peptides, size_t run_index=0, const IrtExperiments *cached_irts=nullptr)
Prepare iRT experiments based on the determined strategy.
int auto_irt_irt_peptides_per_bin_nonlinear_
Definition CalibrationWorkflow.h:379
void applyWindow_(const char *label, double estimate, double &dst_param, double user_value, bool applicable=true, bool commit=true) const
Validate and log an auto-estimated extraction window.
TransformationDescription performRTNormalization(const OpenSwath::LightTargetedExperiment &irt_transitions, std::vector< OpenSwath::SwathMap > &swath_maps, TransformationDescription &im_trafo, double min_rsq, double min_coverage, const Param &feature_finder_param, const ChromExtractParams &cp_irt, const Param &irt_detection_param, const Param &calibration_param, const Param &mrm_mapping_param, const String &irt_mzml_out, Size debug_level, bool pasef=false, bool load_into_memory=false)
Perform RT and m/z correction of the input data using RT-normalization peptides.
double getEstimatedMs1ImWindow() const
Get estimated MS1 ion mobility extraction window.
Definition CalibrationWorkflow.h:343
std::vector< String > nonlinear_irt_files_list_
Definition CalibrationWorkflow.h:371
Results from calibration workflow.
Definition CalibrationWorkflow.h:68
Prepared iRT experiments ready for calibration.
Definition CalibrationWorkflow.h:90
A base class for all classes handling default parameters.
Definition DefaultParamHandler.h:66
Management and storage of parameters / INI files.
Definition Param.h:46
Base class for all classes that want to report their progress.
Definition ProgressLogger.h:27
A more convenient string class.
Definition String.h:34
Generic description of a coordinate transformation.
Definition TransformationDescription.h:37
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
IrtStrategy
Strategy for obtaining iRT (indexed Retention Time) calibrant peptides across multiple runs.
Definition CalibrationWorkflow.h:37
ChromatogramExtractor parameters.
Definition OpenSwathWorkflow.h:54
Definition TransitionExperiment.h:356