OpenMS  3.0.0
IdentificationData.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // OpenMS -- Open-Source Mass Spectrometry
3 // --------------------------------------------------------------------------
4 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5 // ETH Zurich, and Freie Universitaet Berlin 2002-2022.
6 //
7 // This software is released under a three-clause BSD license:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of any author or any participating institution
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 // For a full list of authors, refer to the file AUTHORS.
17 // --------------------------------------------------------------------------
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // --------------------------------------------------------------------------
31 // $Maintainer: Hendrik Weisser $
32 // $Authors: Hendrik Weisser $
33 // --------------------------------------------------------------------------
34 
35 #pragma once
36 
50 
51 #include <unordered_set>
52 
53 namespace OpenMS
54 {
95  template <typename ContainerType, typename PredicateType>
97  static void removeFromSetIf_(ContainerType& container, PredicateType predicate)
98  {
99  for (auto it = container.begin(); it != container.end(); )
100  {
101  if (predicate(it))
102  {
103  it = container.erase(it);
104  }
105  else
106  {
107  ++it;
108  }
109  }
110  }
111 
112  class OPENMS_DLLAPI IdentificationData: public MetaInfoInterface
113  {
114  public:
115 
116  // to be able to add overloads and still find the inherited ones
118 
119  // type definitions:
122 
126 
127  using ProcessingSoftware =
129  using ProcessingSoftwares =
131  using ProcessingSoftwareRef =
133 
137 
142 
146 
147  using ScoredProcessingResult =
149 
150  using AppliedProcessingStep =
152  using AppliedProcessingSteps =
154 
158 
162 
165 
168  using IdentifiedPeptideRef =
170 
173  using IdentifiedCompoundRef =
175 
179 
181 
183 
187 
191 
192  // @TODO: allow multiple sets of groups, like with parent sequences
193  // ("ParentGroupSets")?
197 
199  using ParentGroups =
202  using ParentGroupSet =
204  using ParentGroupSets =
206 
207  using AddressLookup = std::unordered_set<uintptr_t>;
208 
210  struct RefTranslator {
211  std::map<InputFileRef, InputFileRef> input_file_refs;
212  std::map<ScoreTypeRef, ScoreTypeRef> score_type_refs;
213  std::map<ProcessingSoftwareRef, ProcessingSoftwareRef> processing_software_refs;
214  std::map<SearchParamRef, SearchParamRef> search_param_refs;
215  std::map<ProcessingStepRef, ProcessingStepRef> processing_step_refs;
216  std::map<ObservationRef, ObservationRef> observation_refs;
217  std::map<ParentSequenceRef, ParentSequenceRef> parent_sequence_refs;
218  std::map<IdentifiedPeptideRef, IdentifiedPeptideRef> identified_peptide_refs;
219  std::map<IdentifiedOligoRef, IdentifiedOligoRef> identified_oligo_refs;
220  std::map<IdentifiedCompoundRef, IdentifiedCompoundRef> identified_compound_refs;
221  std::map<AdductRef, AdductRef> adduct_refs;
222  std::map<ObservationMatchRef, ObservationMatchRef> observation_match_refs;
223 
224  bool allow_missing = false;
225 
226  IdentifiedMolecule translate(IdentifiedMolecule old) const;
227 
228  ObservationMatchRef translate(ObservationMatchRef old) const;
229 
230  };
231 
234  current_step_ref_(processing_steps_.end()), no_checks_(false)
235  {
236  }
237 
245 
248  MetaInfoInterface(std::move(other)),
249  input_files_(std::move(other.input_files_)),
250  processing_softwares_(std::move(other.processing_softwares_)),
251  processing_steps_(std::move(other.processing_steps_)),
252  db_search_params_(std::move(other.db_search_params_)),
253  db_search_steps_(std::move(other.db_search_steps_)),
254  score_types_(std::move(other.score_types_)),
255  observations_(std::move(other.observations_)),
256  parents_(std::move(other.parents_)),
257  parent_groups_(std::move(other.parent_groups_)),
258  identified_peptides_(std::move(other.identified_peptides_)),
259  identified_compounds_(std::move(other.identified_compounds_)),
260  identified_oligos_(std::move(other.identified_oligos_)),
261  adducts_(std::move(other.adducts_)),
262  observation_matches_(std::move(other.observation_matches_)),
263  observation_match_groups_(std::move(other.observation_match_groups_)),
264  current_step_ref_(std::move(other.current_step_ref_)),
265  no_checks_(std::move(other.no_checks_)),
266  // look-up tables:
267  observation_lookup_(std::move(other.observation_lookup_)),
268  parent_lookup_(std::move(other.parent_lookup_)),
269  identified_peptide_lookup_(std::move(other.identified_peptide_lookup_)),
270  identified_compound_lookup_(std::move(other.identified_compound_lookup_)),
271  identified_oligo_lookup_(std::move(other.identified_oligo_lookup_)),
272  observation_match_lookup_(std::move(other.observation_match_lookup_))
273  {
274  }
275 
281  InputFileRef registerInputFile(const InputFile& file);
282 
288  ProcessingSoftwareRef registerProcessingSoftware(
289  const ProcessingSoftware& software);
290 
296  SearchParamRef registerDBSearchParam(const DBSearchParam& param);
297 
303  ProcessingStepRef registerProcessingStep(const ProcessingStep&
304  step);
305 
311  ProcessingStepRef registerProcessingStep(
312  const ProcessingStep& step, SearchParamRef search_ref);
313 
319  ScoreTypeRef registerScoreType(const ScoreType& score);
320 
326  ObservationRef registerObservation(const Observation& obs);
327 
333  ParentSequenceRef registerParentSequence(const ParentSequence& parent);
334 
336  void registerParentGroupSet(const ParentGroupSet& groups);
337 
343  IdentifiedPeptideRef registerIdentifiedPeptide(const IdentifiedPeptide&
344  peptide);
345 
351  IdentifiedCompoundRef registerIdentifiedCompound(const IdentifiedCompound&
352  compound);
353 
359  IdentifiedOligoRef registerIdentifiedOligo(const IdentifiedOligo& oligo);
360 
366  AdductRef registerAdduct(const AdductInfo& adduct);
367 
373  ObservationMatchRef registerObservationMatch(const ObservationMatch& match);
374 
380  MatchGroupRef registerObservationMatchGroup(const ObservationMatchGroup& group);
381 
383  const InputFiles& getInputFiles() const
384  {
385  return input_files_;
386  }
387 
390  {
391  return processing_softwares_;
392  }
393 
396  {
397  return processing_steps_;
398  }
399 
402  {
403  return db_search_params_;
404  }
405 
408  {
409  return db_search_steps_;
410  }
411 
413  const ScoreTypes& getScoreTypes() const
414  {
415  return score_types_;
416  }
417 
420  {
421  return observations_;
422  }
423 
426  {
427  return parents_;
428  }
429 
432  {
433  return parent_groups_;
434  }
435 
438  {
439  return identified_peptides_;
440  }
441 
444  {
445  return identified_compounds_;
446  }
447 
450  {
451  return identified_oligos_;
452  }
453 
455  const Adducts& getAdducts() const
456  {
457  return adducts_;
458  }
459 
462  {
463  return observation_matches_;
464  }
465 
468  {
469  return observation_match_groups_;
470  }
471 
473  void addScore(ObservationMatchRef match_ref, ScoreTypeRef score_ref,
474  double value);
475 
483  void setCurrentProcessingStep(ProcessingStepRef step_ref);
484 
490  ProcessingStepRef getCurrentProcessingStep();
491 
493  void clearCurrentProcessingStep();
494 
501  std::vector<ObservationMatchRef> getBestMatchPerObservation(ScoreTypeRef score_ref,
502  bool require_score = false) const;
503  // @TODO: this currently doesn't take molecule type into account - should it?
504 
506  std::pair<ObservationMatchRef, ObservationMatchRef> getMatchesForObservation(ObservationRef obs_ref) const;
507 
515  template <typename PredicateType>
516  void removeObservationMatchesIf(PredicateType&& func)
517  {
518  auto count = observation_matches_.size();
519  removeFromSetIf_(observation_matches_, func);
520  if (count != observation_matches_.size()) cleanup();
521  }
522 
530  template <typename PredicateType>
531  void removeParentSequencesIf(PredicateType&& func)
532  {
533  auto count = parents_.size();
534  removeFromSetIf_(parents_, func);
535  if (count != parents_.size()) cleanup();
536  }
537 
538  template <typename PredicateType>
539  void applyToObservations(PredicateType&& func)
540  {
541  for (auto it = observations_.begin(); it != observations_.end(); ++it)
542  observations_.modify(it, func);
543  }
544 
550  ScoreTypeRef findScoreType(const String& score_name) const;
551 
553  void calculateCoverages(bool check_molecule_length = false);
554 
566  void cleanup(bool require_observation_match = true,
567  bool require_identified_sequence = true,
568  bool require_parent_match = true,
569  bool require_parent_group = false,
570  bool require_match_group = false);
571 
573  bool empty() const;
574 
585  RefTranslator merge(const IdentificationData& other);
586 
588  void swap(IdentificationData& other);
589 
591  void clear();
592 
608  template <class ScoredProcessingResults>
609  ScoreTypeRef pickScoreType(const ScoredProcessingResults& container,
610  bool all_elements = false, bool any_score = false) const
611  {
612  std::map<ScoreTypeRef, Size> score_counts;
613 
614  if (any_score)
615  {
616  for (const auto& element : container)
617  {
618  for (const auto& step : element.steps_and_scores)
619  {
620  for (const auto& pair : step.scores)
621  {
622  score_counts[pair.first]++;
623  }
624  }
625  }
626  }
627  else
628  {
629  for (const auto& element : container)
630  {
631  auto score_info = element.getMostRecentScore();
632  if (std::get<2>(score_info)) // check success indicator
633  {
634  ScoreTypeRef score_ref = *std::get<1>(score_info); // unpack the option
635  if (!all_elements) return score_ref;
636  score_counts[score_ref]++; // elements are zero-initialized
637  }
638  }
639  }
640  if (score_counts.empty()) return score_types_.end();
641  auto pos = max_element(score_counts.begin(), score_counts.end());
642  // @TODO: break ties according to some criterion
643  return pos->first;
644  }
645 
647  void setMetaValue(const ObservationMatchRef ref, const String& key, const DataValue& value);
648 
650  void setMetaValue(const ObservationRef ref, const String& key, const DataValue& value);
651 
653  void setMetaValue(const IdentifiedMolecule& var, const String& key, const DataValue& value);
654 
655  // @TODO: add overloads for other data types derived from MetaInfoInterface
656 
657  protected:
658 
659  // containers:
664  // @TODO: store SearchParamRef inside ProcessingStep? (may not be required
665  // for many processing steps)
677 
680 
687 
688  // look-up tables for fast checking of reference validity:
691  // @TODO: just use one "identified_molecule_lookup_" for all molecule types?
696 
698  void checkScoreTypes_(const std::map<ScoreTypeRef, double>& scores) const;
699 
701  void checkAppliedProcessingSteps_(const AppliedProcessingSteps&
702  steps_and_scores) const;
703 
705  void checkParentMatches_(const ParentMatches& matches,
706  MoleculeType expected_type) const;
707 
715  void mergeScoredProcessingResults_(ScoredProcessingResult& result,
716  const ScoredProcessingResult& other,
717  const RefTranslator& trans);
718 
724  template <typename ElementType>
726 
732  template <typename ElementType>
734 
740  template <typename ElementType>
742 
744  template <typename ContainerType, typename ElementType>
745  typename ContainerType::iterator insertIntoMultiIndex_(ContainerType& container, const ElementType& element);
746 
748  template <typename ContainerType, typename ElementType>
749  typename ContainerType::iterator insertIntoMultiIndex_(
750  ContainerType& container, const ElementType& element,
751  AddressLookup& lookup);
752 
753  };
754 
755 }
ScoreTypes score_types_
Definition: IdentificationData.h:667
void removeParentSequencesIf(PredicateType &&func)
Helper function for filtering parent sequences (e.g. protein sequences) in IdentificationData.
Definition: IdentificationData.h:531
void setMetaValue(const String &name, const DataValue &value)
Sets the DataValue corresponding to a name.
bool no_checks_
Suppress validity checks in register... calls?
Definition: IdentificationData.h:686
const ObservationMatchGroups & getObservationMatchGroups() const
Return the registered groups of observation matches (immutable)
Definition: IdentificationData.h:467
AddressLookup observation_match_lookup_
Definition: IdentificationData.h:695
IteratorWrapper< IdentifiedPeptides::iterator > IdentifiedPeptideRef
Definition: IdentifiedSequence.h:116
IdentificationDataInternal::ObservationMatchGroups ObservationMatchGroups
Definition: IdentificationData.h:195
std::map< SearchParamRef, SearchParamRef > search_param_refs
Definition: IdentificationData.h:214
Definition: AdductInfo.h:42
A more convenient string class.
Definition: String.h:58
std::map< ObservationRef, ObservationRef > observation_refs
Definition: IdentificationData.h:216
std::map< ObservationMatchRef, ObservationMatchRef > observation_match_refs
Definition: IdentificationData.h:222
std::map< ParentSequenceRef, std::set< ParentMatch > > ParentMatches
mapping: parent sequence -> match information
Definition: ParentMatch.h:101
AddressLookup identified_peptide_lookup_
Definition: IdentificationData.h:692
InputFiles input_files_
Definition: IdentificationData.h:660
IdentificationData()
Default constructor.
Definition: IdentificationData.h:233
std::map< IdentifiedCompoundRef, IdentifiedCompoundRef > identified_compound_refs
Definition: IdentificationData.h:220
MoleculeType
Definition: MetaData.h:65
Definition: AppliedProcessingStep.h:55
boost::multi_index_container< AppliedProcessingStep, boost::multi_index::indexed_by< boost::multi_index::sequenced<>, boost::multi_index::ordered_unique< boost::multi_index::member< AppliedProcessingStep, std::optional< ProcessingStepRef >, &AppliedProcessingStep::processing_step_opt > > > > AppliedProcessingSteps
Definition: AppliedProcessingStep.h:133
IdentifiedPeptides identified_peptides_
Definition: IdentificationData.h:671
AddressLookup identified_compound_lookup_
Definition: IdentificationData.h:693
const DBSearchParams & getDBSearchParams() const
Return the registered database search parameters (immutable)
Definition: IdentificationData.h:401
std::map< ProcessingSoftwareRef, ProcessingSoftwareRef > processing_software_refs
Definition: IdentificationData.h:213
std::optional< AdductRef > AdductOpt
Definition: ObservationMatch.h:70
IdentificationDataInternal::AdductOpt AdductOpt
Definition: IdentificationData.h:186
IdentificationDataInternal::Adducts Adducts
Definition: IdentificationData.h:184
IteratorWrapper< Observations::iterator > ObservationRef
Definition: Observation.h:96
const Observations & getObservations() const
Return the registered observations (immutable)
Definition: IdentificationData.h:419
const IdentifiedCompounds & getIdentifiedCompounds() const
Return the registered compounds (immutable)
Definition: IdentificationData.h:443
ProcessingSoftwares processing_softwares_
Definition: IdentificationData.h:661
IdentifiedSequence< NASequence > IdentifiedOligo
Definition: IdentifiedSequence.h:107
Representation of a parent sequence that is identified only indirectly (e.g. a protein).
Definition: ParentSequence.h:49
Meta data for the association between an identified molecule (e.g. peptide) and a parent sequence (e...
Definition: ParentMatch.h:45
MassType
Definition: MetaData.h:73
ParentGroupSets parent_groups_
Definition: IdentificationData.h:670
IdentificationDataInternal::DBSearchSteps DBSearchSteps
Definition: IdentificationData.h:141
Information about input files that were processed.
Definition: include/OpenMS/METADATA/ID/InputFile.h:50
Helper functor for adding scores to elements in a boost::multi_index_container structure.
Definition: IdentificationData.h:733
IdentificationDataInternal::ParentMatches ParentMatches
Definition: IdentificationData.h:164
Definition: IdentificationData.h:112
boost::multi_index_container< ParentGroup, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< ParentGroup, std::set< ParentSequenceRef >, &ParentGroup::parent_refs > > > > ParentGroups
Definition: ParentGroup.h:64
std::map< ParentSequenceRef, ParentSequenceRef > parent_sequence_refs
Definition: IdentificationData.h:217
const ProcessingSoftwares & getProcessingSoftwares() const
Return the registered data processing software (immutable)
Definition: IdentificationData.h:389
IdentificationDataInternal::IdentifiedCompounds IdentifiedCompounds
Definition: IdentificationData.h:172
std::set< DBSearchParam > DBSearchParams
Definition: DBSearchParam.h:124
boost::multi_index_container< IdentifiedOligo, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< IdentifiedOligo, NASequence, &IdentifiedOligo::sequence > > > > IdentifiedOligos
Definition: IdentifiedSequence.h:124
ParentSequences parents_
Definition: IdentificationData.h:669
std::set< ProcessingStep > ProcessingSteps
Definition: ProcessingStep.h:88
std::map< ProcessingStepRef, SearchParamRef > DBSearchSteps
Definition: DBSearchParam.h:126
Representation of an observation, e.g. a spectrum or feature, in an input data file.
Definition: Observation.h:53
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
IteratorWrapper< Adducts::iterator > AdductRef
Definition: ObservationMatch.h:69
boost::multi_index_container< ParentSequence, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< ParentSequence, String, &ParentSequence::accession > > > > ParentSequences
Definition: ParentSequence.h:120
const DBSearchSteps & getDBSearchSteps() const
Return the registered database search steps (immutable)
Definition: IdentificationData.h:407
A simple widget with a line-edit and a browse button to choose filenames.
Definition: gui/include/OpenMS/VISUAL/InputFile.h:55
IteratorWrapper< DBSearchParams::iterator > SearchParamRef
Definition: DBSearchParam.h:125
const Adducts & getAdducts() const
Return the registered adducts (immutable)
Definition: IdentificationData.h:455
DBSearchParams db_search_params_
Definition: IdentificationData.h:663
IdentificationDataInternal::ProcessingSteps ProcessingSteps
Definition: IdentificationData.h:135
std::vector< PeptideHit::PeakAnnotation > PeakAnnotations
Definition: ObservationMatch.h:52
IteratorWrapper< ObservationMatches::iterator > ObservationMatchRef
Definition: ObservationMatch.h:152
Helper functor for adding processing steps to elements in a boost::multi_index_container structure...
Definition: IdentificationData.h:725
std::set< AdductInfo, AdductCompare > Adducts
Definition: ObservationMatch.h:68
IdentificationDataInternal::ScoreTypes ScoreTypes
Definition: IdentificationData.h:144
Class to hold strings, numeric values, lists of strings and lists of numeric values.
Definition: DataValue.h:58
std::map< InputFileRef, InputFileRef > input_file_refs
Definition: IdentificationData.h:211
IteratorWrapper< ParentSequences::iterator > ParentSequenceRef
Definition: ParentSequence.h:121
IteratorWrapper< ParentGroups::iterator > ParentGroupRef
Definition: ParentGroup.h:65
Representation of an identified sequence (peptide or oligonucleotide)
Definition: IdentifiedSequence.h:52
Data processing step that is applied to the data (e.g. database search, PEP calculation, filtering, ConsensusID).
Definition: ProcessingStep.h:47
std::unordered_set< uintptr_t > AddressLookup
Definition: IdentificationData.h:207
ScoreTypeRef pickScoreType(const ScoredProcessingResults &container, bool all_elements=false, bool any_score=false) const
Definition: IdentificationData.h:609
IdentificationDataInternal::ProcessingSoftwares ProcessingSoftwares
Definition: IdentificationData.h:130
ProcessingStepRef current_step_ref_
Reference to the current data processing step (see setCurrentProcessingStep())
Definition: IdentificationData.h:679
boost::multi_index_container< ObservationMatch, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::composite_key< ObservationMatch, boost::multi_index::member< ObservationMatch, ObservationRef, &ObservationMatch::observation_ref >, boost::multi_index::member< ObservationMatch, IdentifiedMolecule, &ObservationMatch::identified_molecule_var >, boost::multi_index::member< ObservationMatch, AdductOpt, &ObservationMatch::adduct_opt > > > > > ObservationMatches
Definition: ObservationMatch.h:150
std::vector< ParentGroupSet > ParentGroupSets
Definition: ParentGroup.h:82
IteratorWrapper< IdentifiedOligos::iterator > IdentifiedOligoRef
Definition: IdentifiedSequence.h:125
Observations observations_
Definition: IdentificationData.h:668
IdentificationDataInternal::AppliedProcessingSteps AppliedProcessingSteps
Definition: IdentificationData.h:153
const IdentifiedOligos & getIdentifiedOligos() const
Return the registered identified oligonucleotides (immutable)
Definition: IdentificationData.h:449
ObservationMatches observation_matches_
Definition: IdentificationData.h:675
std::map< ScoreTypeRef, ScoreTypeRef > score_type_refs
Definition: IdentificationData.h:212
IdentificationDataInternal::DBSearchParams DBSearchParams
Definition: IdentificationData.h:139
std::map< IdentifiedOligoRef, IdentifiedOligoRef > identified_oligo_refs
Definition: IdentificationData.h:219
Set of groups of ambiguously identified parent sequences (e.g. results of running a protein inference...
Definition: ParentGroup.h:69
IteratorWrapper< InputFiles::iterator > InputFileRef
Definition: include/OpenMS/METADATA/ID/InputFile.h:95
std::map< AdductRef, AdductRef > adduct_refs
Definition: IdentificationData.h:221
std::map< IdentifiedPeptideRef, IdentifiedPeptideRef > identified_peptide_refs
Definition: IdentificationData.h:218
void applyToObservations(PredicateType &&func)
Definition: IdentificationData.h:539
const IdentifiedPeptides & getIdentifiedPeptides() const
Return the registered identified peptides (immutable)
Definition: IdentificationData.h:437
ProcessingSteps processing_steps_
Definition: IdentificationData.h:662
void removeObservationMatchesIf(PredicateType &&func)
Helper function for filtering observation matches (e.g. PSMs) in IdentificationData.
Definition: IdentificationData.h:516
AddressLookup identified_oligo_lookup_
Definition: IdentificationData.h:694
IdentificationDataInternal::PeakAnnotations PeakAnnotations
Definition: IdentificationData.h:182
IteratorWrapper< ProcessingSteps::iterator > ProcessingStepRef
Definition: ProcessingStep.h:89
std::set< ScoreType > ScoreTypes
Definition: ScoreType.h:91
const InputFiles & getInputFiles() const
Return the registered input files (immutable)
Definition: IdentificationData.h:383
Helper functor for removing invalid parent matches from elements in a boost::multi_index_container st...
Definition: IdentificationData.h:741
Interface for classes that can store arbitrary meta information (Type-Name-Value tuples).
Definition: MetaInfoInterface.h:60
IteratorWrapper< ProcessingSoftwares::iterator > ProcessingSoftwareRef
Definition: ProcessingSoftware.h:69
Variant type holding Peptide/Compound/Oligo references and convenience functions. ...
Definition: IdentifiedMolecule.h:54
ObservationMatchGroups observation_match_groups_
Definition: IdentificationData.h:676
IdentificationDataInternal::InputFiles InputFiles
Definition: IdentificationData.h:124
IdentificationDataInternal::Observations Observations
Definition: IdentificationData.h:156
DBSearchSteps db_search_steps_
Definition: IdentificationData.h:666
AddressLookup observation_lookup_
Definition: IdentificationData.h:689
IdentifiedCompounds identified_compounds_
Definition: IdentificationData.h:672
IdentificationDataInternal::ObservationMatches ObservationMatches
Definition: IdentificationData.h:189
Representation of a search hit (e.g. peptide-spectrum match).
Definition: ObservationMatch.h:73
const ParentGroupSets & getParentGroupSets() const
Return the registered parent sequence groupings (immutable)
Definition: IdentificationData.h:431
boost::multi_index_container< IdentifiedPeptide, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< IdentifiedPeptide, AASequence, &IdentifiedPeptide::sequence > > > > IdentifiedPeptides
Definition: IdentifiedSequence.h:115
boost::multi_index_container< ObservationMatchGroup, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< ObservationMatchGroup, std::set< ObservationMatchRef >, &ObservationMatchGroup::observation_match_refs > > > > ObservationMatchGroups
Definition: ObservationMatchGroup.h:99
OpenMS::InputFile InputFile
Definition: SwathTabWidget.h:143
IdentifiedOligos identified_oligos_
Definition: IdentificationData.h:673
boost::multi_index_container< Observation, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::composite_key< Observation, boost::multi_index::member< Observation, InputFileRef, &Observation::input_file >, boost::multi_index::member< Observation, String, &Observation::data_id > > > > > Observations
Definition: Observation.h:95
boost::multi_index_container< IdentifiedCompound, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< IdentifiedCompound, String, &IdentifiedCompound::identifier > > > > IdentifiedCompounds
Definition: IdentifiedCompound.h:80
IdentificationDataInternal::IdentifiedPeptides IdentifiedPeptides
Definition: IdentificationData.h:167
static void removeFromSetIf_(ContainerType &container, PredicateType predicate)
Representation of spectrum identification results and associated data.
Definition: IdentificationData.h:97
: Group of related (co-identified) input matches
Definition: ObservationMatchGroup.h:50
IdentificationData(IdentificationData &&other) noexcept
Move constructor.
Definition: IdentificationData.h:247
std::map< ProcessingStepRef, ProcessingStepRef > processing_step_refs
Definition: IdentificationData.h:215
Information about software used for data processing.
Definition: ProcessingSoftware.h:48
Base class for ID data with scores and processing steps (and meta info)
Definition: ScoredProcessingResult.h:44
Parameters specific to a database search step.
Definition: DBSearchParam.h:47
IdentificationDataInternal::ParentSequences ParentSequences
Definition: IdentificationData.h:160
IteratorWrapper< ObservationMatchGroups::iterator > MatchGroupRef
Definition: ObservationMatchGroup.h:100
IdentificationDataInternal::ParentGroups ParentGroups
Definition: IdentificationData.h:200
IdentificationDataInternal::ParentGroupSets ParentGroupSets
Definition: IdentificationData.h:205
IdentificationDataInternal::IdentifiedOligos IdentifiedOligos
Definition: IdentificationData.h:177
IteratorWrapper< IdentifiedCompounds::iterator > IdentifiedCompoundRef
Definition: IdentifiedCompound.h:81
AddressLookup parent_lookup_
Definition: IdentificationData.h:690
const ProcessingSteps & getProcessingSteps() const
Return the registered data processing steps (immutable)
Definition: IdentificationData.h:395
Information about a score type.
Definition: ScoreType.h:45
IteratorWrapper< ScoreTypes::iterator > ScoreTypeRef
Definition: ScoreType.h:92
structure that maps references of corresponding objects after copying
Definition: IdentificationData.h:210
IdentifiedSequence< AASequence > IdentifiedPeptide
Definition: IdentifiedSequence.h:106
const ObservationMatches & getObservationMatches() const
Return the registered observation matches (immutable)
Definition: IdentificationData.h:461
const ParentSequences & getParentSequences() const
Return the registered parent sequences (immutable)
Definition: IdentificationData.h:425
: Group of ambiguously identified parent sequences (e.g. protein group)
Definition: ParentGroup.h:50
boost::multi_index_container< InputFile, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< InputFile, String, &InputFile::name > > > > InputFiles
Definition: include/OpenMS/METADATA/ID/InputFile.h:94
std::set< ProcessingSoftware > ProcessingSoftwares
Definition: ProcessingSoftware.h:68
Adducts adducts_
Definition: IdentificationData.h:674
const ScoreTypes & getScoreTypes() const
Return the registered score types (immutable)
Definition: IdentificationData.h:413