libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
xiccoord.h
Go to the documentation of this file.
1/**
2 * \file pappsomspp/msrun/xiccoord/xiccoord.h
3 * \date 22/04/2021
4 * \author Olivier Langella
5 * \brief XIC coordinate in MSrun
6 */
7
8
9/*******************************************************************************
10 * Copyright (c) 2021 Olivier Langella
11 *<Olivier.Langella@universite-paris-saclay.fr>.
12 *
13 * This file is part of the PAPPSOms++ library.
14 *
15 * PAPPSOms++ is free software: you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by
17 * the Free Software Foundation, either version 3 of the License, or
18 * (at your option) any later version.
19 *
20 * PAPPSOms++ is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * You should have received a copy of the GNU General Public License
26 * along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
27 *
28 ******************************************************************************/
29
30#pragma once
31
32#include "../../exportinmportconfig.h"
33#include "../../mzrange.h"
34#include "../../xic/xic.h"
35#include <memory>
36
37namespace pappso
38{
39
40
41struct XicCoord;
42
43typedef std::shared_ptr<XicCoord> XicCoordSPtr;
44
45
46/** \def XicCoordParam xic coordinate parameter
47 *
48 */
49enum class XicCoordParam : std::int8_t
50{
51 TimsTofIonMobilityScanNumberStart, ///< TimsTOF specific ion mobility start
52 ///< range
53 TimsTofIonMobilityScanNumberStop, ///< TimsTOF specific ion mobility stop
54 ///< range
55};
56
57
58/** @brief coordinates of the XIC to extract and the resulting XIC after
59 * extraction
60 *
61 * to extract a XIC, we need basically the mass to extract it
62 * this structure is meant to extact a XIC quickly and not to maintain
63 * information about it : no peptide, no scan number, no retention time...
64 *
65 */
67{
68 /**
69 * Default constructor
70 */
71 XicCoord();
72
73 /**
74 * Copy constructor
75 *
76 * @param other TODO
77 */
78 XicCoord(const XicCoord &other);
79
80 /**
81 * Destructor
82 */
83 virtual ~XicCoord();
84
85
86 /** @brief intialize the XIC and make a deep copy of object
87 */
88 virtual XicCoordSPtr initializeAndClone() const;
89
90 /** @brief compute a new XIC coord as the sum of the given one
91 */
92 virtual XicCoordSPtr addition(XicCoordSPtr &to_add) const;
93
94
95 /** @brief compute a new xic coord as a product by
96 */
97 virtual XicCoordSPtr multiplyBy(double number) const;
98
99
100 /** @brief compute a new xic coord as a division by
101 */
102 virtual XicCoordSPtr divideBy(double number) const;
103
104
105 /** @brief reset to zero
106 */
107 virtual void reset();
108
109 /** @brief get a description of the XIC coordinate in a string
110 */
111 virtual QString toString() const;
112
113 /** @brief get a specific XIC coordinate parameter
114 */
115 virtual const QVariant getParam(XicCoordParam param [[maybe_unused]]) const;
116
117
118 /** @brief the mass to extract
119 * */
121
122 /** @brief the targeted retention time to extract around
123 * intended in seconds, and related to one msrun. This is not a reference,
124 * just to save memory and cpu usage when extracting xic
125 */
126 double rtTarget = 0;
127
128 /** @brief extracted xic
129 */
130 XicSPtr xicSptr = nullptr;
131};
132} // namespace pappso
#define PMSPP_LIB_DECL
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition aa.cpp:39
XicCoordParam
Definition xiccoord.h:50
std::shared_ptr< Xic > XicSPtr
Definition xic.h:39
std::shared_ptr< XicCoord > XicCoordSPtr
Definition xiccoord.h:43
coordinates of the XIC to extract and the resulting XIC after extraction
Definition xiccoord.h:67
MzRange mzRange
the mass to extract
Definition xiccoord.h:120