OpenMS
Loading...
Searching...
No Matches
MzTabBase.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: Oliver Alka $
6// $Authors: Timo Sachsenberg, Oliver Alka $
7// --------------------------------------------------------------------------
8
9#pragma once
10
13
14
15#include <map>
16#include <vector>
17#include <list>
18#include <algorithm>
19
20
21namespace OpenMS
22{
38
39 class OPENMS_DLLAPI MzTabDouble
40 {
41public:
43
44 explicit MzTabDouble(const double v);
45
46 void set(const double& value);
47
48 double get() const;
49
50 std::string toCellString() const;
51
52 void fromCellString(const std::string& s);
53
54 bool isNull() const;
55
56 void setNull(bool b);
57
58 bool isNaN() const;
59
60 void setNaN();
61
62 bool isInf() const;
63
64 void setInf();
65
66 ~MzTabDouble() = default;
67
68 bool operator<(const MzTabDouble& rhs) const;
69
70 bool operator==(const MzTabDouble& rhs) const;
71
72protected:
73 double value_;
75 };
76
77 class OPENMS_DLLAPI MzTabDoubleList
78 {
79public:
80 MzTabDoubleList() = default;
81
82 bool isNull() const;
83
84 void setNull(bool b);
85
86 std::string toCellString() const;
87
88 void fromCellString(const std::string& s);
89
90 std::vector<MzTabDouble> get() const;
91
92 void set(const std::vector<MzTabDouble>& entries);
93
94 ~MzTabDoubleList() = default;
95protected:
96 std::vector<MzTabDouble> entries_;
97 };
98
99 class OPENMS_DLLAPI MzTabInteger
100 {
101public:
103
104 explicit MzTabInteger(const int v);
105
106 void set(const Int& value);
107
108 Int get() const;
109
110 std::string toCellString() const;
111
112 void fromCellString(const std::string& s);
113
114 bool isNull() const;
115
116 void setNull(bool b);
117
118 bool isNaN() const;
119
120 void setNaN();
121
122 bool isInf() const;
123
124 void setInf();
125
126 ~MzTabInteger() = default;
127protected:
130 };
131
132 class OPENMS_DLLAPI MzTabIntegerList
133 {
134public:
135 MzTabIntegerList() = default;
136
137 bool isNull() const;
138
139 void setNull(bool b);
140
141 std::string toCellString() const;
142
143 void fromCellString(const std::string& s);
144
145 std::vector<MzTabInteger> get() const;
146
147 void set(const std::vector<MzTabInteger>& entries);
148
149 ~MzTabIntegerList() = default;
150protected:
151 std::vector<MzTabInteger> entries_;
152 };
153
154 class OPENMS_DLLAPI MzTabBoolean
155 {
156public:
158
159 bool isNull() const;
160
161 void setNull(bool b);
162
163 explicit MzTabBoolean(bool v);
164
165 void set(const bool& value);
166
167 Int get() const;
168
169 std::string toCellString() const;
170
171 void fromCellString(const std::string& s);
172
173 ~MzTabBoolean() = default;
174protected:
176 };
177
178 class OPENMS_DLLAPI MzTabString
179 {
180public:
182
183 explicit MzTabString(const std::string& s);
184
185 bool isNull() const;
186
187 void setNull(bool b);
188
189 void set(const std::string& value);
190
191 std::string get() const;
192
193 std::string toCellString() const;
194
195 void fromCellString(const std::string& s);
196
197 ~MzTabString() = default;
198protected:
199 std::string value_;
200 };
201
202 typedef std::pair<std::string, MzTabString> MzTabOptionalColumnEntry; //< column name (not null able), value (null able)
203
204 class OPENMS_DLLAPI MzTabParameter
205 {
206 public:
208
209 bool isNull() const;
210
211 void setNull(bool b);
212
213 void setCVLabel(const std::string& CV_label);
214
215 void setAccession(const std::string& accession);
216
217 void setName(const std::string& name);
218
219 void setValue(const std::string& value);
220
221 std::string getCVLabel() const;
222
223 std::string getAccession() const;
224
225 std::string getName() const;
226
227 std::string getValue() const;
228
229 std::string toCellString() const;
230
231 void fromCellString(const std::string& s);
232
233 ~MzTabParameter() = default;
234 protected:
235 std::string CV_label_;
236 std::string accession_;
237 std::string name_;
238 std::string value_;
239 };
240
241 class OPENMS_DLLAPI MzTabParameterList
242 {
243 public:
245
246 bool isNull() const;
247
248 void setNull(bool b);
249
250 std::string toCellString() const;
251
252 void fromCellString(const std::string& s);
253
254 std::vector<MzTabParameter> get() const;
255
256 void set(const std::vector<MzTabParameter>& parameters);
257
259
260 protected:
261 std::vector<MzTabParameter> parameters_;
262 };
263
264 class OPENMS_DLLAPI MzTabStringList
265 {
266 public:
268
269 bool isNull() const;
270
271 void setNull(bool b);
272
274 void setSeparator(char sep);
275
276 std::string toCellString() const;
277
278 void fromCellString(const std::string& s);
279
280 std::vector<MzTabString> get() const;
281
282 void set(const std::vector<MzTabString>& entries);
283
284 ~MzTabStringList() = default;
285 protected:
286 std::vector<MzTabString> entries_;
287 char sep_;
288 };
289
290 class OPENMS_DLLAPI MzTabSpectraRef
291 {
292 public:
294
295 bool isNull() const;
296
297 void setNull(bool b);
298
299 void setMSFile(Size index);
300
301 void setSpecRef(const std::string& spec_ref);
302
303 std::string getSpecRef() const;
304
306
307 void setSpecRefFile(const std::string& spec_ref);
308
309 std::string toCellString() const;
310
311 void fromCellString(const std::string& s);
312
313 ~MzTabSpectraRef() = default;
314 protected:
315 Size ms_run_; //< number is specified in the meta data section.
316 std::string spec_ref_;
317 };
318
319 // MTD
320 struct OPENMS_DLLAPI MzTabSoftwareMetaData
321 {
323 std::map<Size, MzTabString> setting;
324 };
325
326 struct OPENMS_DLLAPI MzTabSampleMetaData
327 {
329 std::map<Size, MzTabParameter> species;
330 std::map<Size, MzTabParameter> tissue;
331 std::map<Size, MzTabParameter> cell_type;
332 std::map<Size, MzTabParameter> disease;
333 std::map<Size, MzTabParameter> custom;
334 };
335
343
344 struct OPENMS_DLLAPI MzTabInstrumentMetaData
345 {
348 std::map<Size, MzTabParameter> analyzer;
350 };
351
358
359 class OPENMS_DLLAPI MzTabBase
360 {
361 public:
362 MzTabBase() = default;
363 virtual ~MzTabBase() = default;
364
365 protected:
367 template <typename SectionRows>
368 std::vector<std::string> getOptionalColumnNames_(const SectionRows& rows) const
369 {
370 // vector is used to preserve the column order
371 std::vector<std::string> names;
372 for (typename SectionRows::const_iterator it = rows.begin(); it != rows.end(); ++it)
373 {
374 for (auto it_opt = it->opt_.cbegin(); it_opt != it->opt_.cend(); ++it_opt)
375 {
376 if (std::find(names.begin(), names.end(), it_opt->first) == names.end())
377 {
378 names.push_back(it_opt->first);
379 }
380 }
381 }
382 return names;
383 }
384 };
385} // namespace OpenMS
Definition MzTabBase.h:360
std::vector< std::string > getOptionalColumnNames_(const SectionRows &rows) const
Helper function for "get...OptionalColumnNames" functions.
Definition MzTabBase.h:368
virtual ~MzTabBase()=default
MzTabBase()=default
Definition MzTabBase.h:155
void set(const bool &value)
bool isNull() const
int value_
Definition MzTabBase.h:175
void fromCellString(const std::string &s)
void setNull(bool b)
std::string toCellString() const
Definition MzTabBase.h:78
std::vector< MzTabDouble > entries_
Definition MzTabBase.h:96
void set(const std::vector< MzTabDouble > &entries)
void fromCellString(const std::string &s)
std::string toCellString() const
std::vector< MzTabDouble > get() const
Definition MzTabBase.h:40
MzTabCellStateType state_
Definition MzTabBase.h:74
bool isNaN() const
double value_
Definition MzTabBase.h:73
MzTabDouble(const double v)
~MzTabDouble()=default
bool operator==(const MzTabDouble &rhs) const
bool operator<(const MzTabDouble &rhs) const
void set(const double &value)
bool isNull() const
void fromCellString(const std::string &s)
void setNull(bool b)
double get() const
std::string toCellString() const
bool isInf() const
Definition MzTabBase.h:133
void set(const std::vector< MzTabInteger > &entries)
std::vector< MzTabInteger > entries_
Definition MzTabBase.h:151
void fromCellString(const std::string &s)
std::vector< MzTabInteger > get() const
std::string toCellString() const
Definition MzTabBase.h:100
MzTabCellStateType state_
Definition MzTabBase.h:129
bool isNaN() const
Int value_
Definition MzTabBase.h:128
MzTabInteger(const int v)
bool isNull() const
void fromCellString(const std::string &s)
void setNull(bool b)
std::string toCellString() const
void set(const Int &value)
bool isInf() const
Definition MzTabBase.h:242
void set(const std::vector< MzTabParameter > &parameters)
std::vector< MzTabParameter > get() const
std::vector< MzTabParameter > parameters_
Definition MzTabBase.h:261
void fromCellString(const std::string &s)
std::string toCellString() const
Definition MzTabBase.h:205
std::string getValue() const
std::string name_
Definition MzTabBase.h:237
std::string getCVLabel() const
std::string getName() const
void setCVLabel(const std::string &CV_label)
std::string getAccession() const
void setName(const std::string &name)
std::string accession_
Definition MzTabBase.h:236
void setValue(const std::string &value)
void setAccession(const std::string &accession)
std::string CV_label_
Definition MzTabBase.h:235
std::string value_
Definition MzTabBase.h:238
void fromCellString(const std::string &s)
std::string toCellString() const
Definition MzTabBase.h:291
void setMSFile(Size index)
void setSpecRef(const std::string &spec_ref)
Size ms_run_
Definition MzTabBase.h:315
std::string getSpecRef() const
std::string spec_ref_
Definition MzTabBase.h:316
void fromCellString(const std::string &s)
void setSpecRefFile(const std::string &spec_ref)
std::string toCellString() const
Definition MzTabBase.h:265
void setSeparator(char sep)
needed for e.g. ambiguity_members and GO accessions as these use ',' as separator while the others us...
std::vector< MzTabString > get() const
char sep_
Definition MzTabBase.h:287
std::vector< MzTabString > entries_
Definition MzTabBase.h:286
void set(const std::vector< MzTabString > &entries)
void fromCellString(const std::string &s)
std::string toCellString() const
Definition MzTabBase.h:179
std::string get() const
~MzTabString()=default
void set(const std::string &value)
bool isNull() const
std::string value_
Definition MzTabBase.h:199
MzTabString(const std::string &s)
void fromCellString(const std::string &s)
void setNull(bool b)
std::string toCellString() const
int Int
Signed integer type.
Definition Types.h:72
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
MzTabCellStateType
Base functionality to for MzTab data models.
Definition MzTabBase.h:31
@ SIZE_OF_MZTAB_CELLTYPE
Definition MzTabBase.h:36
@ MZTAB_CELLSTATE_NULL
Definition MzTabBase.h:33
@ MZTAB_CELLSTATE_INF
Definition MzTabBase.h:35
@ MZTAB_CELLSTATE_NAN
Definition MzTabBase.h:34
@ MZTAB_CELLSTATE_DEFAULT
Definition MzTabBase.h:32
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
MzTabParameter software
Definition MzTabBase.h:322
MzTabString url
Definition MzTabBase.h:341
MzTabString email
Definition MzTabBase.h:356
MzTabString full_name
Definition MzTabBase.h:339
std::pair< std::string, MzTabString > MzTabOptionalColumnEntry
Definition MzTabBase.h:202
MzTabString name
Definition MzTabBase.h:354
MzTabString label
Definition MzTabBase.h:338
MzTabParameter source
Definition MzTabBase.h:347
std::map< Size, MzTabParameter > disease
Definition MzTabBase.h:332
std::map< Size, MzTabString > setting
Definition MzTabBase.h:323
std::map< Size, MzTabParameter > tissue
Definition MzTabBase.h:330
MzTabString description
Definition MzTabBase.h:328
MzTabParameter detector
Definition MzTabBase.h:349
std::map< Size, MzTabParameter > cell_type
Definition MzTabBase.h:331
MzTabString affiliation
Definition MzTabBase.h:355
std::map< Size, MzTabParameter > custom
Definition MzTabBase.h:333
MzTabParameter name
Definition MzTabBase.h:346
MzTabString version
Definition MzTabBase.h:340
std::map< Size, MzTabParameter > species
Definition MzTabBase.h:329
std::map< Size, MzTabParameter > analyzer
Definition MzTabBase.h:348
Definition MzTabBase.h:337
Definition MzTabBase.h:353
Definition MzTabBase.h:345
Definition MzTabBase.h:327
Definition MzTabBase.h:321