-
Notifications
You must be signed in to change notification settings - Fork 2
OpenSwath
This page is intended to document how OpenSwath works on a technical level
OpenSwathWorkflow is an executable that is most commonly used to run OpenSwath: https://abibuilder.cs.uni-tuebingen.de/archive/openms/Documentation/nightly/html/UTILS_OpenSwathWorkflow.html
It performs
- iRT / drift time alignment using OpenSwathCalibrationWorkflow and the SwathMapMassCorrection algorithm
- peak group extraction and scoring using OpenSwathWorkflow, see below
- SwathMap Data structure to hold one SWATH map with information about upper / lower isolation window and whether the map is MS1 or MS2.
- IMSDataConsumer: Data structure to store output chromatograms to (will be written on the fly). Can be mzML, sqMass (SQLite) or cached MS data.
- MRMTransitionGroup: Group of transitions in a target proteomics experiment. Stores the transitions and their corresponding chromatogram.
- TargetedExperiment: An abstraction of a TraML file to hold proteins, peptides and transitions, relatively heavy in memory. Used to store an assay library.
- LightTargetedExperiment A light-weight version of TargetedExperiment used throughout OpenSwath (it uses less memory than TargetedExperiment).
- Feature: A 2D singal from a single analyte. Properties contained here include m/z, intensity, RT. Contains convex hull representing the feature. Intensity is proportional to total ion count.
- MRMFeature: Container for storing a peak group. Made up of a features (fragment features and precursor feature) and scores for the peak group.
Scores are stored in OpenSwath__Scores
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.
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_())
- Extract current batch of transitions from current SWATH window:
done in OpenSwathHelper::selectSwathTransitions() but with special functions for PASEF and PRM
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 picking (peak group border selection and quantification) is done with MRMTransitionGroupPicker
Segmentation happens by first doing peak picking on individual chromatograms (smoothing + peak picking) and then integrating these peaks across all chromatograms. This is done in createMRMFeature()
The PeakIntegrator performs quantification, background subtraction etc. after peak boundaries are found
After peak boundary detection, a peak is scored with scorePeakgroups() which uses
-
OpenSwathScoring
- Scoring
- MRMScoring
- DIAScoring for DIA / SWATH type of scoring
- SONARScoring
- IonMobilityScoring
Please contribute to the documentation effort on this page and on this branch.