libpappsomspp
Library for mass spectrometry
timsmsrunreaderms2.h
Go to the documentation of this file.
1 /**
2  * \file pappsomspp/msrun/private/timsmsrunreaderms2.h
3  * \date 10/09/2019
4  * \author Olivier Langella
5  * \brief MSrun file reader for native Bruker TimsTOF specialized for MS2
6  * purpose
7  */
8 
9 /*******************************************************************************
10  * Copyright (c) 2019 Olivier Langella <Olivier.Langella@u-psud.fr>.
11  *
12  * This file is part of the PAPPSOms++ library.
13  *
14  * PAPPSOms++ is free software: you can redistribute it and/or modify
15  * it under the terms of the GNU General Public License as published by
16  * the Free Software Foundation, either version 3 of the License, or
17  * (at your option) any later version.
18  *
19  * PAPPSOms++ is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License
25  * along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
26  *
27  ******************************************************************************/
28 
29 
30 #pragma once
31 
32 #include "../../types.h"
33 #include "../../msfile/msfileaccessor.h"
34 #include "../../msfile/msfilereader.h"
35 #include "../../vendors/tims/timsdata.h"
36 
37 namespace pappso
38 {
39 
41 {
42  friend class MsFileAccessor;
43  /**
44  * @todo write docs
45  */
46  public:
47  TimsMsRunReaderMs2(MsRunIdCstSPtr &msrun_id_csp);
48  virtual ~TimsMsRunReaderMs2();
49 
50  virtual MassSpectrumSPtr
51  massSpectrumSPtr(std::size_t spectrum_index) override;
52  virtual MassSpectrumCstSPtr
53  massSpectrumCstSPtr(std::size_t spectrum_index) override;
54 
55  virtual QualifiedMassSpectrum
56  qualifiedMassSpectrum(std::size_t spectrum_index,
57  bool want_binary_data = true) const override;
58 
59  virtual void
60  readSpectrumCollection(SpectrumCollectionHandlerInterface &handler) override;
61 
62 
63  virtual pappso::XicCoordSPtr newXicCoordSPtrFromSpectrumIndex(
64  std::size_t spectrum_index, pappso::PrecisionPtr precision) const override;
65 
66  virtual pappso::XicCoordSPtr newXicCoordSPtrFromQualifiedMassSpectrum(
67  const pappso::QualifiedMassSpectrum &mass_spectrum,
68  pappso::PrecisionPtr precision) const override;
69 
70 
71  virtual void
72  readSpectrumCollectionByMsLevel(SpectrumCollectionHandlerInterface &handler,
73  unsigned int ms_level) override;
74 
75  virtual std::size_t spectrumListSize() const override;
76 
77  virtual bool hasScanNumbers() const override;
78 
79  void setMs2FilterCstSPtr(pappso::FilterInterfaceCstSPtr filter);
80  void setMs1FilterCstSPtr(pappso::FilterInterfaceCstSPtr filter);
81 
82  /** @brief enable or disable simple centroid filter on raw tims data for MS2
83  */
84  void setMs2BuiltinCentroid(bool centroid);
85 
86  /** @brief Get all the precursors id which match the values
87  * @return list of precursors Ids
88  */
89  virtual std::vector<std::size_t>
90  getPrecursorsIDFromMzRt(int charge, double mz_val, double rt_sec, double k0);
91 
92 
93  virtual bool releaseDevice() override;
94 
95  virtual bool acquireDevice() override;
96 
97  /** @brief give an access to the underlying raw data pointer
98  */
99  virtual TimsDataSp getTimsDataSPtr();
100 
101 
102  /** @brief retention timeline
103  * get retention times along the MSrun in seconds
104  * @return vector of retention times (seconds)
105  */
106  virtual std::vector<double> getRetentionTimeLine() override;
107 
108  virtual Trace getTicChromatogram() override;
109 
110  protected:
111  virtual void initialize() override;
112  virtual bool accept(const QString &file_name) const override;
113 
114  private:
115  TimsDataSp msp_timsData = nullptr;
116 
119  /** @brief enable builtin centroid on raw tims integers by default
120  */
121  bool m_builtinMs2Centroid = true;
122 };
123 
124 
125 } // namespace pappso
base class to read MSrun the only way to build a MsRunReader object is to use the MsRunReaderFactory
Definition: msrunreader.h:191
Class representing a fully specified mass spectrum.
interface to collect spectrums from the MsRunReader class
Definition: msrunreader.h:56
pappso::FilterInterfaceCstSPtr msp_ms2Filter
pappso::FilterInterfaceCstSPtr msp_ms1Filter
A simple container of DataPoint instances.
Definition: trace.h:147
#define PMSPP_LIB_DECL
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition: aa.cpp:39
std::shared_ptr< const MsRunId > MsRunIdCstSPtr
Definition: msrunid.h:44
std::shared_ptr< TimsData > TimsDataSp
shared pointer on a TimsData object
Definition: timsdata.h:46
std::shared_ptr< const MassSpectrum > MassSpectrumCstSPtr
Definition: massspectrum.h:55
std::shared_ptr< const FilterInterface > FilterInterfaceCstSPtr
std::shared_ptr< MassSpectrum > MassSpectrumSPtr
Definition: massspectrum.h:54
std::shared_ptr< XicCoord > XicCoordSPtr
Definition: xiccoord.h:41