OpenMS
Loading...
Searching...
No Matches
MRMFeatureFinderScoring.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: Hannes Roest $
6// $Authors: Hannes Roest $
7// --------------------------------------------------------------------------
8
9#pragma once
10
11#define USE_SP_INTERFACE
12
13// Actual scoring
15
18
19// Kernel classes
28
30
31#include <unordered_map>
32
33#ifdef _OPENMP
34#include <omp.h>
35#endif
36
37namespace OpenMS
38{
39 // Forward declaration for optional mobilogram consumer
40 class MobilogramParquetConsumer;
41 class ProteaseDigestion;
42
43
66 class OPENMS_DLLAPI MRMFeatureFinderScoring :
68 public ProgressLogger
69 {
70
71public:
73
79 // a transition group holds the chromatographic data and peaks across
80 // multiple chromatograms from the same compound
82 typedef std::map<std::string, MRMTransitionGroupType> TransitionGroupMapType;
83
85
88
91
93
94
108 void pickExperiment(const PeakMap & chromatograms,
109 FeatureMap& output,
110 const TargetedExperiment& transition_exp,
111 const TransformationDescription& trafo,
112 const PeakMap& swath_map);
113
129 FeatureMap& output,
130 const OpenSwath::LightTargetedExperiment& transition_exp,
131 const TransformationDescription& trafo,
132 const std::vector<OpenSwath::SwathMap>& swath_maps,
133 TransitionGroupMapType& transition_group_map);
134
146
156
176 const TransformationDescription & trafo,
177 const std::vector<OpenSwath::SwathMap>& swath_maps,
178 FeatureMap& output,
179 bool ms1only = false,
180 MobilogramParquetConsumer* mobilogram_consumer = nullptr) const;
181
184 void setStrictFlag(bool f)
185 {
186 strict_ = f;
187 }
188
199 {
200 ms1_map_ = ms1_map;
201 }
202
219 const OpenSwath::LightTargetedExperiment& transition_exp,
220 TransitionGroupMapType& transition_group_map,
222 double rt_extraction_window);
223private:
224
229 {
230 std::vector<double> normalized_library_intensity;
231 std::vector<std::string> transition_native_ids;
232 std::vector<std::string> precursor_ids;
233 std::vector<std::string> transition_native_ids_openms;
234 std::vector<std::string> precursor_ids_openms;
235 };
236
241 {
243 void preallocate(Size capacity)
244 {
245 ind_transition_names.reserve(capacity);
246 ind_isotope_correlation.reserve(capacity);
247 ind_isotope_overlap.reserve(capacity);
248 ind_massdev_score.reserve(capacity);
249 ind_xcorr_coelution_score.reserve(capacity);
250 ind_xcorr_shape_score.reserve(capacity);
251 ind_log_sn_score.reserve(capacity);
252 ind_area_intensity.reserve(capacity);
253 ind_total_area_intensity.reserve(capacity);
254 ind_intensity_score.reserve(capacity);
255 ind_apex_intensity.reserve(capacity);
256 ind_apex_position.reserve(capacity);
257 ind_fwhm.reserve(capacity);
258 ind_total_mi.reserve(capacity);
259 ind_log_intensity.reserve(capacity);
260 ind_intensity_ratio.reserve(capacity);
261 ind_mi_ratio.reserve(capacity);
262 ind_mi_score.reserve(capacity);
263 ind_im_drift.reserve(capacity);
264 ind_im_drift_left.reserve(capacity);
265 ind_im_drift_right.reserve(capacity);
266 ind_im_delta.reserve(capacity);
267 ind_im_delta_score.reserve(capacity);
268 ind_im_log_intensity.reserve(capacity);
269 ind_im_contrast_coelution.reserve(capacity);
270 ind_im_contrast_shape.reserve(capacity);
271 ind_im_sum_contrast_coelution.reserve(capacity);
272 ind_im_sum_contrast_shape.reserve(capacity);
273 ind_start_position_at_5.reserve(capacity);
274 ind_end_position_at_5.reserve(capacity);
275 ind_start_position_at_10.reserve(capacity);
276 ind_end_position_at_10.reserve(capacity);
277 ind_start_position_at_50.reserve(capacity);
278 ind_end_position_at_50.reserve(capacity);
279 ind_total_width.reserve(capacity);
280 ind_tailing_factor.reserve(capacity);
281 ind_asymmetry_factor.reserve(capacity);
282 ind_slope_of_baseline.reserve(capacity);
283 ind_baseline_delta_2_height.reserve(capacity);
284 ind_points_across_baseline.reserve(capacity);
285 ind_points_across_half_height.reserve(capacity);
286 }
287
289 void reset()
290 {
291 ind_num_transitions = 0;
292 ind_transition_names.clear();
293 ind_isotope_correlation.clear();
294 ind_isotope_overlap.clear();
295 ind_massdev_score.clear();
296 ind_xcorr_coelution_score.clear();
297 ind_xcorr_shape_score.clear();
298 ind_log_sn_score.clear();
299 ind_area_intensity.clear();
300 ind_total_area_intensity.clear();
301 ind_intensity_score.clear();
302 ind_apex_intensity.clear();
303 ind_apex_position.clear();
304 ind_fwhm.clear();
305 ind_total_mi.clear();
306 ind_log_intensity.clear();
307 ind_intensity_ratio.clear();
308 ind_mi_ratio.clear();
309 ind_mi_score.clear();
310 ind_im_drift.clear();
311 ind_im_drift_left.clear();
312 ind_im_drift_right.clear();
313 ind_im_delta.clear();
314 ind_im_delta_score.clear();
315 ind_im_log_intensity.clear();
316 ind_im_contrast_coelution.clear();
317 ind_im_contrast_shape.clear();
318 ind_im_sum_contrast_coelution.clear();
319 ind_im_sum_contrast_shape.clear();
320 ind_start_position_at_5.clear();
321 ind_end_position_at_5.clear();
322 ind_start_position_at_10.clear();
323 ind_end_position_at_10.clear();
324 ind_start_position_at_50.clear();
325 ind_end_position_at_50.clear();
326 ind_total_width.clear();
327 ind_tailing_factor.clear();
328 ind_asymmetry_factor.clear();
329 ind_slope_of_baseline.clear();
330 ind_baseline_delta_2_height.clear();
331 ind_points_across_baseline.clear();
332 ind_points_across_half_height.clear();
333 }
334 };
335
344 MRMTransitionGroupType& transition_group_detection) const;
345
356 MRMTransitionGroupType& transition_group_identification,
357 MRMTransitionGroupType& transition_group_identification_decoy) const;
358
381 void scoreIdentification_(MRMTransitionGroupType& transition_group_identification,
382 MRMTransitionGroupType& transition_group_detection,
383 OpenSwathScoring& scorer,
384 const size_t feature_idx,
385 const Int64 feature_id,
386 const std::vector<std::string>& native_ids_detection,
387 const std::vector<OpenSwath::ISignalToNoisePtr>& signal_noise_estimators_identification,
388 const double det_intensity_ratio_score,
389 const double det_mi_ratio_score,
390 const std::vector<OpenSwath::SwathMap>& swath_maps,
391 const double drift_target,
392 RangeMobility& im_range,
393 OpenSwath_Ind_Scores_Pooled& idscores_out,
394 MobilogramParquetConsumer* mobilogram_consumer = nullptr) const;
395
397 const PeptideType& pep,
399 bool swath_present,
400 double precursor_mz,
401 bool ms1only) const;
402
404 const MRMTransitionGroupType& transition_group_detection,
405 const std::vector<OpenSwath::ISignalToNoisePtr>& signal_noise_estimators,
406 const std::vector<OpenSwath::ISignalToNoisePtr>& ms1_signal_noise_estimators,
407 double expected_rt,
408 bool swath_present,
409 bool ms1only) const;
410
411 void prepareFeatureOutput_(OpenMS::MRMFeature& mrmfeature, bool ms1only, int charge) const;
412
414 void updateMembers_() override;
415
416 // parameters
424 std::string scoring_model_;
425 std::string enzyme_;
426
427 // scoring parameters
436
438 unsigned int sn_bin_count_;
440
442
443 std::unordered_map<std::string, const PeptideType*> PeptideRefMap_;
447
448 // data
450
451 };
452}
453
454#undef run_identifier
Scoring of an spectrum at the peak apex of an chromatographic elution peak.
Definition DIAScoring.h:64
A base class for all classes handling default parameters.
Definition DefaultParamHandler.h:66
Scoring of an elution peak using an exponentially modified gaussian distribution model.
Definition EmgScoring.h:35
A container for features.
Definition FeatureMap.h:78
The MRMFeatureFinder finds and scores peaks of transitions that co-elute.
Definition MRMFeatureFinderScoring.h:69
MRMTransitionGroup< MSChromatogram, TransitionType > MRMTransitionGroupType
Definition MRMFeatureFinderScoring.h:81
std::string enzyme_
Definition MRMFeatureFinderScoring.h:425
double merge_spectra_by_peak_width_fraction_
Definition MRMFeatureFinderScoring.h:433
bool strict_
Definition MRMFeatureFinderScoring.h:421
std::vector< std::string > transition_native_ids_openms
Definition MRMFeatureFinderScoring.h:233
OpenSwath::LightProtein ProteinType
Definition MRMFeatureFinderScoring.h:77
std::unordered_map< std::string, const PeptideType * > PeptideRefMap_
Definition MRMFeatureFinderScoring.h:443
bool apply_im_peak_picking_
Definition MRMFeatureFinderScoring.h:423
std::vector< std::string > precursor_ids_openms
Definition MRMFeatureFinderScoring.h:234
void mapExperimentToTransitionList(const OpenSwath::SpectrumAccessPtr &input, const OpenSwath::LightTargetedExperiment &transition_exp, TransitionGroupMapType &transition_group_map, TransformationDescription trafo, double rt_extraction_window)
Map the chromatograms to the transitions.
int add_up_spectra_
Definition MRMFeatureFinderScoring.h:429
double sn_win_len_
Definition MRMFeatureFinderScoring.h:437
double spacing_for_spectra_resampling_
Definition MRMFeatureFinderScoring.h:432
void addScoreMetaValues_(OpenMS::MRMFeature &mrmfeature, const MRMTransitionGroupType &transition_group_detection, const std::vector< OpenSwath::ISignalToNoisePtr > &signal_noise_estimators, const std::vector< OpenSwath::ISignalToNoisePtr > &ms1_signal_noise_estimators, double expected_rt, bool swath_present, bool ms1only) const
std::vector< std::string > precursor_ids
Definition MRMFeatureFinderScoring.h:232
OpenMS::EmgScoring emgscoring_
Definition MRMFeatureFinderScoring.h:446
int stop_report_after_feature_
Definition MRMFeatureFinderScoring.h:419
OpenSwath::LightCompound PeptideType
Definition MRMFeatureFinderScoring.h:76
OpenMS::DIAScoring diascoring_
Definition MRMFeatureFinderScoring.h:445
std::string scoring_model_
Definition MRMFeatureFinderScoring.h:424
bool write_convex_hull_
Definition MRMFeatureFinderScoring.h:420
void splitTransitionGroupsIdentification_(const MRMTransitionGroupType &transition_group, MRMTransitionGroupType &transition_group_identification, MRMTransitionGroupType &transition_group_identification_decoy) const
Splits combined transition groups into identification transition groups.
std::string spectrum_addition_method_
Definition MRMFeatureFinderScoring.h:430
~MRMFeatureFinderScoring() override
Destructor.
OpenSwath::SpectrumAccessPtr ms1_map_
Definition MRMFeatureFinderScoring.h:449
std::map< std::string, MRMTransitionGroupType > TransitionGroupMapType
Definition MRMFeatureFinderScoring.h:82
OpenSwath::LightTransition TransitionType
Type definitions.
Definition MRMFeatureFinderScoring.h:74
void prepareScoredFeatureOutput_(OpenMS::MRMFeature &mrmfeature, const PeptideType &pep, ProteaseDigestion &pd, bool swath_present, double precursor_mz, bool ms1only) const
void pickExperiment(const OpenSwath::SpectrumAccessPtr &input, FeatureMap &output, const OpenSwath::LightTargetedExperiment &transition_exp, const TransformationDescription &trafo, const std::vector< OpenSwath::SwathMap > &swath_maps, TransitionGroupMapType &transition_group_map)
Pick and score features in a single experiment from chromatograms.
void scoreIdentification_(MRMTransitionGroupType &transition_group_identification, MRMTransitionGroupType &transition_group_detection, OpenSwathScoring &scorer, const size_t feature_idx, const Int64 feature_id, const std::vector< std::string > &native_ids_detection, const std::vector< OpenSwath::ISignalToNoisePtr > &signal_noise_estimators_identification, const double det_intensity_ratio_score, const double det_mi_ratio_score, const std::vector< OpenSwath::SwathMap > &swath_maps, const double drift_target, RangeMobility &im_range, OpenSwath_Ind_Scores_Pooled &idscores_out, MobilogramParquetConsumer *mobilogram_consumer=nullptr) const
Provides scoring for target and decoy identification against detecting transitions.
void setMS1Map(OpenSwath::SpectrumAccessPtr ms1_map)
Add an MS1 map containing spectra.
Definition MRMFeatureFinderScoring.h:198
double rt_normalization_factor_
Definition MRMFeatureFinderScoring.h:428
std::string spectrum_merge_method_type_
Definition MRMFeatureFinderScoring.h:431
OpenSwath_Scores_Usage su_
Definition MRMFeatureFinderScoring.h:444
std::vector< std::string > transition_native_ids
Definition MRMFeatureFinderScoring.h:231
double uis_threshold_sn_
Definition MRMFeatureFinderScoring.h:434
double quantification_cutoff_
Definition MRMFeatureFinderScoring.h:418
void splitTransitionGroupsDetection_(const MRMTransitionGroupType &transition_group, MRMTransitionGroupType &transition_group_detection) const
Splits combined transition groups into detection transition groups.
void setStrictFlag(bool f)
Set the flag for strict mapping.
Definition MRMFeatureFinderScoring.h:184
unsigned int sn_bin_count_
Definition MRMFeatureFinderScoring.h:438
double uis_threshold_peak_area_
Definition MRMFeatureFinderScoring.h:435
void pickExperiment(const PeakMap &chromatograms, FeatureMap &output, const TargetedExperiment &transition_exp, const TransformationDescription &trafo, const PeakMap &swath_map)
Picker and prepare functions.
void prepareProteinPeptideMaps_(const OpenSwath::LightTargetedExperiment &transition_exp)
Prepares the internal mappings of peptides and proteins.
OpenSwath::LightTargetedExperiment TargetedExpType
Definition MRMFeatureFinderScoring.h:75
bool write_log_messages_
Definition MRMFeatureFinderScoring.h:439
void updateMembers_() override
Synchronize members with param class.
bool use_ms1_ion_mobility_
Definition MRMFeatureFinderScoring.h:422
static void addProteinIdentificationRun(const OpenSwath::LightTargetedExperiment &transition_exp, FeatureMap &output)
Adds the protein identification run (search run) that the peptide identifications of the features ref...
void scorePeakgroups(MRMTransitionGroupType &transition_group, const TransformationDescription &trafo, const std::vector< OpenSwath::SwathMap > &swath_maps, FeatureMap &output, bool ms1only=false, MobilogramParquetConsumer *mobilogram_consumer=nullptr) const
Score all peak groups of a transition group.
double rt_extraction_window_
Definition MRMFeatureFinderScoring.h:417
std::vector< double > normalized_library_intensity
Definition MRMFeatureFinderScoring.h:230
OpenSwath::LightModification ModificationType
Definition MRMFeatureFinderScoring.h:78
void prepareFeatureOutput_(OpenMS::MRMFeature &mrmfeature, bool ms1only, int charge) const
double im_extra_drift_
Definition MRMFeatureFinderScoring.h:441
Cache of transition-group invariant data to avoid per-feature recomputation.
Definition MRMFeatureFinderScoring.h:229
A multi-chromatogram MRM feature.
Definition MRMFeature.h:26
The representation of a group of transitions in a targeted proteomics experiment.
Definition MRMTransitionGroup.h:41
In-Memory representation of a mass spectrometry run.
Definition MSExperiment.h:49
Writes Mobilograms (ion-mobility traces) to a Parquet file using a PyProphet-compatible-like schema.
Definition MobilogramParquetConsumer.h:25
Definition OpenSwathScoring.h:45
Base class for all classes that want to report their progress.
Definition ProgressLogger.h:27
Class for the enzymatic digestion of proteins represented as AASequence or String.
Definition ProteaseDigestion.h:32
A description of a targeted experiment containing precursor and production ions.
Definition TargetedExperiment.h:40
Generic description of a coordinate transformation.
Definition TransformationDescription.h:38
int64_t Int64
Signed integer type (64bit)
Definition Types.h:40
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
A structure to store which scores should be used by the OpenSWATH Algorithm.
Definition OpenSwathScores.h:25
std::shared_ptr< ISpectrumAccess > SpectrumAccessPtr
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:146
Pooled variant of OpenSwath_Ind_Scores to allow pre-allocation and reuse.
Definition MRMFeatureFinderScoring.h:241
void preallocate(Size capacity)
Reserve storage for all identification score vectors.
Definition MRMFeatureFinderScoring.h:243
void reset()
Clear all identification scores while preserving allocated capacity.
Definition MRMFeatureFinderScoring.h:289
A structure to hold the individual scores computed for unique ion signatures (UIS) scores for the Inf...
Definition OpenSwathScores.h:181
Definition RangeManager.h:482
Definition TransitionExperiment.h:269
Definition TransitionExperiment.h:251
Definition TransitionExperiment.h:349
Definition TransitionExperiment.h:369
Definition TransitionExperiment.h:106