Skip to content
Joshua Charkow edited this page Mar 7, 2022 · 28 revisions

This page is intended to document how OpenSwath works on a technical level

Executable

OpenSwathWorkflow is an executable that is most commonly used to run OpenSwath: https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/nightly/html/UTILS_OpenSwathWorkflow.html

It performs

OpenSwathCalibrationWorkflow Algorithm

This uses a set of designated peptides (formerly called "iRT peptides") to calibrate the library data against the current DIA run with drift time, RT and m/z. The idea is to establish a mapping between the library values of these coordinates and the recorded values in the current run and compute a transformation function to map between the two. While OpenSwathCalibrationWorkflow prepares the data and performs a crude peak picking of the most likely peak position, the calibration is done with the SwathMapMassCorrection algorithm.

OpenSwathWorkflow Algorithm

The actual work of scoring is performed using the OpenSwathWorkflow Algorithm after the library is calibrated to the DIA run.

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

  • Obtain precursor ion chromatograms (if enabled) through MS1Extraction_()
  • Perform scoring of precursor ion chromatograms if no MS2 is given
  • Iterate through each SWATH-MS window:
    • Select which transitions to extract (proceed in batches) using OpenSwathHelper::selectSwathTransitions()
    • Iterate through each batch of transitions:
      • Extract current batch of transitions from current SWATH window:
        • Select transitions for current batch (see selectCompoundsForBatch_())
        • Prepare transition extraction (see prepareExtractionCoordinates_())
        • Extract transitions using ChromatogramExtractor::extractChromatograms()
        • Convert data to OpenMS format using ChromatogramExtractor::return_chromatogram()
      • Score extracted transitions (see scoreAllChromatograms_())
      • Write scored chromatograms and peak groups to disk (see writeOutFeaturesAndChroms_())

Transition selection

done in OpenSwathHelper::selectSwathTransitions() but with special functions for PASEF and PRM

Chromatogram extraction

See ChromatogramExtractor, uses a set of coordinates to extract either MS1 or MS2 chromatograms around a m/z coordinate within a window. For ion mobility, also considers an ion mobility window, the chromatograms are therefore for an ion mobility slice.

Peak group identification

Quantification

Peak group scoring