OpenMS
MRMIonSeries Class Reference

Generate theoretical fragment ion series for use in MRMAssay and MRMDecoy. More...

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

Public Types

typedef std::unordered_map< String, double > IonSeries
 An MRM ion series which maps: "ion_type" -> "fragment m/z". More...
 

Public Member Functions

 MRMIonSeries ()
 Constructor. More...
 
 ~MRMIonSeries ()
 Destructor. More...
 
std::pair< String, double > getIon (IonSeries &ionseries, const String &ionid)
 Selects ion from IonSeries according to annotation string. More...
 
std::pair< String, double > annotateIon (const IonSeries &ionseries, const double ProductMZ, const double mz_threshold)
 Selects ion from IonSeries according to product m/z. More...
 
void annotateTransitionCV (ReactionMonitoringTransition &tr, const String &annotation)
 Annotates transition with CV terms. More...
 
void annotateTransition (ReactionMonitoringTransition &tr, const TargetedExperiment::Peptide &peptide, const double precursor_mz_threshold, const double product_mz_threshold, const bool enable_reannotation, const std::vector< String > &fragment_types, const std::vector< size_t > &fragment_charges, const bool enable_specific_losses, const bool enable_unspecific_losses, const int round_decPow=-4)
 Annotates transition. More...
 
IonSeries getIonSeries (const AASequence &sequence, size_t precursor_charge, const std::vector< String > &fragment_types, const std::vector< size_t > &fragment_charges, const bool enable_specific_losses, const bool enable_unspecific_losses, const int round_decPow=-4)
 Computed theoretical fragment ion series. More...
 

Private Member Functions

TargetedExperiment::Interpretation annotationToCVTermList_ (const String &annotation)
 
void annotationToCV_ (ReactionMonitoringTransition &tr)
 

Detailed Description

Generate theoretical fragment ion series for use in MRMAssay and MRMDecoy.

Will generate theoretical fragment ionseries based on AASequence and parameters. Neutral losses are supported according to a model similar to the one in SpectraST. ReactionMonitoringTransition objects can be annotated with the corresponding CV terms.

MRMIonSeries uses internally an annotation format that is compatible with SpectraST, which is derived from Roepstoff and Fohlman (1984, PMID: 6525415). An annotation tag starts with ion type (a, b, c, x, y, z) followed by the ordinal (number of amino acids). The caret symbol follows "^" with a positive integer indicating the fragment ion charge. If no caret symbol is present, a charge of 1 is assumed. In case of neutral loss, a negative symbol "-" followed by the integer mass (e.g. 17 for ammonia) OR the molecular composition, compatible with EmpiricalFormula (e.g. N1H3 for ammonia) is allowed.

Valid examples: y3, y3^1, y3^1-18, y3^1-H2O, y3-H2O

Limitations: Special SpectraST multi-assignments, immonium, precursors are not supported.

Member Typedef Documentation

◆ IonSeries

typedef std::unordered_map<String, double> IonSeries

An MRM ion series which maps: "ion_type" -> "fragment m/z".

Constructor & Destructor Documentation

◆ MRMIonSeries()

Constructor.

◆ ~MRMIonSeries()

Destructor.

Member Function Documentation

◆ annotateIon()

std::pair<String, double> annotateIon ( const IonSeries ionseries,
const double  ProductMZ,
const double  mz_threshold 
)

Selects ion from IonSeries according to product m/z.

Parameters
ionseriesthe IonSeries from which to choose
ProductMzthe product m/z of the queried fragment ion
mz_thresholdthe m/z threshold for annotation of the fragment ion @value std::pair<String, double> the annotation and product m/z of the queried fragment ion

◆ annotateTransition()

void annotateTransition ( ReactionMonitoringTransition tr,
const TargetedExperiment::Peptide peptide,
const double  precursor_mz_threshold,
const double  product_mz_threshold,
const bool  enable_reannotation,
const std::vector< String > &  fragment_types,
const std::vector< size_t > &  fragment_charges,
const bool  enable_specific_losses,
const bool  enable_unspecific_losses,
const int  round_decPow = -4 
)

Annotates transition.

Parameters
trthe transition to annotate
peptidethe corresponding peptide
precursor_mz_thresholdthe m/z threshold for annotation of the precursor ion
product_mz_thresholdthe m/z threshold for annotation of the fragment ion
enable_reannotationwhether the original (e.g. SpectraST) annotation should be used or reannotation should be conducted
fragment_typesthe fragment ion types for reannotation
fragment_chargesthe fragment ion charges for reannotation
enable_specific_losseswhether specific neutral losses should be considered
enable_unspecific_losseswhether unspecific neutral losses (H2O1, H3N1, C1H2N2, C1H2N1O1) should be considered
round_decPowround precursor and product m/z values to decimal power (default: -4)

◆ annotateTransitionCV()

void annotateTransitionCV ( ReactionMonitoringTransition tr,
const String annotation 
)

Annotates transition with CV terms.

Parameters
trthe transition to annotate
annotationthe fragment ion annotation.

◆ annotationToCV_()

void annotationToCV_ ( ReactionMonitoringTransition tr)
private

◆ annotationToCVTermList_()

TargetedExperiment::Interpretation annotationToCVTermList_ ( const String annotation)
private

◆ getIon()

std::pair<String, double> getIon ( IonSeries ionseries,
const String ionid 
)

Selects ion from IonSeries according to annotation string.

Parameters
ionseriesthe IonSeries from which to choose
ionidthe annotation string of the query fragment ion @value std::pair<String, double> the annotation and product m/z of the queried fragment ion

◆ getIonSeries()

IonSeries getIonSeries ( const AASequence sequence,
size_t  precursor_charge,
const std::vector< String > &  fragment_types,
const std::vector< size_t > &  fragment_charges,
const bool  enable_specific_losses,
const bool  enable_unspecific_losses,
const int  round_decPow = -4 
)

Computed theoretical fragment ion series.

Parameters
sequencethe peptide amino acid sequence
precursor_chargethe charge of the peptide precursor
fragment_typesthe fragment ion types for reannotation
fragment_chargesthe fragment ion charges for reannotation
enable_specific_losseswhether specific neutral losses should be considered
enable_unspecific_losseswhether unspecific neutral losses (H2O1, H3N1, C1H2N2, C1H2N1O1) should be considered
round_decPowround product m/z values to decimal power (default: -4) @value IonSeries the theoretical fragment ion series