OpenMS
Loading...
Searching...
No Matches
OPXLDataStructs Class Reference

Namespace-style container holding the data types shared across the OpenPepXL cross-linking pipeline. More...

#include <OpenMS/ANALYSIS/XLMS/OPXLDataStructs.h>

Classes

struct  AASeqWithMass
 The AASeqWithMass struct represents a normal peptide with its precomputed mass. More...
 
struct  AASeqWithMassComparator
 The AASeqWithMassComparator is a comparator for AASeqWithMass objects. More...
 
struct  CLSMScoreComparator
 Comparator to sort CrossLinkSpectrumMatches by the main score. More...
 
struct  CrossLinkSpectrumMatch
 The CrossLinkSpectrumMatch struct represents a PSM between a ProteinProteinCrossLink and a spectrum in OpenPepXL. More...
 
struct  PreprocessedPairSpectra
 The PreprocessedPairSpectra struct represents the result of comparing a light and a heavy labeled spectra to each other. More...
 
struct  ProteinProteinCrossLink
 The ProteinProteinCrossLink struct represents a cross-link between two peptides in OpenPepXL. More...
 
struct  XLPrecursor
 The XLPrecursor struct represents a cross-link candidate in the process of filtering candidates by precursor masses in OpenPepXL. More...
 
struct  XLPrecursorComparator
 The XLPrecursorComparator is a comparator for XLPrecursors, that allows direct comparison of the XLPrecursor precursor mass with double numbers. More...
 

Public Types

enum  ProteinProteinCrossLinkType { CROSS = 0 , MONO = 1 , LOOP = 2 , NUMBER_OF_CROSS_LINK_TYPES }
 Kind of cross-linking reaction product. More...
 
enum  PeptidePosition { INTERNAL = 0 , C_TERM = 1 , N_TERM = 2 }
 Where the peptide came from in its parent protein after in-silico digestion. More...
 

Detailed Description

Namespace-style container holding the data types shared across the OpenPepXL cross-linking pipeline.

OpenPepXL identifies cross-linked peptide pairs from MS/MS spectra. The pipeline needs a small set of plain-data types to carry information between stages: candidate generation, precursor-mass filtering, spectrum matching, scoring, and result aggregation. This class collects those types as nested structs/enums so that callers can refer to them via OPXLDataStructs::CrossLinkSpectrumMatch etc., keeping the global namespace clean.

Type overview:


Class Documentation

◆ OpenMS::OPXLDataStructs::AASeqWithMass

struct OpenMS::OPXLDataStructs::AASeqWithMass

The AASeqWithMass struct represents a normal peptide with its precomputed mass.

This struct stores information about a peptide as an AASequence and a PeptidePosition. It is used to enumerate pairs of peptides in OpenPepXL. Since the mass of every peptide is used many times, it is precomputed once and also stored in this struct. A vector of these structs is used to represent the digested protein database in OpenPepXL. An instance of this struct is created only once for each peptide in the digested database, so it does not contribute to memory usage as much as XLPrecursor does.

Collaboration diagram for OPXLDataStructs::AASeqWithMass:
[legend]
Class Members
double peptide_mass = 0 Pre-computed monoisotopic mass of peptide_seq (Da); used as the sort/search key during pair enumeration.
AASequence peptide_seq The peptide itself, including any modifications carried over from the digest.
PeptidePosition position = PeptidePosition::INTERNAL Where the peptide sits in its parent protein (gates protein-terminal modifications)
string unmodified_seq Plain-string view of the peptide without modifications (cached for fast comparison / lookup)

◆ OpenMS::OPXLDataStructs::CrossLinkSpectrumMatch

struct OpenMS::OPXLDataStructs::CrossLinkSpectrumMatch

The CrossLinkSpectrumMatch struct represents a PSM between a ProteinProteinCrossLink and a spectrum in OpenPepXL.

This struct contains a ProteinProteinCrossLink and indices to one or two spectra. It also contains the results of a match between the ProteinProteinCrossLink and these spectra as scores and peak annotations. Used as a temporary container to collect results efficiently, since only a few top matches will be kept for each experimental spectrum for output.

