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
20
21namespace OpenMS
22{
43
60 class OPENMS_DLLAPI CalibrationWorkflow :
62 public ProgressLogger
63 {
64 public:
67 {
68 // Transformation
73
74 // Estimated Extraction Windows
76 double ms2_mz_window_ppm{-1.0};
78 double ms2_im_window{-1.0};
80 double ms1_mz_window_ppm{-1.0};
82 double ms1_im_window{-1.0};
84 double estimated_rt_window{-1.0};
85 };
86
89 {
95 IrtStrategy strategy{IrtStrategy::STATIC_FILES};
97 bool is_prepared{false};
98 };
99
102
105
123 const OpenSwath::LightTargetedExperiment& full_transition_exp,
124 size_t num_runs = 1
125 ) const;
126
148 IrtStrategy strategy,
149 const OpenSwath::LightTargetedExperiment& full_transition_exp,
150 const std::vector<std::string>& priority_peptides,
151 size_t run_index = 0,
152 const IrtExperiments* cached_irts = nullptr
153 );
154
185 std::vector<OpenSwath::SwathMap>& swath_maps,
188 ChromExtractParams& cp_ms1,
189 const IrtExperiments& irt_experiments,
190 const Param& feature_finder_param,
191 const ChromExtractParams& cp_irt,
192 const Param& irt_detection_param,
193 const Param& calibration_param,
194 const Param& mrm_mapping_param,
195 bool pasef = false,
196 bool load_into_memory = false,
197 const std::string& irt_trafo_out = "",
198 const std::string& irt_mzml_out = "",
199 Size debug_level = 0
200 );
201
215 const std::string& irt_file_path,
216 const std::string& label) const;
217
245 const OpenSwath::LightTargetedExperiment& irt_transitions,
246 std::vector< OpenSwath::SwathMap > & swath_maps,
248 double min_rsq,
249 double min_coverage,
250 const Param& feature_finder_param,
251 const ChromExtractParams& cp_irt,
252 const Param& irt_detection_param,
253 const Param& calibration_param,
254 const Param& mrm_mapping_param,
255 const std::string& irt_mzml_out,
256 Size debug_level,
257 bool pasef = false,
258 bool load_into_memory = false);
259
293 const OpenSwath::LightTargetedExperiment& targeted_exp,
294 const std::vector< OpenMS::MSChromatogram >& chromatograms,
296 std::vector< OpenSwath::SwathMap > & swath_maps,
297 double min_rsq,
298 double min_coverage,
299 const Param& default_ffparam,
300 const Param& irt_detection_param,
301 const Param& calibration_param,
302 const bool pasef);
303
312 double getEstimatedMzWindow() const { return estimated_mz_window_; }
313
322 double getEstimatedImWindow() const { return estimated_im_window_; }
323
332 double getEstimatedMs1MzWindow() const { return estimated_ms1_mz_window_; }
333
342 double getEstimatedMs1ImWindow() const { return estimated_ms1_im_window_; }
343
344 private:
346
347
353 void updateMembers_() override;
355
356 // Estimated windows stored during calibration (internal caching)
357 double estimated_mz_window_{-1.0};
358 double estimated_im_window_{-1.0};
359 double estimated_ms1_mz_window_{-1.0};
360 double estimated_ms1_im_window_{-1.0};
361
363
364
365 // iRT File Parameters
366 std::string linear_irt_file_;
368 // Run-specific iRT file lists (positional mapping: nth entry -> nth run)
369 std::vector<std::string> linear_irt_files_list_;
370 std::vector<std::string> nonlinear_irt_files_list_;
371
372 // Auto-iRT Sampling Parameters
381
382 // Linear Calibration Parameters
384
385 // Nonlinear Calibration Parameters
387
388 // Window Estimation Parameters
396
397 // Quality Control Parameters
398 double min_rsq_;
400
402
404
405
425 std::vector<OpenSwath::SwathMap>& swath_maps,
426 const IrtExperiments& irt_experiments,
427 const Param& feature_finder_param,
428 const ChromExtractParams& cp_irt,
429 const Param& irt_detection_param,
430 const Param& calibration_param,
431 const Param& mrm_mapping_param,
432 bool pasef,
433 bool load_into_memory,
434 const std::string& irt_trafo_out,
435 const std::string& irt_mzml_out,
436 Size debug_level);
437
460 std::vector<OpenSwath::SwathMap>& swath_maps,
461 const IrtExperiments& irt_experiments,
462 const Param& feature_finder_param,
463 const ChromExtractParams& cp_irt,
464 const Param& irt_detection_param,
465 const Param& calibration_param,
466 const Param& mrm_mapping_param,
467 bool pasef,
468 bool load_into_memory,
469 const std::string& irt_trafo_out,
470 const std::string& irt_mzml_out,
471 Size debug_level);
472
486 const CalibrationResult& result,
488 ChromExtractParams& cp_ms1,
489 bool pasef,
490 bool use_ms1_im) const;
491
515 const char* label,
516 double estimate,
517 double& dst_param,
518 double user_value,
519 bool applicable = true,
520 bool commit = true) const;
521
533 inline bool isValidWindow_(double v, double min_positive = 1e-9) const noexcept;
535 };
536
537} // namespace OpenMS
Orchestrates calibration workflows for OpenSWATH analysis.
Definition CalibrationWorkflow.h:63
double min_coverage_
Definition CalibrationWorkflow.h:399
~CalibrationWorkflow() override
Destructor.
std::string linear_outlier_detection_
Definition CalibrationWorkflow.h:383
double auto_irt_nonlinear_top_fraction_
Definition CalibrationWorkflow.h:380
TransformationDescription im_trafo
Ion mobility transformation (fitted). May be empty if no IM calibration performed.
Definition CalibrationWorkflow.h:72
IrtExperiments prepareIrtExperiments(IrtStrategy strategy, const OpenSwath::LightTargetedExperiment &full_transition_exp, const std::vector< std::string > &priority_peptides, size_t run_index=0, const IrtExperiments *cached_irts=nullptr)
Prepare iRT experiments based on the determined strategy.
double getEstimatedImWindow() const
Get estimated MS2 ion mobility extraction window.
Definition CalibrationWorkflow.h:322
double rt_estimation_padding_factor_
Definition CalibrationWorkflow.h:393
double getEstimatedMzWindow() const
Get estimated MS2 m/z extraction window.
Definition CalibrationWorkflow.h:312
bool windows_estimate_im_
Definition CalibrationWorkflow.h:391
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:398
OpenSwath::LightTargetedExperiment loadIrtExperimentFromFile_(const std::string &irt_file_path, const std::string &label) const
Load iRT transition experiment from file.
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 std::string &irt_trafo_out, const std::string &irt_mzml_out, Size debug_level)
Perform linear + nonlinear calibration workflow.
std::string nonlinear_outlier_detection_
Definition CalibrationWorkflow.h:386
CalibrationWorkflow()
Default constructor.
bool windows_estimate_rt_
Definition CalibrationWorkflow.h:389
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:377
double min_rt_window_
Definition CalibrationWorkflow.h:394
double getEstimatedMs1MzWindow() const
Get estimated MS1 m/z extraction window.
Definition CalibrationWorkflow.h:332
IrtStrategy determineIrtStrategy(const OpenSwath::LightTargetedExperiment &full_transition_exp, size_t num_runs=1) const
Determine the appropriate IRT strategy based on available data.
int auto_irt_irt_bins_
Definition CalibrationWorkflow.h:374
void updateMembers_() override
Update member variables from parameters.
OpenSwath::LightTargetedExperiment linear_irt
Linear iRT experiment (always required for calibration)
Definition CalibrationWorkflow.h:91
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 std::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.
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:375
std::vector< std::string > linear_irt_files_list_
Definition CalibrationWorkflow.h:369
std::string linear_irt_file_
Definition CalibrationWorkflow.h:366
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 std::string &irt_trafo_out="", const std::string &irt_mzml_out="", Size debug_level=0)
Perform calibration workflow with pre-prepared iRT experiments.
int auto_irt_irt_seed_
Definition CalibrationWorkflow.h:376
double windows_rt_percentile_
Definition CalibrationWorkflow.h:392
double auto_irt_linear_top_fraction_
Definition CalibrationWorkflow.h:379
bool windows_estimate_mz_
Definition CalibrationWorkflow.h:390
TransformationDescription rt_trafo
RT normalization transformation (fitted)
Definition CalibrationWorkflow.h:70
OpenSwath::LightTargetedExperiment nonlinear_irt
Nonlinear iRT experiment (optional, empty if not used)
Definition CalibrationWorkflow.h:93
bool auto_irt_enabled_
Definition CalibrationWorkflow.h:373
std::string nonlinear_irt_file_
Definition CalibrationWorkflow.h:367
int auto_irt_irt_peptides_per_bin_nonlinear_
Definition CalibrationWorkflow.h:378
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.
double getEstimatedMs1ImWindow() const
Get estimated MS1 ion mobility extraction window.
Definition CalibrationWorkflow.h:342
double max_rt_window_
Definition CalibrationWorkflow.h:395
std::vector< std::string > nonlinear_irt_files_list_
Definition CalibrationWorkflow.h:370
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 std::string &irt_trafo_out, const std::string &irt_mzml_out, Size debug_level)
Perform linear-only calibration workflow.
Results from calibration workflow.
Definition CalibrationWorkflow.h:67
Prepared iRT experiments ready for calibration.
Definition CalibrationWorkflow.h:89
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
Generic description of a coordinate transformation.
Definition TransformationDescription.h:38
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:36
ChromatogramExtractor parameters.
Definition OpenSwathWorkflow.h:54
Definition TransitionExperiment.h:369