OpenMS
Loading...
Searching...
No Matches
MetaboTargetedAssay.h
Go to the documentation of this file.
1// Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2// SPDX-License-Identifier: BSD-3-Clause
3//
4// --------------------------------------------------------------------------
5// $Maintainer: Oliver Alka $
6// $Authors: Oliver Alka $
7// --------------------------------------------------------------------------
8
9#pragma once
10
12#include <map> //insert
13
16#include <OpenMS/ANALYSIS/ID/SiriusMSConverter.h> //SiriusMSFile
17#include <OpenMS/FORMAT/DATAACCESS/SiriusFragmentAnnotation.h> //SiriusTargetDecoySpectra
18
19
20namespace OpenMS
21{
26 class OPENMS_DLLAPI MetaboTargetedAssay
27 {
28 public:
34 double precursor_mz;
35 double compound_rt;
36 std::string molecular_formula;
38 std::string compound_name;
39 std::string compound_adduct;
41 std::vector<ReactionMonitoringTransition> potential_rmts;
42
58
63 {
64 public:
67
70 compound_info(std::move(info)),
71 spectrum(std::move(spectrum))
72 {}
73 };
74
80 {
81 int target_index = -1;
82 int decoy_index = -1;
83 double target_mz = 0.0;
84 double target_rt = 0.0;
85 double decoy_mz = 0.0;
86 double decoy_rt = 0.0;
87 int target_file_number = 0;
88 int decoy_file_number = 0;
89 };
90
108 static std::vector<MetaboTargetedAssay> extractMetaboTargetedAssay(const MSExperiment& spectra,
109 const FeatureMapping::FeatureToMs2Indices& feature_ms2_index,
110 const double& precursor_rt_tol,
111 const double& precursor_mz_distance,
112 const double& cosine_sim_threshold,
113 const double& transition_threshold,
114 const double& min_fragment_mz,
115 const double& max_fragment_mz,
116 const bool& method_consensus_spectrum,
117 const bool& exclude_ms2_precursor,
118 const unsigned int& file_counter);
119
132 static std::vector<MetaboTargetedAssay> extractMetaboTargetedAssayFragmentAnnotation(const std::vector< CompoundTargetDecoyPair >& v_cmp_spec,
133 const double& transition_threshold,
134 const double& min_fragment_mz,
135 const double& max_fragment_mz,
136 const bool& use_exact_mass,
137 const bool& exclude_ms2_precursor);
138
148 static std::vector< MetaboTargetedAssay::CompoundTargetDecoyPair > pairCompoundWithAnnotatedTDSpectraPairs(const std::vector<SiriusMSFile::CompoundInfo>& v_cmpinfo,
149 const std::vector<SiriusFragmentAnnotation::SiriusTargetDecoySpectra>& annotated_spectra);
161 static std::unordered_map< UInt64, std::vector<MetaboTargetedAssay> > buildAmbiguityGroup(const std::vector<MetaboTargetedAssay>& v_mta,
162 const double& ar_mz_tol,
163 const double& ar_rt_tol,
164 const std::string& ar_mz_tol_unit_res, size_t in_files_size);
165
173 static void resolveAmbiguityGroup(std::unordered_map< UInt64, std::vector<MetaboTargetedAssay> >& map_mta_filter,
174 const double& total_occurrence_filter,
175 size_t in_files_size);
176
177 protected:
178
180 static constexpr float noise_threshold_constant_ = 1.1;
181
185 static bool intensityLess_(const Peak1D& a, const Peak1D& b);
186
190 static int getChargeFromAdduct_(const std::string& adduct);
191
199 static void filterBasedOnTotalOccurrence_(std::vector<MetaboTargetedAssay>& mta, double total_occurrence_filter, size_t in_files_size);
200
206 static void filterBasedOnMolFormAdductOccurrence_(std::vector<MetaboTargetedAssay>& mta);
207
211 static void sortByPrecursorInt(std::vector<MetaboTargetedAssay>& vec_mta);
212 };
213
214} // namespace OpenMS
Output bundle: per-feature MS2 spectrum indices + the list of unassigned MS2 spectra.
Definition FeatureMapping.h:67
In-Memory representation of a mass spectrometry run.
Definition MSExperiment.h:49
The representation of a 1D spectrum.
Definition MSSpectrum.h:44
CompoundTargetDecoyPair stores a pair of CompoundInfo and MSSpectrum.
Definition MetaboTargetedAssay.h:63
CompoundSpectrumPair(SiriusMSFile::CompoundInfo info, MSSpectrum spectrum)
Definition MetaboTargetedAssay.h:69
SiriusMSFile::CompoundInfo compound_info
Definition MetaboTargetedAssay.h:65
MSSpectrum spectrum
Definition MetaboTargetedAssay.h:66
CompoundTargetDecoyPair stores a pair of CompoundInfo and MSSpectrum (target, decoy)
Definition MetaboTargetedAssay.h:47
SiriusMSFile::CompoundInfo compound_info
Definition MetaboTargetedAssay.h:49
CompoundTargetDecoyPair(SiriusMSFile::CompoundInfo info, SiriusFragmentAnnotation::SiriusTargetDecoySpectra td_spectra)
Definition MetaboTargetedAssay.h:53
SiriusFragmentAnnotation::SiriusTargetDecoySpectra target_decoy_spectra
Definition MetaboTargetedAssay.h:50
This class provides methods for the extraction of targeted assays for metabolomics.
Definition MetaboTargetedAssay.h:27
static void filterBasedOnTotalOccurrence_(std::vector< MetaboTargetedAssay > &mta, double total_occurrence_filter, size_t in_files_size)
Filter one ambiguity group based on occurrence in samples (e.g. at least in 20% of the samples)
std::string compound_adduct
compound adduct
Definition MetaboTargetedAssay.h:39
TargetedExperiment::Compound potential_cmp
compound information stored in a TargetedExperiment
Definition MetaboTargetedAssay.h:40
static bool intensityLess_(const Peak1D &a, const Peak1D &b)
Compare two peaks based on their intensity.
double transition_quality_score
transitions quality score (not yet used)
Definition MetaboTargetedAssay.h:33
static std::vector< MetaboTargetedAssay > extractMetaboTargetedAssayFragmentAnnotation(const std::vector< CompoundTargetDecoyPair > &v_cmp_spec, const double &transition_threshold, const double &min_fragment_mz, const double &max_fragment_mz, const bool &use_exact_mass, const bool &exclude_ms2_precursor)
Extract a vector of MetaboTargetedAssays using fragment annotation.
std::vector< ReactionMonitoringTransition > potential_rmts
vector of transitions belonging to the compound
Definition MetaboTargetedAssay.h:41
static std::vector< MetaboTargetedAssay::CompoundTargetDecoyPair > pairCompoundWithAnnotatedTDSpectraPairs(const std::vector< SiriusMSFile::CompoundInfo > &v_cmpinfo, const std::vector< SiriusFragmentAnnotation::SiriusTargetDecoySpectra > &annotated_spectra)
Pair compound information (SiriusMSFile) with the annotated target and decoy spectrum from SIRIUS/Pas...
int compound_file
integer of file it belongs to in a list of files
Definition MetaboTargetedAssay.h:37
static int getChargeFromAdduct_(const std::string &adduct)
Gets charge from a singly charged adduct ([M+H]+/[M-H]-)
static std::vector< MetaboTargetedAssay > extractMetaboTargetedAssay(const MSExperiment &spectra, const FeatureMapping::FeatureToMs2Indices &feature_ms2_index, const double &precursor_rt_tol, const double &precursor_mz_distance, const double &cosine_sim_threshold, const double &transition_threshold, const double &min_fragment_mz, const double &max_fragment_mz, const bool &method_consensus_spectrum, const bool &exclude_ms2_precursor, const unsigned int &file_counter)
Extract a vector of MetaboTargetedAssays without using fragment annotation.
std::string compound_name
compound name
Definition MetaboTargetedAssay.h:38
double precursor_int
MetaboTargetedAssay is able to store a precursor, metadata as well as compound information.
Definition MetaboTargetedAssay.h:32
static std::unordered_map< UInt64, std::vector< MetaboTargetedAssay > > buildAmbiguityGroup(const std::vector< MetaboTargetedAssay > &v_mta, const double &ar_mz_tol, const double &ar_rt_tol, const std::string &ar_mz_tol_unit_res, size_t in_files_size)
Perform feature linking to build ambiguity groups based on the target and decoy position in the vecto...
static void filterBasedOnMolFormAdductOccurrence_(std::vector< MetaboTargetedAssay > &mta)
Filter one ambiguity group with multiple possible identifications to use the one with the highest occ...
std::string molecular_formula
< (putative) molecular formula
Definition MetaboTargetedAssay.h:36
double compound_rt
compound retention time
Definition MetaboTargetedAssay.h:35
static void sortByPrecursorInt(std::vector< MetaboTargetedAssay > &vec_mta)
Sort vector of MetaboTargetedAssay by precursor ion intensity.
double precursor_mz
precursor mass-to-charge
Definition MetaboTargetedAssay.h:34
static void resolveAmbiguityGroup(std::unordered_map< UInt64, std::vector< MetaboTargetedAssay > > &map_mta_filter, const double &total_occurrence_filter, size_t in_files_size)
Resolve ambiguity groups based on occurrence in samples (e.g. at least in 20% of the samples) and if ...
TargetDecoyGroup stores the mz, rt and file number in correspondence to the index of a MetaboTargeted...
Definition MetaboTargetedAssay.h:80
A 1-dimensional raw data point or peak.
Definition Peak1D.h:30
SiriusTargetDecoySpectra holds the target and/or decoy information for one entry (subdirectory from S...
Definition SiriusFragmentAnnotation.h:24
Per-compound metadata accumulated while writing the .ms file.
Definition SiriusMSConverter.h:75
Represents a compound (small molecule)
Definition TargetedExperimentHelper.h:298
uint64_t UInt64
Unsigned integer type (64bit)
Definition Types.h:47
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
STL namespace.