OpenMS
ParentGroup.h
Go to the documentation of this file.
1 // Copyright (c) 2002-2023, The OpenMS Team -- EKU Tuebingen, ETH Zurich, and FU Berlin
2 // SPDX-License-Identifier: BSD-3-Clause
3 //
4 // --------------------------------------------------------------------------
5 // $Maintainer: Hendrik Weisser $
6 // $Authors: Hendrik Weisser $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
12 
13 #include <boost/multi_index_container.hpp>
14 #include <boost/multi_index/ordered_index.hpp>
15 #include <boost/multi_index/member.hpp>
16 
17 namespace OpenMS
18 {
19  namespace IdentificationDataInternal
20  {
23  // @TODO: derive from MetaInfoInterface?
24  struct ParentGroup
25  {
26  std::map<ScoreTypeRef, double> scores;
27  // @TODO: does this need a "leader" or some such?
28  std::set<ParentSequenceRef> parent_refs;
29  };
30 
31  typedef boost::multi_index_container<
33  boost::multi_index::indexed_by<
34  boost::multi_index::ordered_unique<
35  boost::multi_index::member<
36  ParentGroup, std::set<ParentSequenceRef>,
40 
44  {
45  String label; // @TODO: use "label" as a uniqueness constraint?
47 
48  explicit ParentGroupSet(
49  const String& label = "",
50  const ParentGroups& groups = ParentGroups()):
52  {
53  }
54  };
55 
56  typedef std::vector<ParentGroupSet> ParentGroupSets;
57 
58  }
59 }
A more convenient string class.
Definition: String.h:34
std::map< ScoreTypeRef, double > scores
Definition: ParentGroup.h:26
std::vector< ParentGroupSet > ParentGroupSets
Definition: ParentGroup.h:56
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:38
IteratorWrapper< ParentGroups::iterator > ParentGroupRef
Definition: ParentGroup.h:39
std::set< ParentSequenceRef > parent_refs
Definition: ParentGroup.h:28
: Group of ambiguously identified parent sequences (e.g. protein group)
Definition: ParentGroup.h:25
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:22
Wrapper that adds operator< to iterators, so they can be used as (part of) keys in maps/sets or multi...
Definition: MetaData.h:20
Set of groups of ambiguously identified parent sequences (e.g. results of running a protein inference...
Definition: ParentGroup.h:44
ParentGroups groups
Definition: ParentGroup.h:46
String label
Definition: ParentGroup.h:45
ParentGroupSet(const String &label="", const ParentGroups &groups=ParentGroups())
Definition: ParentGroup.h:48
Base class for ID data with scores and processing steps (and meta info)
Definition: ScoredProcessingResult.h:19