Loading...
Searching...
No Matches
pappso::MassSpectrum Class Reference

Class to represent a mass spectrum. More...

`#include <massspectrum.h>`

Inheritance diagram for pappso::MassSpectrum:

## Public Member Functions

| MassSpectrum ()
| MassSpectrum (std::vector< std::pair< pappso_double, pappso_double > > &data_point_vector)
| MassSpectrum (std::vector< DataPoint > &data_point_vector)
| MassSpectrum (const MapTrace &other)
| MassSpectrum (const Trace &other)
| MassSpectrum (Trace &&other)
| MassSpectrum (const MassSpectrum &other)
| MassSpectrum (MassSpectrum &&other)
virtual | ~MassSpectrum ()
virtual MassSpectrum & | operator= (const MassSpectrum &other)
virtual MassSpectrum & | operator= (MassSpectrum &&other)
MassSpectrumSPtr | makeMassSpectrumSPtr () const
MassSpectrumCstSPtr | makeMassSpectrumCstSPtr () const
virtual MassSpectrum & | massSpectrumFilter (const MassSpectrumFilterInterface &filter) final
| apply a filter on this MassSpectrum
pappso_double | totalIonCurrent () const
| Compute the total ion current of this mass spectrum.
pappso_double | tic () const
| Compute the total ion current of this mass spectrum.
pappso_double | tic (double mzStart, double mzEnd)
const DataPoint & | maxIntensityDataPoint () const
| Find the DataPoint instance having the greatest intensity (y) value.
const DataPoint & | minIntensityDataPoint () const
| Find the DataPoint instance having the smallest intensity (y) value.
void | sortMz ()
| Sort the DataPoint instances of this spectrum.
bool | equals (const MassSpectrum &other, PrecisionPtr precision) const
| Tells if `this` MassSpectrum is equal to `massSpectrum`.
MassSpectrum | filterSum (const MzRange &mass_range) const
void | debugPrintValues () const
virtual Trace & | operator= (const Trace &x)
virtual Trace & | operator= (Trace &&x)
Public Member Functions inherited from pappso::Trace
| Trace ()
| Trace (const QString &text)
| Trace (const std::vector< pappso_double > &xVector, const std::vector< pappso_double > &yVector)
| Trace (const std::vector< std::pair< pappso_double, pappso_double > > &dataPoints)
| Trace (const std::vector< DataPoint > &dataPoints)
| Trace (const std::vector< DataPoint > &&dataPoints)
| Trace (const MapTrace &map_trace)
| Trace (const Trace &other)
| Trace (const Trace &&other)
virtual | ~Trace ()
size_t | initialize (const std::vector< pappso_double > &xVector, const std::vector< pappso_double > &yVector)
size_t | initialize (const QString &x_text, const QString &y_text)
size_t | initialize (const QString &space_sep_text)
size_t | initialize (const Trace &other)
size_t | initialize (const std::map< pappso_double, pappso_double > &map)
TraceSPtr | makeTraceSPtr () const
TraceCstSPtr | makeTraceCstSPtr () const
size_t | append (const DataPoint &data_point)
| appends a datapoint and return new size
std::vector< pappso_double > | xValues () const
std::vector< pappso_double > | yValues () const
std::map< pappso_double, pappso_double > | toMap () const
DataPoint | containsX (pappso_double value, PrecisionPtr precision_p=nullptr) const
const DataPoint & | minXDataPoint () const
const DataPoint & | maxXDataPoint () const
const DataPoint & | minYDataPoint () const
const DataPoint & | maxYDataPoint () const
pappso_double | minX () const
pappso_double | maxX () const
pappso_double | minY () const
pappso_double | maxY () const
pappso_double | maxY (double mzStart, double mzEnd) const
pappso_double | sumY () const
pappso_double | sumY (double mzStart, double mzEnd) const
void | sort (SortType sort_type, SortOrder sort_order=SortOrder::ascending)
void | sortX (SortOrder sort_order=SortOrder::ascending)
void | sortY (SortOrder sort_order=SortOrder::ascending)
void | unique ()
std::size_t | removeZeroYDataPoints ()
virtual Trace & | filter (const FilterInterface &filter) final
| apply a filter on this trace
QString | toString () const
QByteArray | xAsBase64Encoded () const
QByteArray | yAsBase64Encoded () const
std::vector< DataPoint >::const_iterator | dataPointCstIteratorWithX (pappso_double value) const
| find datapoint with exactly x value

## Additional Inherited Members

Protected Member Functions inherited from pappso::Trace
std::size_t | dataPointIndexWithX (pappso_double value) const
std::vector< DataPoint >::iterator | dataPointIteratorWithX (pappso_double value)

