OpenMS
Loading...
Searching...
No Matches
SwathFile.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: Hannes Roest $
7// --------------------------------------------------------------------------
8
9#pragma once
10
13#include <OpenMS/config.h>
17
18#include <vector>
19#include <memory>
20#include <limits>
21
22namespace OpenMS
23{
24 class ExperimentalSettings;
25 class IMSExperimentRandomAccess;
26
34 struct OPENMS_DLLAPI FAIMSSwathMapGroup
35 {
36 double faims_cv{std::numeric_limits<double>::quiet_NaN()};
37 std::vector<OpenSwath::SwathMap> swath_maps;
38 };
39
40 namespace Interfaces
41 {
42 class IMSDataConsumer;
43 }
44
45
58 class OPENMS_DLLAPI SwathFile :
59 public ProgressLogger
60 {
61public:
62
64 std::vector<OpenSwath::SwathMap> loadSplit(StringList file_list,
65 const std::string& tmp,
66 std::shared_ptr<ExperimentalSettings>& exp_meta,
67 const std::string& readoptions = "normal");
68
85 std::vector<OpenSwath::SwathMap> loadMzML(const std::string& file,
86 const std::string& tmp,
87 std::shared_ptr<ExperimentalSettings>& exp_meta,
88 const std::string& readoptions = "normal",
89 Interfaces::IMSDataConsumer* plugin_consumer = nullptr);
90
104 std::vector<OpenSwath::SwathMap> loadFromMSExperiment(const std::shared_ptr<PeakMap>& exp,
105 const std::string& tmp,
106 std::shared_ptr<ExperimentalSettings>& exp_meta,
107 const std::string& readoptions = "normal");
108
127 std::vector<FAIMSSwathMapGroup> loadFromMSExperimentByFAIMSCV(
128 PeakMap&& exp,
129 const std::string& tmp,
130 std::shared_ptr<ExperimentalSettings>& exp_meta,
131 const std::string& readoptions = "normal");
132
134 std::vector<OpenSwath::SwathMap> loadMzXML(const std::string& file,
135 const std::string& tmp,
136 std::shared_ptr<ExperimentalSettings>& exp_meta,
137 const std::string& readoptions = "normal");
138
140 std::vector<OpenSwath::SwathMap> loadSqMass(const std::string& file, std::shared_ptr<ExperimentalSettings>& /* exp_meta */);
141
142#ifdef WITH_OPENTIMS
152 std::vector<OpenSwath::SwathMap> loadBrukerTdf(const std::string& file,
153 const std::string& tmp,
154 std::shared_ptr<ExperimentalSettings>& exp_meta,
155 const std::string& readoptions);
156
158 std::vector<OpenSwath::SwathMap> loadBrukerTdf(const std::string& file,
159 std::shared_ptr<ExperimentalSettings>& exp_meta);
160#endif
161
162#ifdef WITH_THERMO_RAW
180 std::vector<OpenSwath::SwathMap> loadThermoRaw(const std::string& file,
181 const std::string& tmp,
182 std::shared_ptr<ExperimentalSettings>& exp_meta,
183 const std::string& readoptions = "normal",
184 Interfaces::IMSDataConsumer* plugin_consumer = nullptr);
185
186#endif
187
205 std::vector<OpenSwath::SwathMap> loadOnDisc(const std::shared_ptr<IMSExperimentRandomAccess>& experiment,
206 std::shared_ptr<ExperimentalSettings>& exp_meta,
207 Interfaces::IMSDataConsumer* plugin_consumer = nullptr);
208
227 std::vector<OpenSwath::SwathMap> loadOnDisc(const std::string& file,
228 std::shared_ptr<ExperimentalSettings>& exp_meta,
229 Interfaces::IMSDataConsumer* plugin_consumer = nullptr);
230
248 std::vector<FAIMSSwathMapGroup> loadOnDiscByFAIMSCV(const std::shared_ptr<IMSExperimentRandomAccess>& experiment,
249 std::shared_ptr<ExperimentalSettings>& exp_meta,
250 Interfaces::IMSDataConsumer* plugin_consumer = nullptr);
251
253 std::vector<FAIMSSwathMapGroup> loadOnDiscByFAIMSCV(const std::string& file,
254 std::shared_ptr<ExperimentalSettings>& exp_meta,
255 Interfaces::IMSDataConsumer* plugin_consumer = nullptr);
256
257protected:
258
260 std::vector<OpenSwath::SwathMap> buildOnDiscMaps_(const std::shared_ptr<IMSExperimentRandomAccess>& experiment,
261 const PeakMap& metadata,
262 const std::vector<Size>& indices);
263
266 const PeakMap& metadata,
267 ExperimentalSettings& exp_meta,
268 Interfaces::IMSDataConsumer* plugin_consumer);
269
271 std::shared_ptr<IMSExperimentRandomAccess> openOnDisc_(const std::string& file);
272
274 OpenSwath::SpectrumAccessPtr doCacheFile_(const std::string& in, const std::string& tmp, const std::string& tmp_fname,
275 const std::shared_ptr<PeakMap >& experiment_metadata);
276
278 std::shared_ptr< PeakMap > populateMetaData_(const std::string& file);
279
281 void countScansInSwath_(const std::vector<MSSpectrum>& exp,
282 std::vector<int>& swath_counter, int& nr_ms1_spectra,
283 std::vector<OpenSwath::SwathMap>& known_window_boundaries,
284 double TOLERANCE=1e-6);
285
286 };
287}
Description of the experimental settings.
Definition ExperimentalSettings.h:37
Random access to the spectra and chromatograms of an MS run that stays on disk.
Definition IMSExperimentRandomAccess.h:37
The interface of a consumer of spectra and chromatograms.
Definition IMSDataConsumer.h:46
In-Memory representation of a mass spectrometry run.
Definition MSExperiment.h:49
Base class for all classes that want to report their progress.
Definition ProgressLogger.h:28
File adapter for Swath files.
Definition SwathFile.h:60
std::shared_ptr< IMSExperimentRandomAccess > openOnDisc_(const std::string &file)
Opens file with the random-access backend for its type (see loadOnDisc(const std::string&,...
std::vector< OpenSwath::SwathMap > loadOnDisc(const std::shared_ptr< IMSExperimentRandomAccess > &experiment, std::shared_ptr< ExperimentalSettings > &exp_meta, Interfaces::IMSDataConsumer *plugin_consumer=nullptr)
SWATH maps that read the spectra on access from a random-access experiment ("onDisc")
void passOnDiscToPlugin_(IMSExperimentRandomAccess &experiment, const PeakMap &metadata, ExperimentalSettings &exp_meta, Interfaces::IMSDataConsumer *plugin_consumer)
Passes every spectrum to plugin_consumer; throws Exception::IllegalArgument if it modifies one.
std::vector< OpenSwath::SwathMap > loadSplit(StringList file_list, const std::string &tmp, std::shared_ptr< ExperimentalSettings > &exp_meta, const std::string &readoptions="normal")
Loads a Swath run from a list of split mzML files.
void countScansInSwath_(const std::vector< MSSpectrum > &exp, std::vector< int > &swath_counter, int &nr_ms1_spectra, std::vector< OpenSwath::SwathMap > &known_window_boundaries, double TOLERANCE=1e-6)
Counts the number of scans in a full Swath file (e.g. concatenated non-split file)
std::vector< OpenSwath::SwathMap > loadFromMSExperiment(const std::shared_ptr< PeakMap > &exp, const std::string &tmp, std::shared_ptr< ExperimentalSettings > &exp_meta, const std::string &readoptions="normal")
Loads a Swath run from a pre-loaded in-memory MSExperiment.
std::vector< OpenSwath::SwathMap > loadSqMass(const std::string &file, std::shared_ptr< ExperimentalSettings > &)
Loads a Swath run from a single sqMass file.
OpenSwath::SpectrumAccessPtr doCacheFile_(const std::string &in, const std::string &tmp, const std::string &tmp_fname, const std::shared_ptr< PeakMap > &experiment_metadata)
Cache a file to disk.
std::vector< OpenSwath::SwathMap > loadOnDisc(const std::string &file, std::shared_ptr< ExperimentalSettings > &exp_meta, Interfaces::IMSDataConsumer *plugin_consumer=nullptr)
Loads a Swath run with readoptions "onDisc": the file is indexed once and the spectra are read on acc...
std::vector< OpenSwath::SwathMap > loadMzML(const std::string &file, const std::string &tmp, std::shared_ptr< ExperimentalSettings > &exp_meta, const std::string &readoptions="normal", Interfaces::IMSDataConsumer *plugin_consumer=nullptr)
Loads a Swath run from a single mzML file.
std::vector< OpenSwath::SwathMap > loadMzXML(const std::string &file, const std::string &tmp, std::shared_ptr< ExperimentalSettings > &exp_meta, const std::string &readoptions="normal")
Loads a Swath run from a single mzXML file.
std::vector< OpenSwath::SwathMap > buildOnDiscMaps_(const std::shared_ptr< IMSExperimentRandomAccess > &experiment, const PeakMap &metadata, const std::vector< Size > &indices)
SpectrumAccessOnDisc maps for the spectra indices of experiment (metadata: all spectra without peaks)
std::vector< FAIMSSwathMapGroup > loadOnDiscByFAIMSCV(const std::shared_ptr< IMSExperimentRandomAccess > &experiment, std::shared_ptr< ExperimentalSettings > &exp_meta, Interfaces::IMSDataConsumer *plugin_consumer=nullptr)
Like loadOnDisc(), but partitions MS1 and MS2 spectra by FAIMS compensation voltage first.
std::shared_ptr< PeakMap > populateMetaData_(const std::string &file)
Only read the meta data from a file and use it to populate exp_meta.
std::vector< FAIMSSwathMapGroup > loadFromMSExperimentByFAIMSCV(PeakMap &&exp, const std::string &tmp, std::shared_ptr< ExperimentalSettings > &exp_meta, const std::string &readoptions="normal")
Partition a pre-loaded experiment once by FAIMS CV and convert each group to SWATH maps.
std::vector< FAIMSSwathMapGroup > loadOnDiscByFAIMSCV(const std::string &file, std::shared_ptr< ExperimentalSettings > &exp_meta, Interfaces::IMSDataConsumer *plugin_consumer=nullptr)
loadOnDiscByFAIMSCV() on a file; the backend is chosen as in loadOnDisc(const std::string&,...
std::vector< std::string > StringList
Vector of String.
Definition TypeAliases.h:39
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
std::vector< OpenSwath::SwathMap > swath_maps
Definition SwathFile.h:37
One FAIMS compensation-voltage group represented as ordinary OpenSWATH maps.
Definition SwathFile.h:35
std::shared_ptr< ISpectrumAccess > SpectrumAccessPtr
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:146