OpenMS  3.0.0
MapUtilities.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: Julianus Pfeuffer$
32 // $Authors: Julianus Pfeuffer $
33 // --------------------------------------------------------------------------
34 
35 #pragma once
36 
37 #include <OpenMS/config.h>
39 #include <vector>
40 
41 namespace OpenMS
42 {
48  template <class MapType>
50  {
51  public:
53  template <class T>
54  void applyFunctionOnPeptideHits(T&& f, bool include_unassigned = true)
55  {
56  for (auto& feat : static_cast<MapType&>(*this))
57  {
58  applyFunctionOnPeptideHits_(feat.getPeptideIdentifications(), f);
59  }
60  if (include_unassigned)
61  {
62  applyFunctionOnPeptideHits_(static_cast<MapType&>(*this).getUnassignedPeptideIdentifications(), f);
63  }
64  }
65 
67  template <class T>
68  void applyFunctionOnPeptideIDs(T&& f, bool include_unassigned = true)
69  {
70  for (auto& feat : static_cast<MapType&>(*this))
71  {
72  applyFunctionOnPeptideIDs_(feat.getPeptideIdentifications(), f);
73  }
74  if (include_unassigned)
75  {
76  applyFunctionOnPeptideIDs_(static_cast<MapType&>(*this).getUnassignedPeptideIdentifications(), f);
77  }
78  }
79 
81  template <class T>
82  void applyFunctionOnPeptideHits(T&& f, bool include_unassigned = true) const
83  {
84  for (const auto& feat : static_cast<MapType const&>(*this))
85  {
86  applyFunctionOnPeptideHits_(feat.getPeptideIdentifications(), f);
87  }
88  if (include_unassigned)
89  {
90  applyFunctionOnPeptideHits_(static_cast<MapType const&>(*this).getUnassignedPeptideIdentifications(), f);
91  }
92  }
93 
95  template <class T>
96  void applyFunctionOnPeptideIDs(T&& f, bool include_unassigned = true) const
97  {
98  for (const auto& feat : static_cast<MapType const&>(*this))
99  {
100  applyFunctionOnPeptideIDs_(feat.getPeptideIdentifications(), f);
101  }
102  if (include_unassigned)
103  {
104  applyFunctionOnPeptideIDs_(static_cast<MapType const&>(*this).getUnassignedPeptideIdentifications(), f);
105  }
106  }
107 
108  private:
109  template <class T>
110  void applyFunctionOnPeptideIDs_(std::vector<PeptideIdentification>& idvec, T&& f)
111  {
112  for (auto& id : idvec)
113  {
114  f(id);
115  }
116  }
117 
118  template <class T>
119  void applyFunctionOnPeptideHits_(std::vector<PeptideIdentification>& idvec, T&& f)
120  {
121  for (auto& id : idvec)
122  {
123  for (auto& hit : id.getHits())
124  {
125  f(hit);
126  }
127  }
128  }
129 
130  template <class T>
131  void applyFunctionOnPeptideIDs_(const std::vector<PeptideIdentification>& idvec, T&& f) const
132  {
133  for (const auto& id : idvec)
134  {
135  f(id);
136  }
137  }
138 
139  template <class T>
140  void applyFunctionOnPeptideHits_(const std::vector<PeptideIdentification>& idvec, T&& f) const
141  {
142  for (const auto& id : idvec)
143  {
144  for (const auto& hit : id.getHits())
145  {
146  f(hit);
147  }
148  }
149  }
150  };
151 
152 } // namespace OpenMS
153 
OpenMS::FileTypes::IDXML
OpenMS identification format (.idXML)
Definition: FileTypes.h:64
ConsensusXMLFile.h
OpenMS::TOPPBase
Base class for TOPP applications.
Definition: TOPPBase.h:147
FileHandler.h
FileTypes.h
OpenMS::Math::SummaryStatistics::mean
double mean
Definition: StatisticFunctions.h:698
OpenMS::MapAlignmentTransformer::transformRetentionTimes
static void transformRetentionTimes(PeakMap &msexp, const TransformationDescription &trafo, bool store_original_rt=false)
Applies the given transformation to a peak map.
Size
OpenMS::writtenDigits
constexpr Int writtenDigits(const FloatingPointType &=FloatingPointType())
Number of digits commonly used for writing a floating point type (a.k.a. precision)....
Definition: Types.h:294
OpenMS::Math::SummaryStatistics::median
double median
Definition: StatisticFunctions.h:698
double
OpenMS::DataProcessing::NORMALIZATION
Normalization of intensity values.
Definition: DataProcessing.h:70
OpenMS::IdXMLFile::store
void store(const String &filename, const std::vector< ProteinIdentification > &protein_ids, const std::vector< PeptideIdentification > &peptide_ids, const String &document_id="")
Stores the data in an idXML file.
OpenMS::ConsensusMap::updateRanges
void updateRanges() override
OpenMS::DocumentIdentifier::getIdentifier
const String & getIdentifier() const
retrieve document identifier (e.g. an LSID)
OpenMS::DataProcessing::ALIGNMENT
Retention time alignment of different maps.
Definition: DataProcessing.h:68
OpenMS::MzMLFile::store
void store(const String &filename, const PeakMap &map) const
Stores a map in an MzML file.
OpenMS::FileTypes::MZML
MzML file (.mzML)
Definition: FileTypes.h:70
OpenMS::MzMLFile
File adapter for MzML files.
Definition: MzMLFile.h:57
OpenMS::String
A more convenient string class.
Definition: String.h:58
MzMLFile.h
OpenMS::MSExperiment
In-Memory representation of a mass spectrometry run.
Definition: MSExperiment.h:70
OpenMS::FileTypes::CONSENSUSXML
OpenMS consensus map format (.consensusXML)
Definition: FileTypes.h:65
IdXMLFile.h
FeatureXMLFile.h
OpenMS::Math::SummaryStatistics
Helper class to gather (and dump) some statistics from a e.g. vector<double>.
Definition: StatisticFunctions.h:672
StatisticFunctions.h
OpenMS::FileTypes::UNKNOWN
Unknown file extension.
Definition: FileTypes.h:58
OpenMS::TransformationDescription::invert
void invert()
Computes an (approximate) inverse of the transformation.
OpenMS::Peak2D::CoordinateType
double CoordinateType
Coordinate type (of the position)
Definition: Peak2D.h:64
OpenMS::DataProcessing::NamesOfProcessingAction
static const std::string NamesOfProcessingAction[SIZE_OF_PROCESSINGACTION]
Names of inlet types.
Definition: DataProcessing.h:84
OpenMS::TransformationDescription::fitModel
void fitModel(const String &model_type, const Param &params=Param())
Fits a model to the data.
OpenMS::IdXMLFile::load
void load(const String &filename, std::vector< ProteinIdentification > &protein_ids, std::vector< PeptideIdentification > &peptide_ids)
Loads the identifications of an idXML file without identifier.
OpenMS::Peak2D::MZ
Mass-to-charge dimension id (1 if used as a const int)
Definition: Peak2D.h:76
OpenMS
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
OpenMS::DataProcessing::ProcessingAction
ProcessingAction
Definition: DataProcessing.h:58
OpenMS::FeatureMap::updateRanges
void updateRanges() override
OpenMS::String::number
static String number(double d, UInt n)
returns a string for d with exactly n decimal places
OpenMS::FileTypes::FEATUREXML
OpenMS feature file (.featureXML)
Definition: FileTypes.h:63
OpenMS::Math::SummaryStatistics::variance
double variance
Definition: StatisticFunctions.h:698
OpenMS::ProgressLogger
Base class for all classes that want to report their progress.
Definition: ProgressLogger.h:52
OpenMS::MzMLFile::load
void load(const String &filename, PeakMap &map)
Loads a map from a MzML file. Spectra and chromatograms are sorted by default (this can be disabled u...
OpenMS::Math::SummaryStatistics::max
T::value_type max
Definition: StatisticFunctions.h:699
TransformationXMLFile.h
OpenMS::Peak2D::IntensityType
float IntensityType
Intensity type.
Definition: Peak2D.h:62
OpenMS::FileHandler
Facilitates file handling by file type recognition.
Definition: FileHandler.h:66
OpenMS::MapUtilities::applyFunctionOnPeptideHits
void applyFunctionOnPeptideHits(T &&f, bool include_unassigned=true) const
applies a const function on all PeptideHits or only assigned ones
Definition: MapUtilities.h:82
OpenMS::FeatureXMLFile::load
void load(const String &filename, FeatureMap &feature_map)
loads the file with name filename into map and calls updateRanges().
FeatureMap.h
OpenMS::MapUtilities::applyFunctionOnPeptideIDs
void applyFunctionOnPeptideIDs(T &&f, bool include_unassigned=true) const
applies a const function on all PeptideIDs or only assigned ones
Definition: MapUtilities.h:96
OpenMS::FileTypes::Type
Type
Actual file types enum.
Definition: FileTypes.h:56
OpenMS::ConsensusFeature
A consensus feature spanning multiple LC-MS/MS experiments.
Definition: ConsensusFeature.h:69
OpenMS::MapUtilities::applyFunctionOnPeptideIDs
void applyFunctionOnPeptideIDs(T &&f, bool include_unassigned=true)
applies a function on all PeptideIDs or only assigned ones
Definition: MapUtilities.h:68
OpenMS::FileHandler::getType
static FileTypes::Type getType(const String &filename)
Tries to determine the file type (by name or content)
OpenMS::MapUtilities::applyFunctionOnPeptideIDs_
void applyFunctionOnPeptideIDs_(std::vector< PeptideIdentification > &idvec, T &&f)
Definition: MapUtilities.h:110
OpenMS::Math::SummaryStatistics::lowerq
double lowerq
Definition: StatisticFunctions.h:698
ms
Definition: MSNumpress.h:78
OpenMS::Peak1D
A 1-dimensional raw data point or peak.
Definition: Peak1D.h:53
OpenMS::operator<<
std::ostream & operator<<(std::ostream &os, const AccurateMassSearchResult &amsr)
OpenMS::ConsensusMap
A container for consensus elements.
Definition: ConsensusMap.h:82
OpenMS::ConsensusXMLFile::load
void load(const String &filename, ConsensusMap &map)
Loads a consensus map from file and calls updateRanges.
OpenMS::ParamValue::toString
std::string toString(bool full_precision=true) const
Convert ParamValue to string.
main
int main(int argc, const char **argv)
Definition: INIFileEditor.cpp:71
MSExperiment.h
OpenMS::ConsensusMap::getColumnHeaders
const ColumnHeaders & getColumnHeaders() const
Non-mutable access to the file descriptions.
OpenMS::MapUtilities::applyFunctionOnPeptideHits
void applyFunctionOnPeptideHits(T &&f, bool include_unassigned=true)
applies a function on all PeptideHits or only assigned ones
Definition: MapUtilities.h:54
OpenMS::TransformationXMLFile::load
void load(const String &filename, TransformationDescription &transformation, bool fit_model=true)
Loads the transformation from an TransformationXML file.
OpenMS::FeatureMap
A container for features.
Definition: FeatureMap.h:98
OpenMS::TransformationXMLFile
Used to load and store TransformationXML files.
Definition: TransformationXMLFile.h:56
OpenMS::ConsensusMap::getDataProcessing
const std::vector< DataProcessing > & getDataProcessing() const
returns a const reference to the description of the applied data processing
OpenMS::FeatureHandle
Representation of a Peak2D, RichPeak2D or Feature .
Definition: FeatureHandle.h:57
OpenMS::Param::copy
Param copy(const std::string &prefix, bool remove_prefix=false) const
Returns a new Param object containing all entries that start with prefix.
OpenMS::MapUtilities::applyFunctionOnPeptideHits_
void applyFunctionOnPeptideHits_(const std::vector< PeptideIdentification > &idvec, T &&f) const
Definition: MapUtilities.h:140
OpenMS::MapUtilities::applyFunctionOnPeptideHits_
void applyFunctionOnPeptideHits_(std::vector< PeptideIdentification > &idvec, T &&f)
Definition: MapUtilities.h:119
OpenMS::FeatureMap::sortByRT
void sortByRT()
Sort features by RT position.
OpenMS::DataProcessing
Description of the applied preprocessing steps.
Definition: DataProcessing.h:51
OpenMS::FeatureXMLFile
This class provides Input/Output functionality for feature maps.
Definition: FeatureXMLFile.h:62
OpenMS::FileTypes::nameToType
static Type nameToType(const String &name)
OpenMS::MSExperiment::updateRanges
void updateRanges() override
OpenMS::Peak2D::RT
Retention time dimension id (0 if used as a const int)
Definition: Peak2D.h:75
MapAlignerBase.h
OpenMS::Param
Management and storage of parameters / INI files.
Definition: Param.h:69
OpenMS::TransformationXMLFile::store
void store(String filename, const TransformationDescription &transformation)
Stores the data in an TransformationXML file.
OpenMS::MapUtilities
Utilities for Feature and ConsensusMap.
Definition: MapUtilities.h:49
OpenMS::Math::SummaryStatistics::upperq
double upperq
Definition: StatisticFunctions.h:698
OpenMS::BaseFeature::QualityType
float QualityType
Definition: BaseFeature.h:64
PeptideIdentification.h
OpenMS::MSSpectrum
The representation of a 1D spectrum.
Definition: MSSpectrum.h:66
OpenMS::FeatureMap::getDataProcessing
const std::vector< DataProcessing > & getDataProcessing() const
returns a const reference to the description of the applied data processing
OpenMS::Param::getValue
const ParamValue & getValue(const std::string &key) const
Returns a value of a parameter.
OpenMS::TransformationDescription
Generic description of a coordinate transformation.
Definition: TransformationDescription.h:62
OpenMS::ProgressLogger::setLogType
void setLogType(LogType type) const
Sets the progress log that should be used. The default type is NONE!
TOPPBase.h
OpenMS::Math::SummaryStatistics::min
T::value_type min
Definition: StatisticFunctions.h:699
OpenMS::MapUtilities::applyFunctionOnPeptideIDs_
void applyFunctionOnPeptideIDs_(const std::vector< PeptideIdentification > &idvec, T &&f) const
Definition: MapUtilities.h:131
OpenMS::ConsensusXMLFile
This class provides Input functionality for ConsensusMaps and Output functionality for alignments and...
Definition: ConsensusXMLFile.h:58
OpenMS::IdXMLFile
Used to load and store idXML files.
Definition: IdXMLFile.h:68
OpenMS::FileTypes::typeToName
static String typeToName(Type type)
Returns the name/extension of the type.
OpenMS::ConsensusMap::ColumnHeaders
std::map< UInt64, ColumnHeader > ColumnHeaders
Definition: ConsensusMap.h:164
StringListUtils.h