40 qDebug() <<
"QCPSpectrum::QCPSpectrum begin";
42 setFocusPolicy(Qt::ClickFocus);
53 QCPMarginGroup *group =
new QCPMarginGroup(
this);
54 this->axisRect()->setMarginGroup(QCP::msLeft | QCP::msRight, group);
58 _p_peak_bars->setWidthType(QCPBars::WidthType::wtAbsolute);
72 SIGNAL(rangeChanged(QCPRange)),
77 std::vector<PeptideIon> all_ion_list = {
92 qDebug() <<
"SpectrumWidget::setVisibleMassDelta 5";
96 QCPBars *p_peak_bars =
new QCPBars(xAxis, yAxis);
97 p_peak_bars->setWidthType(QCPBars::WidthType::wtAbsolute);
102 p_peak_bars->setVisible(
true);
104 std::pair<PeptideIon, QCPBars *>(ion_type, p_peak_bars));
106 qDebug() <<
"SpectrumWidget::setVisibleMassDelta visible ?";
107 setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);
117 this->plotLayout()->setRowSpacing(0);
121 this->setAutoAddPlottableToLegend(
false);
126 QCPScatterStyle(QCPScatterStyle::ssDisc, 4.0));
138 SIGNAL(rangeChanged(QCPRange)),
146 qDebug() <<
"QCPSpectrum::QCPSpectrum end";
159 if((spectrum !=
nullptr) && (spectrum->size() != 0))
169 _mz_range.lower = spectrum->front().x - 1;
170 _mz_range.upper = spectrum->back().x + 1;
215 qDebug() <<
"QCPSpectrum::setMzRangeChanged _mz_range.lower"
229 xAxis->setRange(range);
241 _p_peak_bars->setData(QVector<double>(), QVector<double>());
249 pair_ion_bar.second->setData(QVector<double>(), QVector<double>());
250 pair_ion_bar.second->data().clear();
271 if(event->key() == Qt::Key_Control)
275 qDebug() <<
"QCPSpectrum::keyPressEvent end";
281 if(event->key() == Qt::Key_Control)
285 qDebug() <<
"QCPSpectrum::keyReleaseEvent end";
296 _old_y = yAxis->pixelToCoord(event->y());
328 this->yAxis->scaleRange(
_old_y /
y, 0);
333 this->xAxis->moveRange(xAxis->pixelToCoord(
_old_x) -
334 xAxis->pixelToCoord(event->x()));
346 xAxis->pixelToCoord(10) - xAxis->pixelToCoord(8);
360 p_peak_match =
nullptr;
366 if((peak.x > min) && (peak.x <
max))
368 if(p_peak_match ==
nullptr)
370 p_peak_match = &peak;
374 if(fabs(
mz - peak.x) < fabs(
mz - p_peak_match->
x))
376 p_peak_match = &peak;
393 p_peak_match =
nullptr;
399 if((peak.x > min) && (peak.x <
max))
401 if(p_peak_match ==
nullptr)
403 p_peak_match = &peak;
407 if(p_peak_match->
y < peak.y)
409 p_peak_match = &peak;
448 const std::vector<pappso::PeptideNaturalIsotopeAverageSp> &isotope_mass_list,
452 ((
pappso_double)1.0 / isotope_mass_list.at(0).get()->getIntensityRatio()) *
457 peptide.get()->getIntensityRatio() *
Class to represent a mass spectrum.
virtual const PeptideNaturalIsotopeAverageSp & getPeptideNaturalIsotopeAverageSp() const
PeptideIon getPeptideIonType() const
const DataPoint & getPeak() const
static const QColor getPeptideIonColor(PeptideIon ion_type)
QCPGraph * _p_delta_graph
virtual void keyPressEvent(QKeyEvent *event) override
QCPAxisRect * _p_delta_axis_rect
MassSpectrumWidget * _parent
QCPRange _mass_delta_range
void addPeakIonIsotopeMatch(const PeakIonIsotopeMatch &peak_ion_match)
QCPSpectrum(MassSpectrumWidget *parent, bool visible)
virtual void mouseReleaseEvent(QMouseEvent *event) override
QCPRange _intensity_range
void addMassDelta(const PeakIonIsotopeMatch &peak_ion_match)
void getNearestPeakBetween(pappso_double mz, pappso_double mouse_mz_range) const
virtual void mouseMoveEvent(QMouseEvent *event) override
pappso::pappso_double _old_x
void getMostIntensePeakBetween(pappso_double mz, pappso_double mouse_mz_range) const
void setSpectrumP(const MassSpectrum *spectrum)
void addMs1IsotopePattern(const std::vector< pappso::PeptideNaturalIsotopeAverageSp > &isotope_mass_list, pappso_double intensity)
std::map< PeptideIon, QCPBars * > _map_ion_type_bars
virtual void keyReleaseEvent(QKeyEvent *event) override
QCPBars * _p_peak_bars_isotope
const MassSpectrum * _p_spectrum
virtual void mousePressEvent(QMouseEvent *event) override
Q_SLOT void setMzRangeChanged(QCPRange range)
pappso::pappso_double _old_y
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
PeptideIon
PeptideIon enum defines all types of ions (Nter or Cter)
@ astar
Nter aldimine ions + NH3 loss.
@ ystar
Cter amino ions + NH3 loss.
@ yo
Cter amino ions + H2O loss.
@ bstar
Nter acylium ions + NH3 loss.
@ bo
Nter acylium ions + H2O loss.
@ ao
Nter aldimine ions + H2O loss.
double pappso_double
A type definition for doubles.
std::shared_ptr< const PeptideNaturalIsotopeAverage > PeptideNaturalIsotopeAverageSp
@ max
maximum of intensities