libpappsomspp
Library for mass spectrometry
mzrange.cpp
Go to the documentation of this file.
1
/**
2
* \file pappsomspp/mass_range.cpp
3
* \date 4/3/2015
4
* \author Olivier Langella
5
* \brief object to handle a mass range (an mz value + or - some delta)
6
*/
7
8
/*******************************************************************************
9
* Copyright (c) 2015 Olivier Langella <Olivier.Langella@moulon.inra.fr>.
10
*
11
* This file is part of the PAPPSOms++ library.
12
*
13
* PAPPSOms++ is free software: you can redistribute it and/or modify
14
* it under the terms of the GNU General Public License as published by
15
* the Free Software Foundation, either version 3 of the License, or
16
* (at your option) any later version.
17
*
18
* PAPPSOms++ is distributed in the hope that it will be useful,
19
* but WITHOUT ANY WARRANTY; without even the implied warranty of
20
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
* GNU General Public License for more details.
22
*
23
* You should have received a copy of the GNU General Public License
24
* along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
25
*
26
* Contributors:
27
* Olivier Langella <Olivier.Langella@moulon.inra.fr> - initial API and
28
*implementation
29
******************************************************************************/
30
31
#include "
mzrange.h
"
32
#include "
exception/exceptionnotpossible.h
"
33
#include <QStringList>
34
#include <cmath>
35
#include <QDebug>
36
37
38
namespace
pappso
39
{
40
41
/// Constructs MzRange object using 1 precision (the same for lower or upper
42
/// range).
43
MzRange::MzRange
(
pappso_double
mz,
PrecisionPtr
precision)
44
: m_mz(
mz
), m_delta(precision->delta(m_mz))
45
{
46
}
47
48
49
//! Construct a MzRange object with \p mz and \p delta
50
/*!
51
*
52
* \p delta should be construed as the whole tolerance such that \c lower()
53
* returns \c m_mz - \c m_delta and \c upper() returns \c m_mz + \c m_delta.
54
*
55
*/
56
MzRange::MzRange
(
pappso_double
mz,
pappso_double
delta)
57
: m_mz(
mz
), m_delta(delta)
58
{
59
}
60
61
62
/// Constructs MzRange object using 2 different precisions: lower and upper.
63
MzRange::MzRange
(
pappso_double
mz,
64
PrecisionPtr
precision_lower,
65
PrecisionPtr
precision_upper)
66
{
67
68
m_delta
= (precision_lower->
delta
(
mz
) + precision_upper->
delta
(
mz
)) / 2;
69
m_mz
=
mz
- precision_lower->
delta
(
mz
) +
m_delta
;
70
}
71
72
73
MzRange::MzRange
(
const
MzRange
&other)
74
: m_mz(other.m_mz), m_delta(other.m_delta)
75
{
76
// std::cout << "MzRange::MzRange (const MzRange & other)" << endl;
77
}
78
79
80
MzRange::~MzRange
()
81
{
82
83
}
84
85
86
MzRange
&
87
MzRange::operator=
(
const
MzRange
&other)
88
{
89
m_mz
= other.
m_mz
;
90
m_delta
= other.
m_delta
;
91
92
return
*
this
;
93
}
94
95
96
pappso_double
97
MzRange::getMz
()
const
98
{
99
return
m_mz
;
100
}
101
102
bool
103
MzRange::contains
(
pappso_double
mz)
const
104
{
105
// qDebug() << " " << std::abs(mz - m_mz) << " m_delta:" << m_delta;
106
if
(std::abs(
mz
-
m_mz
) <=
m_delta
)
107
{
108
return
true
;
109
}
110
return
false
;
111
}
112
113
QString
114
MzRange::toString
()
const
115
{
116
// QString s = "mz=" + QString::number(m_mz) + " delta=" +
117
// QString::number(m_delta);
118
return
QString(
"mz=%1 delta=%2 : %3 < %4 < %5"
)
119
.arg(
m_mz
)
120
.arg(
m_delta
)
121
.arg(
lower
())
122
.arg(
m_mz
)
123
.arg(
upper
());
124
}
125
126
}
// namespace pappso
pappso::pappso_double
double pappso_double
A type definition for doubles.
Definition:
types.h:69
pappso::MzRange::lower
pappso_double lower() const
Definition:
mzrange.h:114
pappso::MzRange::toString
QString toString() const
Definition:
mzrange.cpp:135
pappso::MzRange::upper
pappso_double upper() const
Definition:
mzrange.h:120
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks
Definition:
aa.cpp:39
pappso::MzRange::operator=
MzRange & operator=(const MzRange &other)
Definition:
mzrange.cpp:108
pappso::MzRange::m_delta
pappso_double m_delta
Definition:
mzrange.h:91
pappso::MzRange::contains
bool contains(pappso_double) const
Definition:
mzrange.cpp:124
pappso::MzRange
Definition:
mzrange.h:67
pappso::MzRange::m_mz
pappso_double m_mz
Definition:
mzrange.h:90
pappso::MzRange::MzRange
MzRange(pappso_double mz, PrecisionPtr precision)
Definition:
mzrange.cpp:64
pappso::PrecisionPtr
const PrecisionBase * PrecisionPtr
Definition:
precision.h:143
pappso::MzRange::~MzRange
virtual ~MzRange()
Definition:
mzrange.cpp:101
pappso::PrecisionBase::delta
virtual pappso_double delta(pappso_double value) const =0
pappso::PrecisionBase
Definition:
precision.h:65
pappso::MzRange::getMz
pappso_double getMz() const
Definition:
mzrange.cpp:118
mzrange.h
pappso::PrecisionUnit::mz
@ mz
exceptionnotpossible.h
pappsomspp
mzrange.cpp
Generated on Tue Aug 25 2020 11:13:48 for libpappsomspp by
1.8.18