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
MzRange
&
86
MzRange::operator=
(
const
MzRange
&other)
87
{
88
m_mz
= other.
m_mz
;
89
m_delta
= other.
m_delta
;
90
91
return
*
this
;
92
}
93
94
95
pappso_double
96
MzRange::getMz
()
const
97
{
98
return
m_mz
;
99
}
100
101
bool
102
MzRange::contains
(
pappso_double
mz)
const
103
{
104
// qDebug() << " " << std::abs(mz - m_mz) << " m_delta:" << m_delta;
105
if
(std::abs(
mz
-
m_mz
) <=
m_delta
)
106
{
107
return
true
;
108
}
109
return
false
;
110
}
111
112
QString
113
MzRange::toString
()
const
114
{
115
// QString s = "mz=" + QString::number(m_mz) + " delta=" +
116
// QString::number(m_delta);
117
return
QString(
"mz=%1 delta=%2 : %3 < %4 < %5"
)
118
.arg(
m_mz
)
119
.arg(
m_delta
)
120
.arg(
lower
())
121
.arg(
m_mz
)
122
.arg(
upper
());
123
}
124
125
}
// namespace pappso
pappso::pappso_double
double pappso_double
A type definition for doubles.
Definition:
types.h:48
pappso::MzRange::lower
pappso_double lower() const
Definition:
mzrange.h:72
pappso::MzRange::toString
QString toString() const
Definition:
mzrange.cpp:113
pappso::MzRange::upper
pappso_double upper() const
Definition:
mzrange.h:78
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition:
aa.cpp:39
pappso::MzRange::operator=
MzRange & operator=(const MzRange &other)
Definition:
mzrange.cpp:86
pappso::MzRange::m_delta
pappso_double m_delta
Definition:
mzrange.h:49
pappso::MzRange::contains
bool contains(pappso_double) const
Definition:
mzrange.cpp:102
pappso::MzRange
Definition:
mzrange.h:46
pappso::MzRange::m_mz
pappso_double m_mz
Definition:
mzrange.h:48
pappso::MzRange::MzRange
MzRange(pappso_double mz, PrecisionPtr precision)
Definition:
mzrange.cpp:43
pappso::MzRange::~MzRange
virtual ~MzRange()
Definition:
mzrange.cpp:80
pappso::PrecisionBase::delta
virtual pappso_double delta(pappso_double value) const =0
pappso::PrecisionBase
Definition:
precision.h:44
pappso::MzRange::getMz
pappso_double getMz() const
Definition:
mzrange.cpp:96
pappso::DataKind::unset
@ unset
not set
mzrange.h
exceptionnotpossible.h
pappsomspp
mzrange.cpp
Generated on Sat Dec 12 2020 12:19:22 for libpappsomspp by
1.8.20