OpenMS
OpenSwathCalibrationWorkflow Class Reference

Execute all steps for retention time and m/z calibration of SWATH-MS data. More...

#include <OpenMS/ANALYSIS/OPENSWATH/OpenSwathWorkflow.h>

Inheritance diagram for OpenSwathCalibrationWorkflow:
[legend]
Collaboration diagram for OpenSwathCalibrationWorkflow:
[legend]

Public Member Functions

 OpenSwathCalibrationWorkflow ()
 
 OpenSwathCalibrationWorkflow (bool use_ms1_traces)
 
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 String &irt_mzml_out, Size debug_level, bool sonar=false, bool pasef=false, bool load_into_memory=false)
 Perform RT and m/z correction of the input data using RT-normalization peptides. More...
 
TransformationDescription doDataNormalization_ (const OpenSwath::LightTargetedExperiment &transition_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. More...
 
void simpleExtractChromatograms_ (const std::vector< OpenSwath::SwathMap > &swath_maps, const OpenSwath::LightTargetedExperiment &irt_transitions, std::vector< OpenMS::MSChromatogram > &chromatograms, const TransformationDescription &trafo, const ChromExtractParams &cp, bool sonar, bool pasef, bool load_into_memory)
 Simple method to extract chromatograms (for the RT-normalization peptides) More...
 
- Public Member Functions inherited from ProgressLogger
 ProgressLogger ()
 Constructor. More...
 
virtual ~ProgressLogger ()
 Destructor. More...
 
 ProgressLogger (const ProgressLogger &other)
 Copy constructor. More...
 
ProgressLoggeroperator= (const ProgressLogger &other)
 Assignment Operator. More...
 
void setLogType (LogType type) const
 Sets the progress log that should be used. The default type is NONE! More...
 
LogType getLogType () const
 Returns the type of progress log being used. More...
 
void setLogger (ProgressLoggerImpl *logger)
 Sets the logger to be used for progress logging. More...
 
void startProgress (SignedSize begin, SignedSize end, const String &label) const
 Initializes the progress display. More...
 
void setProgress (SignedSize value) const
 Sets the current progress. More...
 
void endProgress (UInt64 bytes_processed=0) const
 
void nextProgress () const
 increment progress by 1 (according to range begin-end) More...
 

Static Public Member Functions

static void addChromatograms (MSChromatogram &base_chrom, const MSChromatogram &newchrom)
 Add two chromatograms. More...
 

Additional Inherited Members

- Public Types inherited from ProgressLogger
enum  LogType { CMD , GUI , NONE }
 Possible log types. More...
 
- Protected Member Functions inherited from OpenSwathWorkflowBase
 OpenSwathWorkflowBase ()
 Default constructor. More...
 
 OpenSwathWorkflowBase (bool use_ms1_traces, bool use_ms1_ion_mobility, bool prm, bool pasef, int threads_outer_loop)
 Constructor. More...
 
void MS1Extraction_ (const OpenSwath::SpectrumAccessPtr &ms1_map, const std::vector< OpenSwath::SwathMap > &swath_maps, std::vector< MSChromatogram > &ms1_chromatograms, const ChromExtractParams &cp, const OpenSwath::LightTargetedExperiment &transition_exp, const TransformationDescription &trafo_inverse, bool ms1_only=false, int ms1_isotopes=0)
 Perform MS1 extraction and store result in ms1_chromatograms. More...
 
void prepareExtractionCoordinates_ (std::vector< OpenSwath::ChromatogramPtr > &chrom_list, std::vector< ChromatogramExtractorAlgorithm::ExtractionCoordinates > &coordinates, const OpenSwath::LightTargetedExperiment &transition_exp_used, const TransformationDescription &trafo_inverse, const ChromExtractParams &cp, const bool ms1=false, const int ms1_isotopes=-1) const
 Function to prepare extraction coordinates that also correctly handles RT transformations. More...
 
- Protected Attributes inherited from OpenSwathWorkflowBase
OpenSwath::SpectrumAccessPtr ms1_map_ = nullptr
 Spectrum Access to the MS1 map (note that this is not threadsafe!) More...
 
bool use_ms1_traces_
 Whether to use the MS1 traces. More...
 
bool use_ms1_ion_mobility_
 Whether to use ion mobility extraction on MS1 traces. More...
 
bool prm_
 Whether data is acquired in targeted DIA (e.g. PRM mode) with potentially overlapping windows. More...
 
bool pasef_
 Whether data is diaPASEF data. More...
 
int threads_outer_loop_
 How many threads should be used for the outer loop. More...
 
- Protected Attributes inherited from ProgressLogger
LogType type_
 
time_t last_invoke_
 
ProgressLoggerImplcurrent_logger_
 
- Static Protected Attributes inherited from ProgressLogger
static int recursion_depth_
 

Detailed Description

Execute all steps for retention time and m/z calibration of SWATH-MS data.

Uses a set of robust calibrant peptides (e.g. iRT peptides, common calibrants) perform RT and m/z correction in SWATH-MS data. Currently supports (non-)linear correction of RT against library RT as well as (non-)linear correction of m/z error as a function of m/z.

Note
The relevant algorithms are implemented in MRMRTNormalizer for RT calibration and SwathMapMassCorrection for m/z calibration.

The overall execution flow in this class is as follows (see performRTNormalization() function):

Constructor & Destructor Documentation

◆ OpenSwathCalibrationWorkflow() [1/2]

◆ OpenSwathCalibrationWorkflow() [2/2]

OpenSwathCalibrationWorkflow ( bool  use_ms1_traces)
inlineexplicit

Member Function Documentation

◆ addChromatograms()

static void addChromatograms ( MSChromatogram base_chrom,
const MSChromatogram newchrom 
)
static

Add two chromatograms.

Parameters
base_chromThe base chromatogram to which we will add intensity
newchromThe chromatogram to be added

◆ doDataNormalization_()

TransformationDescription doDataNormalization_ ( const OpenSwath::LightTargetedExperiment transition_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.

Uses MRMRTNormalizer for RT calibration and SwathMapMassCorrection for m/z calibration.

The overall execution flow is as follows:

  • Estimate the retention time range of the iRT peptides over all assays (see OpenSwathHelper::estimateRTRange())
  • Store the peptide retention times in an intermediate map
  • Pick input chromatograms to identify RT pairs from the input data using MRMFeatureFinderScoring, which will be used without the RT scoring enabled
  • Find most likely correct feature for each compound (see OpenSwathHelper::simpleFindBestFeature())
  • Perform the outlier detection (see MRMRTNormalizer)
  • Check whether the found peptides fulfill the binned coverage criteria set by the user.
  • Select the "correct" peaks for m/z correction (e.g. remove those not part of the linear regression)
  • Perform m/z and IM calibration (see SwathMapMassCorrection)
  • Store transformation, using the selected model
Parameters
transition_exp_The transitions for the normalization peptides
chromatogramsThe extracted chromatograms
[out]im_trafoIon mobility trafo values on the RT-normalization peptides
swath_mapsThe raw data (swath maps)
min_rsqMinimal R^2 value that is expected for the RT regression
min_coverageMinimal coverage of the chromatographic space that needs to be achieved
default_ffparamParameter set for the feature finding in chromatographic dimension
irt_detection_paramParameter set for the detection of the iRTs (outlier detection, peptides per bin etc)
calibration_paramParameter for the m/z and im calibration (see SwathMapMassCorrection)
pasefwhether this data is pasef data with potentially overlapping m/z windows (differing by IM)
Note
This function is based on the algorithm inside the OpenSwathRTNormalizer tool

◆ performRTNormalization()

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 String irt_mzml_out,
Size  debug_level,
bool  sonar = false,
bool  pasef = false,
bool  load_into_memory = false 
)

Perform RT and m/z correction of the input data using RT-normalization peptides.

This function extracts the RT normalization chromatograms using simpleExtractChromatograms_() and then uses the chromatograms to find features (in doDataNormalization_()). If desired, also m/z correction is performed using the lock masses of the given peptides. The provided raw data (swath_maps) are therefore not constant but may be changed in this function.

Parameters
irt_transitionsA set of transitions used for the RT normalization peptides
swath_mapsThe raw data (swath maps)
[out]im_trafoIon mobility trafo values on the RT-normalization peptides
min_rsqMinimal R^2 value that is expected for the RT regression
min_coverageMinimal coverage of the chromatographic space that needs to be achieved
feature_finder_paramParameter set for the feature finding in chromatographic dimension
cp_irtParameter set for the chromatogram extraction
irt_detection_paramParameter set for the detection of the iRTs (outlier detection, peptides per bin etc)
calibration_paramParameter for the m/z and im calibration (see SwathMapMassCorrection)
debug_levelDebug level (writes out the RT normalization chromatograms if larger than 1)
irt_mzml_outOutput Chromatogram mzML containing the iRT peptides (if not empty, iRT chromatograms will be stored in this file)
sonarWhether the data is SONAR data
pasefwhether the data is PASEF data (should match transitions by their IM)
load_into_memoryWhether to cache the current SWATH map in memory

Referenced by TOPPOpenSwathBase::performCalibration().

◆ simpleExtractChromatograms_()

void simpleExtractChromatograms_ ( const std::vector< OpenSwath::SwathMap > &  swath_maps,
const OpenSwath::LightTargetedExperiment irt_transitions,
std::vector< OpenMS::MSChromatogram > &  chromatograms,
const TransformationDescription trafo,
const ChromExtractParams cp,
bool  sonar,
bool  pasef,
bool  load_into_memory 
)

Simple method to extract chromatograms (for the RT-normalization peptides)

Parameters
swath_mapsThe raw data (swath maps)
irt_transitionsA set of transitions used for the RT normalization peptides
chromatogramsThe extracted chromatograms (output)
trafoTransformation description for RT normalization
cpParameter set for the chromatogram extraction
load_into_memoryWhether to cache the current SWATH map in memory
sonarWhether the data is SONAR data
pasefwhether the data is PASEF data with possible overlapping m/z windows (with different ion mobility)