32#include "../pappsoexception.h"
46 : m_massSpectrumId(id)
53 : msp_massSpectrum{mass_spectrum_SPtr}
60 : msp_massSpectrum(other.msp_massSpectrum),
61 m_massSpectrumId(other.m_massSpectrumId),
62 m_isEmptyMassSpectrum(other.m_isEmptyMassSpectrum),
63 m_msLevel(other.m_msLevel),
66 m_precursorSpectrumIndex(other.m_precursorSpectrumIndex),
67 m_precursorNativeId(other.m_precursorNativeId),
68 m_precursorIonData(other.m_precursorIonData),
69 m_paramsMap(other.m_paramsMap)
112 return std::make_shared<QualifiedMassSpectrum>(*
this);
119 return std::make_shared<const QualifiedMassSpectrum>(*
this);
197 m_rt = rt_in_seconds;
221 if(std::isinf(dt_in_milli_seconds))
224 m_dt = dt_in_milli_seconds;
245 return std::numeric_limits<double>::max();
262 bool ok_precmz =
false;
270 mz_prec = mz_prec * (double)charge;
271 mz_prec -=
MHPLUS * (double)charge;
277 return std::numeric_limits<double>::max();
282 const std::vector<PrecursorIonData> &precursor_ion_data_vector,
283 const QString &separator)
const
290 if(precursor_ion_data_vector.size() == 1)
291 return QString(
"%1").arg(precursor_ion_data_vector.front().mz, 0,
'f', 6);
296 using iterator = std::vector<pappso::PrecursorIonData>::const_iterator;
298 iterator begin_iterator = precursor_ion_data_vector.begin();
299 iterator pre_end_iterator = std::prev(precursor_ion_data_vector.end());
301 for(; begin_iterator != precursor_ion_data_vector.end(); ++begin_iterator)
303 if(begin_iterator == pre_end_iterator)
305 text += QString(
"%1").arg(begin_iterator->mz, 0,
'f', 6);
308 QString(
"%1%2").arg(begin_iterator->mz, 0,
'f', 6).arg(separator);
317 const QString &separator)
const
325 const QString &separator)
const
330 std::vector<PrecursorIonData> sorted_vector =
345 return std::numeric_limits<unsigned int>::max();
357 const std::vector<PrecursorIonData> &precursor_ion_data_vector,
358 const QString &separator)
const
365 if(precursor_ion_data_vector.size() == 1)
366 return QString(
"%1").arg(precursor_ion_data_vector.front().charge);
370 for(
auto item : precursor_ion_data_vector)
372 text += QString(
"%1%2").arg(item.charge).arg(separator);
381 const QString &separator)
const
389 const QString &separator)
const
394 std::vector<PrecursorIonData> sorted_vector =
409 return std::numeric_limits<double>::max();
422 std::size_t precursor_spectrum_index)
458const std::vector<PrecursorIonData> &
465std::vector<PrecursorIonData>
468 std::vector<PrecursorIonData> new_vector;
471 std::sort(new_vector.begin(),
487 std::pair<QualifiedMassSpectrumParameter, QVariant>(parameter, value));
489 if(ret.second ==
false)
491 ret.first->second = value;
530 QString pointer_string =
531 QString(
"msp_massSpectrum.get(): %1 ")
534 text += pointer_string;
537 text += QString(
"msp_massSpectrum is nullptr ");
541 QString precursor_mz_values_string;
544 precursor_mz_values_string +=
"Precursor mz values: ";
548 precursor_mz_values_string +=
"\n";
552 "; m_massSpectrumId : %1 \n"
553 "m_msLevel: %2 ; m_rt (min): %3 ; m_dt (ms): %4 ; prec. spec. "
558 .arg(
m_dt, 0,
'f', 5)
562 .arg(precursor_mz_values_string);
Class representing a fully specified mass spectrum.
uint getMsLevel() const
Get the mass spectrum level.
QualifiedMassSpectrum & operator=(const QualifiedMassSpectrum &other)
MassSpectrumCstSPtr getMassSpectrumCstSPtr() const
Get the MassSpectrumCstSPtr.
bool m_isEmptyMassSpectrum
std::vector< PrecursorIonData > m_precursorIonData
std::vector< PrecursorIonData > getPrecursorIonDataSortedWithMz() const
void setPrecursorNativeId(const QString &native_id)
Set the scan native id of the precursor ion.
std::size_t m_precursorSpectrumIndex
Index of the spectrum of the precusor ion that was fragmented to yield.
pappso_double getDtInMilliSeconds() const
Get the drift time in milliseconds.
const std::vector< PrecursorIonData > & getPrecursorIonData() const
uint getPrecursorCharge(bool *ok=nullptr) const
get precursor charge
pappso_double getRtInMinutes() const
Get the retention time in minutes.
unsigned int m_msLevel
Mass spectrometry level of this mass spectrum.
void setDtInMilliSeconds(pappso_double rt)
Set the drift time in milliseconds.
~QualifiedMassSpectrum()
Destruct this QualifiedMassSpectrum.
const QString & getPrecursorNativeId() const
pappso_double m_rt
Retention time (in seconds) at which this mass spectrum was acquired.
pappso_double m_dt
Drift time (in milliseconds) at which this mass spectrum was acquired.
pappso_double getPrecursorIntensity(bool *ok=nullptr) const
get precursor intensity
double getPrecursorMass(bool *ok_p=nullptr) const
get precursor mass given the charge stats and precursor mz
QString toString(bool with_data=false) const
void appendPrecursorIonData(const PrecursorIonData &precursor_ion_data)
std::map< QualifiedMassSpectrumParameter, QVariant > m_paramsMap
map containing any parameter value for this spectrum
MassSpectrumSPtr msp_massSpectrum
Shared pointer to the mass spectrum.
const MassSpectrumId & getMassSpectrumId() const
Get the MassSpectrumId.
QString getPrecursorDataChargeValuesAsString(const std::vector< PrecursorIonData > &precursor_ion_data_vector, const QString &separator="\n") const
void setMassSpectrumId(const MassSpectrumId &iD)
Set the MassSpectrumId.
void setMsLevel(uint ms_level)
Set the mass spectrum level.
void setPrecursorSpectrumIndex(std::size_t precursor_scan_num)
Set the scan number of the precursor ion.
QString getPrecursorDataMzValuesAsString(const std::vector< PrecursorIonData > &precursor_ion_data_vector, const QString &separator="\n") const
QualifiedMassSpectrumCstSPtr makeQualifiedMassSpectrumCstSPtr() const
bool isEmptyMassSpectrum() const
pappso_double getPrecursorMz(bool *ok=nullptr) const
get precursor mz
const QualifiedMassSpectrum & cloneMassSpectrumSPtr()
clone the mass spectrum contained in Qualified Mass Spectrum
QString getMzSortedPrecursorDataMzValuesAsString(const QString &separator="\n") const
MassSpectrumSPtr getMassSpectrumSPtr() const
Get the MassSpectrumSPtr.
QString getMzSortedPrecursorDataChargeValuesAsString(const QString &separator="\n") const
QString m_precursorNativeId
Native XML id of the spectrum relative to the mz data native file.
QualifiedMassSpectrumSPtr makeQualifiedMassSpectrumSPtr() const
MassSpectrumId m_massSpectrumId
Id of the mass spectrum.
void setParameterValue(QualifiedMassSpectrumParameter parameter, const QVariant &value)
QualifiedMassSpectrum()
Construct an uninitialized QualifiedMassSpectrum.
void setMassSpectrumSPtr(MassSpectrumSPtr massSpectrum)
Set the MassSpectrumSPtr.
std::size_t getPrecursorSpectrumIndex() const
Get the scan number of the precursor ion.
void setRtInSeconds(pappso_double rt)
Set the retention time in seconds.
pappso_double getRtInSeconds() const
Get the retention time in seconds.
void setEmptyMassSpectrum(bool is_empty_mass_spectrum)
const QVariant getParameterValue(QualifiedMassSpectrumParameter parameter) const
static QString pointerToString(const void *const pointer)
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
std::shared_ptr< QualifiedMassSpectrum > QualifiedMassSpectrumSPtr
const pappso_double MHPLUS(1.007276466879)
double pappso_double
A type definition for doubles.
std::shared_ptr< const QualifiedMassSpectrum > QualifiedMassSpectrumCstSPtr
std::shared_ptr< const MassSpectrum > MassSpectrumCstSPtr
QualifiedMassSpectrumParameter
std::shared_ptr< MassSpectrum > MassSpectrumSPtr