## Detailed Description

Class to represent a mass spectrum.

A mass spectrum is a collection of DataPoint instances. Moreover, it has internal data that represent the context of the acquisition of the data: retention time and drift time (if the experiment was an ion mobility mass spectrometry experiment).

A MassSpectrum cannot perform combinations. For combination of mass spectra, the class to use is MassSpectrumCombinator.

Definition at line 72 of file massspectrum.h.

## Constructor & Destructor Documentation

## MassSpectrum() [1/8]

pappso::MassSpectrum::MassSpectrum | ( |  | ) |

Definition at line 61 of file massspectrum.cpp.

{
}

## MassSpectrum() [2/8]

pappso::MassSpectrum::MassSpectrum | ( | std::vector< std::pair< pappso_double, pappso_double > > & | data_point_vector | ) |

Definition at line 66 of file massspectrum.cpp.

: Trace::Trace(data_point_vector)
{
}
pappso::Trace::Trace
Trace()
Definition trace.cpp:444

## MassSpectrum() [3/8]

pappso::MassSpectrum::MassSpectrum | ( | std::vector< DataPoint > & | data_point_vector | ) |

Definition at line 72 of file massspectrum.cpp.

: Trace::Trace(data_point_vector)
{
}

## MassSpectrum() [4/8]

pappso::MassSpectrum::MassSpectrum | ( | const MapTrace & | other | ) |

Definition at line 81 of file massspectrum.cpp.

: Trace(other)
{
}

## MassSpectrum() [5/8]

pappso::MassSpectrum::MassSpectrum | ( | const Trace & | other | ) |

Definition at line 77 of file massspectrum.cpp.

: Trace(other)
{
}

## MassSpectrum() [6/8]

pappso::MassSpectrum::MassSpectrum | ( | Trace && | other | ) |

Definition at line 86 of file massspectrum.cpp.

: Trace(std::move(other))
{
}

## MassSpectrum() [7/8]

pappso::MassSpectrum::MassSpectrum | ( | const MassSpectrum & | other | ) |

Definition at line 91 of file massspectrum.cpp.

: Trace(other)
{
// qDebug() << __FILE__ << "@" << __LINE__ << __FUNCTION__ << "()";
}

## MassSpectrum() [8/8]

pappso::MassSpectrum::MassSpectrum | ( | MassSpectrum && | other | ) |

Definition at line 97 of file massspectrum.cpp.

: Trace(std::move(other))
{
// Specify std::move so that && reference is passed to the Trace constructor
// that takes std::vector<DataPoint> && as rvalue reference.
// qDebug() << __FILE__ << "@" << __LINE__ << __FUNCTION__ << "()"
//<< "Moving MassSpectrum::MassSpectrum(MassSpectrum &&)";
}

## ~MassSpectrum()

pappso::MassSpectrum::~MassSpectrum | ( |  | ) |

virtual

Definition at line 107 of file massspectrum.cpp.

{
}

## Member Function Documentation

## debugPrintValues()

void pappso::MassSpectrum::debugPrintValues | ( |  | ) | const

Definition at line 333 of file massspectrum.cpp.

{
qDebug() << size();
for(std::size_t i = 0; i < size(); i++)
{
qDebug() << "(" << this->operator[](i).x << "," << this->operator[](i).y
<< ")";
}
}

## equals()

bool pappso::MassSpectrum::equals | ( | const MassSpectrum & | other,
|  | PrecisionPtr | precision
| ) |  | const

Tells if `this` MassSpectrum is equal to `massSpectrum`.

To compare `this` to `massSpectrum`, a tolerance is applied to both the x and y values, that is defined using `precision`.

Parameters

  massSpectrum | Mass spectrum to compare to `this`.
  precision | Precision to be used to perform the comparison of the x and y values of the data points in `this` and \massSpectrum mass spectra.

Definition at line 224 of file massspectrum.cpp.

{
if(size() != other.size())
{
qDebug() << __FILE__ << "@" << __LINE__ << __FUNCTION__ << "()"
<< "The other mass spectrum size is not equal to *this size"
<< "*this size:" << size() << "trace size:" << other.size();
return false;
}
PrecisionPtr precint = PrecisionFactory::getPpmInstance(10);
auto trace_it = other.begin();
for(auto &&data_point : *this)
{
qDebug() << "first:" << data_point.x << "," << data_point.y
<< " second:" << trace_it->x << "," << trace_it->y;
if(!MzRange(data_point.x, precision).contains(trace_it->x))
{
qDebug() << "x:" << data_point.x << " != " << trace_it->x;
return false;
}
if(!MzRange(data_point.y, precint).contains(trace_it->y))
{
qDebug() << "y:" << data_point.y << " != " << trace_it->y;
return false;
}
trace_it++;
}
return true;
}
pappso::PrecisionFactory::getPpmInstance
static PrecisionPtr getPpmInstance(pappso_double value)
get a ppm precision pointer
Definition precision.cpp:150
pappso::PrecisionPtr
const PrecisionBase * PrecisionPtr
Definition precision.h:122

