libpappsomspp
Library for mass spectrometry
qcpspectrum.h
Go to the documentation of this file.
1 /**
2  * \file pappsomspp/widget/spectrumwidget/qcpspectrum.h
3  * \date 31/12/2017
4  * \author Olivier Langella
5  * \brief Custom plot derivative to plot a spectrum
6  */
7 
8 
9 /*******************************************************************************
10  * Copyright (c) 2017 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  * Contributors:
28  * Olivier Langella <Olivier.Langella@u-psud.fr> - initial API and
29  *implementation
30  ******************************************************************************/
31 
32 
33 #pragma once
34 
35 
36 #include <qcustomplot.h>
37 #include "../../psm/peakionisotopematch.h"
38 #include "../../types.h"
39 
40 namespace pappso
41 {
42 
43 class MassSpectrumWidget;
44 
45 class QCPSpectrum : public QCustomPlot
46 {
47  Q_OBJECT
48  protected:
49  friend class MassSpectrumWidget;
50  QCPSpectrum(MassSpectrumWidget *parent, bool visible);
51  ~QCPSpectrum();
52 
53  protected:
54  void clearData();
55  void rescale();
56  void setSpectrumP(const MassSpectrum *spectrum);
57  void addMassDelta(const PeakIonIsotopeMatch &peak_ion_match);
58  void
59  addMs1IsotopePattern(const std::vector<pappso::PeptideNaturalIsotopeAverageSp>
60  &isotope_mass_list,
61  pappso_double intensity);
62  void addPeakIonIsotopeMatch(const PeakIonIsotopeMatch &peak_ion_match);
63  virtual void mouseMoveEvent(QMouseEvent *event) override;
64  virtual void mousePressEvent(QMouseEvent *event) override;
65  virtual void mouseReleaseEvent(QMouseEvent *event) override;
66  virtual void keyPressEvent(QKeyEvent *event) override;
67  virtual void keyReleaseEvent(QKeyEvent *event) override;
68 
69  private:
71  pappso_double mouse_mz_range) const;
73  pappso_double mouse_mz_range) const;
74 
75  private:
76  Q_SLOT void setMzRangeChanged(QCPRange range);
77 
78  private:
80  const MassSpectrum *_p_spectrum = nullptr;
81  QCPRange _mz_range;
82  QCPRange _intensity_range;
83  QCPRange _mass_delta_range;
84  QCPBars *_p_peak_bars;
85  QCPBars *_p_peak_bars_isotope;
86  std::map<PeptideIon, QCPBars *> _map_ion_type_bars;
87  QCPAxisRect *_p_delta_axis_rect;
88  QCPGraph *_p_delta_graph;
89  double _bar_width = 0.5;
90  bool _click = false;
91  bool _control_key = false;
94 };
95 
96 
97 } // namespace pappso
pappso::pappso_double
double pappso_double
A type definition for doubles.
Definition: types.h:69
pappso::QCPSpectrum::setSpectrumP
void setSpectrumP(const MassSpectrum *spectrum)
Definition: qcpspectrum.cpp:153
pappso::QCPSpectrum::mouseReleaseEvent
virtual void mouseReleaseEvent(QMouseEvent *event) override
Definition: qcpspectrum.cpp:302
pappso::QCPSpectrum::_map_ion_type_bars
std::map< PeptideIon, QCPBars * > _map_ion_type_bars
Definition: qcpspectrum.h:107
pappso::QCPSpectrum::mousePressEvent
virtual void mousePressEvent(QMouseEvent *event) override
Definition: qcpspectrum.cpp:289
pappso::QCPSpectrum::_old_x
pappso::pappso_double _old_x
Definition: qcpspectrum.h:113
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition: aa.cpp:39
pappso::MassSpectrum
Class to represent a mass spectrum.
Definition: massspectrum.h:92
pappso::QCPSpectrum::_control_key
bool _control_key
Definition: qcpspectrum.h:112
pappso::QCPSpectrum::clearData
void clearData()
Definition: qcpspectrum.cpp:238
pappso::QCPSpectrum::keyReleaseEvent
virtual void keyReleaseEvent(QKeyEvent *event) override
Definition: qcpspectrum.cpp:279
pappso::QCPSpectrum::QCPSpectrum
QCPSpectrum(MassSpectrumWidget *parent, bool visible)
Definition: qcpspectrum.cpp:37
pappso::MassSpectrumWidget
Definition: massspectrumwidget.h:69
pappso::QCPSpectrum::_parent
MassSpectrumWidget * _parent
Definition: qcpspectrum.h:100
pappso::QCPSpectrum::keyPressEvent
virtual void keyPressEvent(QKeyEvent *event) override
Definition: qcpspectrum.cpp:269
pappso::QCPSpectrum::_p_delta_graph
QCPGraph * _p_delta_graph
Definition: qcpspectrum.h:109
pappso::QCPSpectrum::getNearestPeakBetween
void getNearestPeakBetween(pappso_double mz, pappso_double mouse_mz_range) const
Definition: qcpspectrum.cpp:354
pappso::QCPSpectrum::MassSpectrumWidget
friend class MassSpectrumWidget
Definition: qcpspectrum.h:70
pappso::QCPSpectrum::_click
bool _click
Definition: qcpspectrum.h:111
pappso::QCPSpectrum::_bar_width
double _bar_width
Definition: qcpspectrum.h:110
pappso::QCPSpectrum::_p_peak_bars
QCPBars * _p_peak_bars
Definition: qcpspectrum.h:105
pappso::QCPSpectrum::_intensity_range
QCPRange _intensity_range
Definition: qcpspectrum.h:103
pappso::QCPSpectrum::_p_delta_axis_rect
QCPAxisRect * _p_delta_axis_rect
Definition: qcpspectrum.h:108
pappso::QCPSpectrum::~QCPSpectrum
~QCPSpectrum()
Definition: qcpspectrum.cpp:148
pappso::QCPSpectrum::addMs1IsotopePattern
void addMs1IsotopePattern(const std::vector< pappso::PeptideNaturalIsotopeAverageSp > &isotope_mass_list, pappso_double intensity)
Definition: qcpspectrum.cpp:447
pappso::QCPSpectrum::_p_spectrum
const MassSpectrum * _p_spectrum
Definition: qcpspectrum.h:101
pappso::QCPSpectrum::addPeakIonIsotopeMatch
void addPeakIonIsotopeMatch(const PeakIonIsotopeMatch &peak_ion_match)
Definition: qcpspectrum.cpp:440
pappso::QCPSpectrum::getMostIntensePeakBetween
void getMostIntensePeakBetween(pappso_double mz, pappso_double mouse_mz_range) const
Definition: qcpspectrum.cpp:387
pappso::QCPSpectrum::setMzRangeChanged
Q_SLOT void setMzRangeChanged(QCPRange range)
Definition: qcpspectrum.cpp:213
pappso::QCPSpectrum::_mass_delta_range
QCPRange _mass_delta_range
Definition: qcpspectrum.h:104
pappso::QCPSpectrum::_p_peak_bars_isotope
QCPBars * _p_peak_bars_isotope
Definition: qcpspectrum.h:106
pappso::QCPSpectrum::addMassDelta
void addMassDelta(const PeakIonIsotopeMatch &peak_ion_match)
Definition: qcpspectrum.cpp:419
pappso::QCPSpectrum::_old_y
pappso::pappso_double _old_y
Definition: qcpspectrum.h:114
pappso::QCPSpectrum::mouseMoveEvent
virtual void mouseMoveEvent(QMouseEvent *event) override
Definition: qcpspectrum.cpp:311
pappso::QCPSpectrum::rescale
void rescale()
Definition: qcpspectrum.cpp:184
pappso::QCPSpectrum::_mz_range
QCPRange _mz_range
Definition: qcpspectrum.h:102