OpenMS
openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.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: Hannes Roest $
6 // $Authors: Darren Kessner, Hannes Roest, Witold Wolski$
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
11 #include <string>
12 #include <vector>
13 #include <memory>
14 
15 #include <OpenMS/OPENSWATHALGO/OpenSwathAlgoConfig.h>
16 
17 namespace OpenSwath
18 {
41  struct OPENSWATHALGO_DLLAPI OSBinaryDataArray
42  {
44  //DataProcessingPtr dataProcessingPtr;
45 
47  std::vector<double> data;
48 
50  std::string description;
51  };
53  typedef std::shared_ptr<BinaryDataArray> BinaryDataArrayPtr;
54 
56  struct OPENSWATHALGO_DLLAPI OSChromatogramMeta
57  {
59  std::size_t index;
61  std::string id;
63  index()
64  {
65  }
66 
67  };
69  typedef std::shared_ptr<ChromatogramMeta> ChromatogramMetaPtr;
70 
72  struct OPENSWATHALGO_DLLAPI OSChromatogram
73  {
74 private:
76  std::size_t defaultArrayLength;
77 
79  //DataProcessingPtr dataProcessingPtr;
81  //Precursor precursor;
83  //Product product;
84 
86  std::vector<BinaryDataArrayPtr> binaryDataArrayPtrs;
87 public:
88 
90  defaultArrayLength(2),
91  binaryDataArrayPtrs(defaultArrayLength)
92  {
93  initvec();
94  }
95 
96 private:
97 
98  void initvec()
99  {
100  for (std::size_t i = 0; i < defaultArrayLength; ++i)
101  {
103  binaryDataArrayPtrs[i] = empty;
104  }
105  }
106 
107 public:
110  {
111  return binaryDataArrayPtrs[0];
112  }
113 
116  {
117  binaryDataArrayPtrs[0] = data;
118  }
119 
122  {
123  return binaryDataArrayPtrs[1];
124  }
125 
128  {
129  binaryDataArrayPtrs[1] = data;
130  }
131 
133  const std::vector<BinaryDataArrayPtr> & getDataArrays() const
134  {
135  return binaryDataArrayPtrs;
136  }
137 
139  std::vector<BinaryDataArrayPtr> & getDataArrays()
140  {
141  return binaryDataArrayPtrs;
142  }
143 
146  void setDataArrays(std::vector<BinaryDataArrayPtr>& val)
147  {
148  binaryDataArrayPtrs = val;
149  }
150 
151  };
153  typedef std::shared_ptr<Chromatogram> ChromatogramPtr;
154 
156  struct OPENSWATHALGO_DLLAPI OSSpectrumMeta
157  {
159  size_t index;
160 
162  std::string id;
163 
164  double RT;
165 
166  int ms_level;
167 
169  index(0)
170  {
171  }
172 
174  struct RTLess
175  {
176  inline bool operator()(const OSSpectrumMeta& a, const OSSpectrumMeta& b) const
177  {
178  return a.RT < b.RT;
179  }
180  };
181 
182  };
184  typedef std::shared_ptr<SpectrumMeta> SpectrumMetaPtr;
185 
187  struct OPENSWATHALGO_DLLAPI OSSpectrum
188  {
189 private:
191  std::size_t defaultArrayLength;
192 
194  std::vector<BinaryDataArrayPtr> binaryDataArrayPtrs;
195 
196 public:
198  defaultArrayLength(2),
199  binaryDataArrayPtrs(defaultArrayLength)
200  {
201  initvec();
202  }
203 
204 private:
205 
206  void initvec()
207  {
208  for (std::size_t i = 0; i < defaultArrayLength; ++i)
209  {
211  binaryDataArrayPtrs[i] = empty;
212  }
213  }
214 
215 public:
216 
219  {
220  return binaryDataArrayPtrs[0];
221  }
222 
225  {
226  binaryDataArrayPtrs[0] = data;
227  }
228 
231  {
232  return binaryDataArrayPtrs[1];
233  }
234 
237  {
238  binaryDataArrayPtrs[1] = data;
239  }
240 
242  {
243  data->description = "Ion Mobility";
244  binaryDataArrayPtrs.push_back(data);
245  }
246 
249  {
250  // The array name starts with "Ion Mobility", but may carry additional
251  // information such as the actual unit in which it was measured (seconds,
252  // milliseconds, volt-second per square centimeter). We currently ignore
253  // the unit but return the correct array.
254  // For diaPASEF data converted with proteowizard ion mobility arrays are stored in "inverse reduced ion mobility"
255  for (auto & bda : binaryDataArrayPtrs)
256  {
257  if (bda->description.find("Ion Mobility") == 0)
258  {
259  return bda;
260  }
261  else if (bda->description.find("mean inverse reduced ion mobility array") == 0)
262  {
263  return bda;
264  }
265  }
266  return BinaryDataArrayPtr(); // return null
267  }
268 
270  const std::vector<BinaryDataArrayPtr> & getDataArrays() const
271  {
272  return binaryDataArrayPtrs;
273  }
274 
276  std::vector<BinaryDataArrayPtr> & getDataArrays()
277  {
278  return binaryDataArrayPtrs;
279  }
280 
283  void setDataArrays(std::vector<BinaryDataArrayPtr>& val)
284  {
285  binaryDataArrayPtrs = val;
286  }
287 
288  };
290  typedef std::shared_ptr<Spectrum> SpectrumPtr;
291 } //end Namespace OpenSwath
292 
Definition: Scoring.h:18
std::shared_ptr< Chromatogram > ChromatogramPtr
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:153
OSBinaryDataArray BinaryDataArray
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:52
std::vector< double > data
this optional attribute may reference the 'id' attribute of the appropriate dataProcessing.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:47
std::string description
(optional) data description for non-standard arrays.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:50
std::shared_ptr< ChromatogramMeta > ChromatogramMetaPtr
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:69
OSSpectrum Spectrum
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:289
std::shared_ptr< Spectrum > SpectrumPtr
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:290
std::shared_ptr< BinaryDataArray > BinaryDataArrayPtr
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:53
OSChromatogramMeta ChromatogramMeta
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:68
std::shared_ptr< SpectrumMeta > SpectrumMetaPtr
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:184
OSChromatogram Chromatogram
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:152
OSSpectrumMeta SpectrumMeta
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:183
The datastructures used by the OpenSwath interfaces.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:42
Identifying information for a chromatogram.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:57
OSChromatogramMeta()
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:62
std::size_t index
the zero-based, consecutive index of the chromatogram in the ChromatogramList.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:59
std::string id
a unique identifier for this chromatogram.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:61
A single chromatogram.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:73
void setIntensityArray(BinaryDataArrayPtr data)
set intensity array
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:127
std::size_t defaultArrayLength
default length of binary data arrays contained in this element.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:76
void setTimeArray(BinaryDataArrayPtr data)
set time array
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:115
std::vector< BinaryDataArrayPtr > binaryDataArrayPtrs
this attribute can optionally reference the 'id' of the appropriate dataProcessing.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:86
BinaryDataArrayPtr getIntensityArray()
get intensity array (may be null)
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:121
std::vector< BinaryDataArrayPtr > & getDataArrays()
mutable access to the underlying data arrays
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:139
void initvec()
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:98
const std::vector< BinaryDataArrayPtr > & getDataArrays() const
non-mutable access to the underlying data arrays
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:133
void setDataArrays(std::vector< BinaryDataArrayPtr > &val)
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:146
OSChromatogram()
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:89
BinaryDataArrayPtr getTimeArray()
get time array (may be null)
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:109
Comparator for the retention time.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:175
bool operator()(const OSSpectrumMeta &a, const OSSpectrumMeta &b) const
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:176
Identifying information for a spectrum.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:157
size_t index
the zero-based, consecutive index of the spectrum in the SpectrumList.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:159
OSSpectrumMeta()
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:168
int ms_level
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:166
double RT
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:164
std::string id
a unique identifier for this spectrum.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:162
The structure that captures the generation of a peak list (including the underlying acquisitions)
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:188
void setIntensityArray(BinaryDataArrayPtr data)
set intensity array
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:236
std::size_t defaultArrayLength
default length of binary data arrays contained in this element.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:191
std::vector< BinaryDataArrayPtr > binaryDataArrayPtrs
list of binary data arrays.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:194
BinaryDataArrayPtr getDriftTimeArray() const
get drift time array (may be null)
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:248
BinaryDataArrayPtr getMZArray() const
get m/z array (may be null)
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:218
OSSpectrum()
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:197
std::vector< BinaryDataArrayPtr > & getDataArrays()
mutable access to the underlying data arrays
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:276
BinaryDataArrayPtr getIntensityArray() const
get intensity array (may be null)
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:230
void initvec()
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:206
void setMZArray(BinaryDataArrayPtr data)
set m/z array
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:224
void setDriftTimeArray(BinaryDataArrayPtr data)
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:241
const std::vector< BinaryDataArrayPtr > & getDataArrays() const
non-mutable access to the underlying data arrays
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:270
void setDataArrays(std::vector< BinaryDataArrayPtr > &val)
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:283