References pappso::MzRange::contains(), and pappso::PrecisionFactory::getPpmInstance().

## filterSum()

MassSpectrum pappso::MassSpectrum::filterSum | ( | const MzRange & | mass_range | ) | const

Definition at line 264 of file massspectrum.cpp.

{
MassSpectrum massSpectrum;
std::vector<DataPoint>::const_iterator it = begin();
std::vector<DataPoint>::const_iterator itEnd = end();
std::vector<DataPoint>::const_reverse_iterator itRev = rbegin();
std::vector<DataPoint>::const_reverse_iterator itRevEnd = rend();
pappso_double lower = range.lower();
pappso_double upper = range.upper();
while((it != itEnd) && (it->x <= itRev->x) && (itRev != itRevEnd))
{
pappso_double sumX = it->x + itRev->x;
if(sumX < lower)
{
it++;
}
else if(sumX > upper)
{
itRev++;
}
else
{
massSpectrum.push_back(*it);
massSpectrum.push_back(*itRev);
std::vector<DataPoint>::const_reverse_iterator itRevIn = itRev;
itRevIn++;
// FIXME Attention buggy code FR 20180626.
sumX = it->x + itRevIn->x;
while((sumX > lower) && (it->x <= itRevIn->x) &&
(itRevIn != itRevEnd))
{
sumX = it->x + itRevIn->x;
// trace.push_back(*it);
massSpectrum.push_back(*itRevIn);
itRevIn++;
}
it++;
}
}
// Sort all the data points in increasing order by x
std::sort(massSpectrum.begin(),
massSpectrum.end(),
[](const DataPoint &a, const DataPoint &b) { return (a.x < b.x); });
// Remove all the but the first element of a series of elements that are
// considered equal. Sort of deduplication.
std::vector<DataPoint>::iterator itEndFix =
std::unique(massSpectrum.begin(),
massSpectrum.end(),
[](const DataPoint &a, const DataPoint &b) {
// Return true if both elements should be considered equal.
return (a.x == b.x) && (a.y == b.y);
});
massSpectrum.resize(std::distance(massSpectrum.begin(), itEndFix));
return massSpectrum;
}
pappso::MassSpectrum::MassSpectrum
MassSpectrum()
Definition massspectrum.cpp:61
pappso::PeptideIonNter::a
@ a
pappso::PeptideIonNter::b
@ b
pappso::pappso_double
double pappso_double
A type definition for doubles.
Definition types.h:50

References pappso::a, pappso::b, pappso::MzRange::lower(), and pappso::MzRange::upper().

## makeMassSpectrumCstSPtr()

MassSpectrumCstSPtr pappso::MassSpectrum::makeMassSpectrumCstSPtr | ( |  | ) | const

Definition at line 138 of file massspectrum.cpp.

{
return std::make_shared<const MassSpectrum>(*this);
}

## makeMassSpectrumSPtr()

MassSpectrumSPtr pappso::MassSpectrum::makeMassSpectrumSPtr | ( |  | ) | const

Definition at line 131 of file massspectrum.cpp.

{
return std::make_shared<MassSpectrum>(*this);
}

Referenced by pappso::BafAsciiMsRunReader::qualifiedMassSpectrumFromBafAsciiMSDataFile(), pappso::PwizMsRunReader::qualifiedMassSpectrumFromPwizSpectrumPtr(), pappso::XyMsRunReader::qualifiedMassSpectrumFromXyMSDataFile(), and pappso::BafAsciiMsRunReader::readSpectrumCollectionByMsLevel().

## massSpectrumFilter()

MassSpectrum & pappso::MassSpectrum::massSpectrumFilter | ( | const MassSpectrumFilterInterface & | filter | ) |

final virtual

apply a filter on this MassSpectrum

Parameters

  filter | to process the MassSpectrum

Returns
  reference on the modified MassSpectrum

Definition at line 404 of file massspectrum.cpp.

{
return filter.filter(*this);
}
pappso::Trace::filter
virtual Trace & filter(const FilterInterface &filter) final
apply a filter on this trace
Definition trace.cpp:1210

