OpenMS
Loading...
Searching...
No Matches
ConsensusMap.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: Timo Sachsenberg $
6// $Authors: $
7// --------------------------------------------------------------------------
8
9#pragma once
10
15
22
28#include <OpenMS/OpenMSConfig.h>
29
30#include <map>
31#include <vector>
32#include <iosfwd>
33
34namespace OpenMS
35{
36 class PeptideIdentification;
37 class PeptideHit;
38 class ProteinIdentification;
39 class DataProcessing;
40 class MSExperiment;
41 namespace Logger
42 {
43 class LogStream;
44 }
45
61 class OPENMS_DLLAPI ConsensusMap :
62 public MetaInfoInterface,
63 public RangeManagerContainer<RangeRT, RangeMZ, RangeIntensity>,
64 public DocumentIdentifier,
65 public ExposedVector<ConsensusFeature>,
66 public UniqueIdInterface,
67 public UniqueIdIndexer<ConsensusMap>,
68 public MapUtilities<ConsensusMap>
69 {
70public:
72
73 enum class SplitMeta
74 {
75 DISCARD,
76 COPY_ALL,
77 COPY_FIRST
78 };
79
81 struct OPENMS_DLLAPI ColumnHeader :
83 {
85 ColumnHeader() = default;
86
88 ColumnHeader(const ColumnHeader&) = default;
89
92
95
98
101 Size size = 0;
102
104 UInt64 unique_id = UniqueIdInterface::INVALID;
105
106 unsigned getLabelAsUInt(const String& experiment_type) const;
107 };
108
110
112 typedef std::map<UInt64, ColumnHeader> ColumnHeaders;
113
121
124
129
131 ~ConsensusMap() override;
132
135
139 ConsensusMap& operator=(ConsensusMap&& source) = default;
140
151
160
161
167 void clear(bool clear_meta_data = true);
168
171
174
176 void setColumnHeaders(const ColumnHeaders& column_description);
177
179 const String& getExperimentType() const;
180
182 void setExperimentType(const String& experiment_type);
183
192 void sortByIntensity(bool reverse = false);
193
195 void sortByRT();
196
198 void sortByMZ();
199
202
204 void sortByQuality(bool reverse = false);
205
208
211
215
216 // Docu in base class
217 void updateRanges() override;
218
220 void swap(ConsensusMap& from);
221
223 const std::vector<ProteinIdentification>& getProteinIdentifications() const;
224
226 std::vector<ProteinIdentification>& getProteinIdentifications();
227
229 void setProteinIdentifications(const std::vector<ProteinIdentification>& protein_identifications);
230
232 void setProteinIdentifications(std::vector<ProteinIdentification>&& protein_identifications);
233
236
239
242
245
247 void setUnassignedPeptideIdentifications(const PeptideIdentificationList& unassigned_peptide_identifications);
248
250 const std::vector<DataProcessing>& getDataProcessing() const;
251
253 std::vector<DataProcessing>& getDataProcessing();
254
256 void setDataProcessing(const std::vector<DataProcessing>& processing_method);
257
260
266
268 void getPrimaryMSRunPath(StringList& toFill) const;
269
271 bool operator==(const ConsensusMap& rhs) const;
272
274 bool operator!=(const ConsensusMap& rhs) const;
275
289 template <typename Type>
290 Size applyMemberFunction(Size (Type::* member_function)())
291 {
292 Size assignments = 0;
293 assignments += ((*this).*member_function)();
294 for (Iterator iter = this->begin(); iter != this->end(); ++iter)
295 {
296 assignments += ((*iter).*member_function)();
297 }
298 return assignments;
299 }
300
302 template <typename Type>
303 Size applyMemberFunction(Size (Type::* member_function)() const) const
304 {
305 Size assignments = 0;
306 assignments += ((*this).*member_function)();
307 for (ConstIterator iter = this->begin(); iter != this->end(); ++iter)
308 {
309 assignments += ((*iter).*member_function)();
310 }
311 return assignments;
312 }
313
326 bool isMapConsistent(Logger::LogStream* stream = nullptr) const;
327
341 std::vector<FeatureMap> split(SplitMeta mode = SplitMeta::DISCARD) const;
342
345
352 std::set<IdentificationData::ObservationMatchRef> getUnassignedIDMatches() const;
353
356
360
361 protected:
364
366 String experiment_type_ = "label-free";
367
369 std::vector<ProteinIdentification> protein_identifications_;
370
373
375 std::vector<DataProcessing> data_processing_;
376
379 };
380
382 OPENMS_DLLAPI std::ostream& operator<<(std::ostream& os, const ConsensusMap& cons_map);
383
384} // namespace OpenMS
#define EXPOSED_VECTOR_INTERFACE(InnerElement)
Macro to expose common dependent types, such as iterator in the derived class.
Definition ExposedVector.h:26
A consensus feature spanning multiple LC-MS/MS experiments.
Definition ConsensusFeature.h:45
A container for consensus elements.
Definition ConsensusMap.h:69
SplitMeta
Definition ConsensusMap.h:74
ProteinIdentification * findProteinIdentification(const String &identifier)
finds a protein identification by its identifier (returns nullptr if not found)
ConsensusMap(ConsensusMap &&source)
Move constructor.
const_reverse_iterator ConstReverseIterator
Definition ConsensusMap.h:119
void sortByRT()
Sorts the peaks to RT position.
std::vector< FeatureMap > split(SplitMeta mode=SplitMeta::DISCARD) const
splits ConsensusMap into its original FeatureMaps
void setUnassignedPeptideIdentifications(const PeptideIdentificationList &unassigned_peptide_identifications)
sets the unassigned peptide identifications
std::vector< DataProcessing > & getDataProcessing()
returns a mutable reference to the description of the applied data processing
RangeManager< RangeRT, RangeMZ, RangeIntensity > RangeManagerType
Definition ConsensusMap.h:115
Size applyMemberFunction(Size(Type::*member_function)())
Applies a member function of Type to the container itself and all consensus features....
Definition ConsensusMap.h:290
const PeptideIdentificationList & getUnassignedPeptideIdentifications() const
non-mutable access to the unassigned peptide identifications
reverse_iterator ReverseIterator
Definition ConsensusMap.h:118
void setPrimaryMSRunPath(const StringList &s)
set the file paths to the primary MS run (stored in ColumnHeaders)
void sortByMaps()
Sorts with respect to the sets of maps covered by the consensus features (lexicographically).
ConsensusMap & operator=(const ConsensusMap &source)
Assignment operator.
bool isMapConsistent(Logger::LogStream *stream=nullptr) const
checks if the given maps are unique and all FeatureHandles actually refer to a registered map
std::vector< DataProcessing > data_processing_
applied data processing
Definition ConsensusMap.h:375
PeptideIdentificationList & getUnassignedPeptideIdentifications()
mutable access to the unassigned peptide identifications
iterator Iterator
Definition ConsensusMap.h:116
void sortPeptideIdentificationsByMapIndex()
Sorts PeptideIdentifications of consensus features with respect to their map index.
void sortByMZ()
Sorts the peaks to m/z position.
const_iterator ConstIterator
Definition ConsensusMap.h:117
bool operator!=(const ConsensusMap &rhs) const
Equality operator.
void setProteinIdentifications(const std::vector< ProteinIdentification > &protein_identifications)
sets the protein identifications
ConsensusMap(size_type n)
Creates a ConsensusMap with n elements.
IdentificationData id_data_
general identification results (peptides/proteins, RNA, compounds)
Definition ConsensusMap.h:378
bool operator==(const ConsensusMap &rhs) const
Equality operator.
ConsensusMap & appendColumns(const ConsensusMap &rhs)
Add consensus map entries as new columns.
void sortBySize()
Sorts with respect to the size (number of elements)
ConsensusFeature FeatureType
Definition ConsensusMap.h:111
void clear(bool clear_meta_data=true)
Clears all data and meta data.
ConsensusMap()
Default constructor.
ConsensusMap & operator=(ConsensusMap &&source)=default
MoveAssignment operator.
void setProteinIdentifications(std::vector< ProteinIdentification > &&protein_identifications)
sets the protein identifications by moving
ConsensusMap & appendRows(const ConsensusMap &rhs)
Add consensus map entries as new rows.
void sortByPosition()
Lexicographically sorts the peaks by their position (First RT then m/z).
void setDataProcessing(const std::vector< DataProcessing > &processing_method)
sets the description of the applied data processing
void sortByIntensity(bool reverse=false)
Sorts the peaks according to ascending intensity.
RangeManagerContainer< RangeRT, RangeMZ, RangeIntensity > RangeManagerContainerType
Definition ConsensusMap.h:114
const IdentificationData & getIdentificationData() const
Immutable access to the contained identification data.
void getPrimaryMSRunPath(StringList &toFill) const
returns the MS run path (stored in ColumnHeaders)
IdentificationData & getIdentificationData()
Mutable access to the contained identification data.
const std::vector< DataProcessing > & getDataProcessing() const
returns a const reference to the description of the applied data processing
std::vector< ProteinIdentification > & getProteinIdentifications()
mutable access to the protein identifications
std::map< UInt64, ColumnHeader > ColumnHeaders
Definition ConsensusMap.h:112
~ConsensusMap() override
Destructor.
const ColumnHeaders & getColumnHeaders() const
Non-mutable access to the file descriptions.
void setColumnHeaders(const ColumnHeaders &column_description)
Mutable access to the file descriptions.
void sortByQuality(bool reverse=false)
Sorts the peaks according to ascending quality.
ColumnHeaders column_description_
Map from index to file description.
Definition ConsensusMap.h:363
ColumnHeaders & getColumnHeaders()
Mutable access to the file descriptions.
const ProteinIdentification * findProteinIdentification(const String &identifier) const
finds a protein identification by its identifier (returns nullptr if not found)
void swap(ConsensusMap &from)
Swaps the content of this map with the content of from.
std::vector< ProteinIdentification > protein_identifications_
protein identifications
Definition ConsensusMap.h:369
std::set< IdentificationData::ObservationMatchRef > getUnassignedIDMatches() const
Return observation matches (e.g. PSMs) from the identification data that are not assigned to any feat...
ConsensusMap(const ConsensusMap &source)
Copy constructor.
const String & getExperimentType() const
Non-mutable access to the experiment type.
void updateRanges() override
void setPrimaryMSRunPath(const StringList &s, MSExperiment &e)
void setExperimentType(const String &experiment_type)
Mutable access to the experiment type.
PeptideIdentificationList unassigned_peptide_identifications_
unassigned peptide identifications (without feature)
Definition ConsensusMap.h:372
Size applyMemberFunction(Size(Type::*member_function)() const) const
The "const" variant.
Definition ConsensusMap.h:303
const std::vector< ProteinIdentification > & getProteinIdentifications() const
non-mutable access to the protein identifications
Manage source document information.
Definition DocumentIdentifier.h:30
Definition ExposedVector.h:62
typename VecMember::iterator iterator
Definition ExposedVector.h:68
typename VecMember::const_iterator const_iterator
Definition ExposedVector.h:69
typename VecMember::size_type size_type
Definition ExposedVector.h:72
typename VecMember::reverse_iterator reverse_iterator
Definition ExposedVector.h:70
typename VecMember::const_reverse_iterator const_reverse_iterator
Definition ExposedVector.h:71
Definition IdentificationData.h:87
Log Stream Class.
Definition LogStream.h:308
In-Memory representation of a mass spectrometry run.
Definition MSExperiment.h:49
Utilities for Feature and ConsensusMap.
Definition MapUtilities.h:25
Interface for classes that can store arbitrary meta information (Type-Name-Value tuples).
Definition MetaInfoInterface.h:36
Container for peptide identifications from multiple spectra.
Definition PeptideIdentificationList.h:66
Representation of a protein identification run.
Definition ProteinIdentification.h:56
Definition RangeManager.h:889
Handles the management of a multidimensional range, e.g. RangeMZ and RangeIntensity for spectra.
Definition RangeManager.h:568
A more convenient string class.
Definition String.h:34
A base class for containers with elements derived from UniqueIdInterface. This adds functionality to ...
Definition UniqueIdIndexer.h:41
A base class defining a common interface for all classes having a unique id.
Definition UniqueIdInterface.h:25
uint64_t UInt64
Unsigned integer type (64bit)
Definition Types.h:47
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
std::vector< String > StringList
Vector of String.
Definition ListUtils.h:44
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
std::ostream & operator<<(std::ostream &os, const AccurateMassSearchResult &amsr)
Description of the columns in a consensus map.
Definition ConsensusMap.h:83
ColumnHeader()=default
Default constructor.
ColumnHeader(const ColumnHeader &)=default
Copy constructor.
unsigned getLabelAsUInt(const String &experiment_type) const
String filename
File name of the mzML file.
Definition ConsensusMap.h:94
ColumnHeader & operator=(const ColumnHeader &)=default
Copy assignment.
String label
Label e.g. 'heavy' and 'light' for ICAT, or 'sample1' and 'sample2' for label-free quantitation.
Definition ConsensusMap.h:97