Skip to content
Hannes Roest 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

Algorithm

The executable uses the OpenSwathWorkflow Algorithm to perform its job: here

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

Peak group scoring

Quantification