OpenMS
Loading...
Searching...
No Matches
IMSAlphabet.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: Anton Pervukhin <Anton.Pervukhin@CeBiTec.Uni-Bielefeld.DE> $
7// --------------------------------------------------------------------------
8//
9
10#pragma once
11
12#include <vector>
13#include <string>
14#include <iosfwd>
15
17
20
21namespace OpenMS
22{
23
24 namespace ims
25 {
26
55 class OPENMS_DLLAPI IMSAlphabet
56 {
57
58public:
62 typedef std::vector<element_type> container;
63 typedef container::size_type size_type;
64 typedef container::iterator iterator;
65 typedef container::const_iterator const_iterator;
66 typedef std::vector<name_type> name_container;
67 typedef name_container::iterator name_iterator;
68 typedef name_container::const_iterator const_name_iterator;
69 typedef std::vector<mass_type> mass_container;
70 typedef mass_container::iterator mass_iterator;
71 typedef mass_container::const_iterator const_mass_iterator;
72 typedef std::vector<mass_type> masses_type;
73
78
79
85 explicit IMSAlphabet(const container & elements) :
86 elements_(elements)
87 {}
88
89
95 IMSAlphabet(const IMSAlphabet & alphabet) :
96 elements_(alphabet.elements_)
97 {}
98
105 {
106 return elements_.size();
107 }
108
116 const element_type & getElement(size_type index) const
117 {
118 return elements_[index];
119 }
120
131 void setElement(const name_type & name, mass_type mass, bool forced = false);
132
139 bool erase(const name_type & name);
140
149 const element_type & getElement(const name_type & name) const;
150
157 const name_type & getName(size_type index) const;
158
168 mass_type getMass(const name_type & name) const;
169
178
185 masses_type getMasses(size_type isotope_index = 0) const;
186
193
201 bool hasName(const name_type & name) const;
202
212 void push_back(const name_type & name, mass_type value)
213 {
214 push_back(element_type(name, value));
215 }
216
222 void push_back(const element_type & element)
223 {
224 elements_.push_back(element);
225 }
226
230 void clear()
231 {
232 elements_.clear();
233 }
234
240 virtual void sortByNames();
241
242
248 virtual void sortByValues();
249
250
260 virtual void load(const std::string & fname);
261
262
274 virtual void load(const std::string & fname, IMSAlphabetParser<> & parser);
275
276
280 virtual ~IMSAlphabet() {}
281
282private:
287
291 class OPENMS_DLLAPI MassSortingCriteria_
292 {
293public:
294 bool operator()(const element_type & el1,
295 const element_type & el2) const
296 {
297 return el1.getMass() < el2.getMass();
298 }
299
300 };
301
302 };
303
310 OPENMS_DLLAPI std::ostream & operator<<(std::ostream & os, const IMSAlphabet & alphabet);
311
312 } // namespace ims
313
314} // namespace OpenMS
315
An abstract templatized parser to load the data that is used to initialize Alphabet objects.
Definition IMSAlphabetParser.h:38
Private class-functor to sort out elements in mass ascending order.
Definition IMSAlphabet.h:292
bool operator()(const element_type &el1, const element_type &el2) const
Definition IMSAlphabet.h:294
Holds an indexed list of bio-chemical elements.
Definition IMSAlphabet.h:56
const name_type & getName(size_type index) const
masses_type getMasses(size_type isotope_index=0) const
element_type::mass_type mass_type
Definition IMSAlphabet.h:60
container::size_type size_type
Definition IMSAlphabet.h:63
virtual void load(const std::string &fname, IMSAlphabetParser<> &parser)
virtual void sortByValues()
container elements_
Definition IMSAlphabet.h:286
IMSAlphabet()
Definition IMSAlphabet.h:77
mass_type getMass(size_type index) const
virtual void load(const std::string &fname)
void push_back(const element_type &element)
Definition IMSAlphabet.h:222
bool hasName(const name_type &name) const
IMSAlphabet(const IMSAlphabet &alphabet)
Definition IMSAlphabet.h:95
const element_type & getElement(const name_type &name) const
const element_type & getElement(size_type index) const
Definition IMSAlphabet.h:116
size_type size() const
Definition IMSAlphabet.h:104
std::vector< mass_type > mass_container
Definition IMSAlphabet.h:69
std::vector< element_type > container
Definition IMSAlphabet.h:62
container::iterator iterator
Definition IMSAlphabet.h:64
virtual void sortByNames()
masses_type getAverageMasses() const
void setElement(const name_type &name, mass_type mass, bool forced=false)
std::vector< name_type > name_container
Definition IMSAlphabet.h:66
name_container::iterator name_iterator
Definition IMSAlphabet.h:67
void push_back(const name_type &name, mass_type value)
Definition IMSAlphabet.h:212
IMSElement element_type
Definition IMSAlphabet.h:59
std::vector< mass_type > masses_type
Definition IMSAlphabet.h:72
mass_type getMass(const name_type &name) const
mass_container::const_iterator const_mass_iterator
Definition IMSAlphabet.h:71
void clear()
Definition IMSAlphabet.h:230
element_type::name_type name_type
Definition IMSAlphabet.h:61
virtual ~IMSAlphabet()
Definition IMSAlphabet.h:280
container::const_iterator const_iterator
Definition IMSAlphabet.h:65
mass_container::iterator mass_iterator
Definition IMSAlphabet.h:70
name_container::const_iterator const_name_iterator
Definition IMSAlphabet.h:68
IMSAlphabet(const container &elements)
Definition IMSAlphabet.h:85
bool erase(const name_type &name)
Represents a chemical atom with name and isotope distribution.
Definition IMSElement.h:33
isotopes_type::mass_type mass_type
Type of isotope mass.
Definition IMSElement.h:42
std::string name_type
Type of element's name.
Definition IMSElement.h:36
mass_type getMass(size_type index=0) const
Definition IMSElement.h:146
std::ostream & operator<<(std::ostream &os, const IMSAlphabet &alphabet)
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19