Collaboration diagram for OPXLDataStructs::CrossLinkSpectrumMatch:
[legend]
Class Members
ProteinProteinCrossLink cross_link structure of the cross-link
vector< PeakAnnotation > frag_annotations
double int_sum = 0
double intsum_alpha = 0
double intsum_beta = 0
double log_occupancy = 0
double log_occupancy_alpha = 0
double log_occupancy_beta = 0
double match_odds = 0
double match_odds_alpha = 0
double match_odds_beta = 0
Size matched_linear_alpha = 0
Size matched_linear_beta = 0
Size matched_xlink_alpha = 0
Size matched_xlink_beta = 0
double num_iso_peaks_mean = 0
double num_iso_peaks_mean_linear_alpha = 0
double num_iso_peaks_mean_linear_beta = 0
double num_iso_peaks_mean_xlinks_alpha = 0
double num_iso_peaks_mean_xlinks_beta = 0
Size peptide_id_index = 0
double percTIC = 0
double ppm_error_abs_sum = 0
double ppm_error_abs_sum_alpha = 0
double ppm_error_abs_sum_beta = 0
double ppm_error_abs_sum_linear = 0
double ppm_error_abs_sum_linear_alpha = 0
double ppm_error_abs_sum_linear_beta = 0
double ppm_error_abs_sum_xlinks = 0
double ppm_error_abs_sum_xlinks_alpha = 0
double ppm_error_abs_sum_xlinks_beta = 0
double pre_score = 0
int precursor_correction = 0
double precursor_error_ppm = 0
Size precursor_residual_peak_count = 0
double precursor_signal_proportion = 0
double precursor_target_intensity = 0
Size precursor_target_peak_count = 0
double precursor_total_intensity = 0
Size rank = 0 rank among the matches to the same spectrum
Size scan_index_heavy = 0
Size scan_index_light = 0 reference to pair of spectra
double score = 0 final score
double total_current = 0
double wTIC = 0
double wTICold = 0
double xcorrc_max = 0
double xcorrx_max = 0
double xquest_score = 0 counts, scores and other data for xQuest-like output

◆ OpenMS::OPXLDataStructs::XLPrecursor

struct OpenMS::OPXLDataStructs::XLPrecursor

The XLPrecursor struct represents a cross-link candidate in the process of filtering candidates by precursor masses in OpenPepXL.

Since the precursor mass does not change depending on the exact linked residues, one XLPrecursor can represent several ProteinProteinCrossLinks in the process of filtering by precursor mass. The precursor mass is the sum of the masses of the two peptides and the cross-linker. This struct also contains the indices of the two peptides in a vector, so that the two peptides can be identified again. This precursor mass is enumerated for all peptide pairs in the protein database given as input to OpenPepXL and is one of the major contributors to the memory usage of the tool because of the squared complexity of this enumeration. Therefore this should be kept as compact as possible.

Collaboration diagram for OPXLDataStructs::XLPrecursor:
[legend]
Class Members
unsigned int alpha_index = 0 Index of the alpha peptide in the digested-protein-DB vector (the "longer" peptide by convention)
string alpha_seq Sequence string of the alpha peptide (cached to avoid re-lookup during scoring)
unsigned int beta_index = 0 Index of the beta peptide in the digested-protein-DB vector (empty/unused for mono- or loop-links)
string beta_seq Sequence string of the beta peptide (empty for mono- or loop-links)
float precursor_mass {} Mass of (alpha + beta + cross-linker), in Da; the key used to filter candidates against an experimental precursor.

Member Enumeration Documentation

◆ PeptidePosition

Where the peptide came from in its parent protein after in-silico digestion.

Used to gate whether protein-terminal modifications can apply to a peptide: only peptides that contain the protein's N- or C-terminus can carry the corresponding protein-terminal modification.

Enumerator
INTERNAL 

Peptide is internal to its parent protein (neither end is a protein terminus)

C_TERM 

Peptide ends at the parent protein's C-terminus (can carry protein-C-term modifications)

N_TERM 

Peptide starts at the parent protein's N-terminus (can carry protein-N-term modifications)

◆ ProteinProteinCrossLinkType

Kind of cross-linking reaction product.

A cross-link reagent can react in three observable ways at the MS2 level: the canonical inter-peptide cross-link, a mono-link (reagent quenched on one side and attached to only one residue), or a loop-link (reagent bridging two residues within the same peptide). ProteinProteinCrossLink::getType derives this value from the link layout.

Enumerator
CROSS 

Inter-peptide cross-link (alpha and beta non-empty)

MONO 

Mono-link (reagent attached to one peptide only; beta empty, cross_link_position.second == -1)

LOOP 

Loop-link (reagent bridges two residues within the same peptide; beta empty, both positions valid)

NUMBER_OF_CROSS_LINK_TYPES 

Sentinel; total number of cross-link types (use to size arrays)