References pappso::Trace::filter().

Referenced by pappso::XtandemSpectrumProcess::process().

## maxIntensityDataPoint()

const DataPoint & pappso::MassSpectrum::maxIntensityDataPoint | ( |  | ) | const

Find the DataPoint instance having the greatest intensity (y) value.

Returns
  <const DataPoint &> The data point having the maximum intensity (y) value of the whole mass spectrum.

Definition at line 183 of file massspectrum.cpp.

{
return Trace::maxYDataPoint();
}
pappso::Trace::maxYDataPoint
const DataPoint & maxYDataPoint() const
Definition trace.cpp:976

References pappso::Trace::maxYDataPoint().

## minIntensityDataPoint()

const DataPoint & pappso::MassSpectrum::minIntensityDataPoint | ( |  | ) | const

Find the DataPoint instance having the smallest intensity (y) value.

Returns
  <const DataPoint &> The data point having the minimum intensity (y) value of the whole mass spectrum.

Definition at line 195 of file massspectrum.cpp.

{
return Trace::minYDataPoint();
}
pappso::Trace::minYDataPoint
const DataPoint & minYDataPoint() const
Definition trace.cpp:957

References pappso::Trace::minYDataPoint().

## operator=() [1/4]

MassSpectrum & pappso::MassSpectrum::operator= | ( | const MassSpectrum & | other | ) |

virtual

Definition at line 113 of file massspectrum.cpp.

{
// qDebug() << __FILE__ << "@" << __LINE__ << __FUNCTION__ << " ()";
assign(other.begin(), other.end());
return *this;
}

## operator=() [2/4]

Trace & pappso::Trace::operator= | ( | const Trace & | x | ) |

virtual

Reimplemented from pappso::Trace.

Definition at line 179 of file trace.cpp.

{
assign(other.begin(), other.end());
return *this;
}

## operator=() [3/4]

MassSpectrum & pappso::MassSpectrum::operator= | ( | MassSpectrum && | other | ) |

virtual

Definition at line 123 of file massspectrum.cpp.

{
vector<DataPoint>::operator=(std::move(other));
return *this;
}

## operator=() [4/4]

Trace & pappso::Trace::operator= | ( | Trace && | x | ) |

virtual

Reimplemented from pappso::Trace.

Definition at line 180 of file trace.cpp.

{
vector<DataPoint>::operator=(std::move(other));
return *this;
}

References pappso::a, and pappso::b.

## sortMz()

void pappso::MassSpectrum::sortMz | ( |  | ) |

Sort the DataPoint instances of this spectrum.

The DataPoint instances are sorted according to the x value (the m/z value) and in increasing order.

Definition at line 207 of file massspectrum.cpp.

{
Trace::sortX();
}
pappso::Trace::sortX
void sortX(SortOrder sort_order=SortOrder::ascending)
Definition trace.cpp:1086

References pappso::Trace::sortX().

Referenced by pappso::MzIntegrationParams::createDataBasedBins(), and pappso::PwizMsRunReader::qualifiedMassSpectrumFromPwizSpectrumPtr().

## tic() [1/2]

pappso_double pappso::MassSpectrum::tic | ( |  | ) | const

Compute the total ion current of this mass spectrum.

Convenience function that returns totalIonCurrent();

Definition at line 164 of file massspectrum.cpp.

{
return totalIonCurrent();
}
pappso::MassSpectrum::totalIonCurrent
pappso_double totalIonCurrent() const
Compute the total ion current of this mass spectrum.
Definition massspectrum.cpp:153

References totalIonCurrent().

## tic() [2/2]

pappso_double pappso::MassSpectrum::tic | ( | double | mzStart,
|  | double | mzEnd
| ) |  |

Definition at line 171 of file massspectrum.cpp.

{
return Trace::sumY(mzStart, mzEnd);
}
pappso::Trace::sumY
pappso_double sumY() const
Definition trace.cpp:1023

References pappso::Trace::sumY().

## totalIonCurrent()

pappso_double pappso::MassSpectrum::totalIonCurrent | ( |  | ) | const

Compute the total ion current of this mass spectrum.

The sum of all the separate ion currents carried by the ions of different m/z contributing to a complete mass massSpectrum or in a specified m/z range of a mass massSpectrum. MS:1000285

Returns
  <pappso_double> The total ion current.

Definition at line 153 of file massspectrum.cpp.

{
return Trace::sumY();
}

References pappso::Trace::sumY().

Referenced by tic().

The documentation for this class was generated from the following files:

- pappsomspp/massspectrum/massspectrum.h
- pappsomspp/massspectrum/massspectrum.cpp