pappso::TimsMsRunReaderMs2Selected Class Reference

`#include <timsmsrunreaderms2selected.h>`

Inheritance diagram for pappso::TimsMsRunReaderMs2Selected:

## Public Member Functions

| TimsMsRunReaderMs2Selected (MsRunIdCstSPtr &msrun_id_csp)
virtual | ~TimsMsRunReaderMs2Selected ()
virtual MassSpectrumSPtr | massSpectrumSPtr (std::size_t spectrum_index) override
| get a MassSpectrumSPtr class given its spectrum index More...
virtual MassSpectrumCstSPtr | massSpectrumCstSPtr (std::size_t spectrum_index) override
virtual QualifiedMassSpectrum | qualifiedMassSpectrum (std::size_t spectrum_index, bool want_binary_data=true) const override
| get a QualifiedMassSpectrum class given its scan number More...
virtual void | readSpectrumCollection (SpectrumCollectionHandlerInterface &handler) override
| function to visit an MsRunReader and get each Spectrum in a spectrum collection handler More...
virtual std::size_t | spectrumListSize () const override
| get the totat number of spectrum conained in the MSrun data file More...
virtual bool | hasScanNumbers () const override
| tells if spectra can be accessed using scan numbers by default, it returns false. Only overrided functions can check if scan numbers are available in the current file More...
void | setMs2FilterCstSPtr (pappso::FilterInterfaceCstSPtr filter)
void | setMs1FilterCstSPtr (pappso::FilterInterfaceCstSPtr filter)
Public Member Functions inherited from pappso::TimsMsRunReaderMs2
| TimsMsRunReaderMs2 (MsRunIdCstSPtr &msrun_id_csp)
virtual | ~TimsMsRunReaderMs2 ()
virtual pappso::XicCoordSPtr | newXicCoordSPtrFromSpectrumIndex (std::size_t spectrum_index, pappso::PrecisionPtr precision) const override
| get a xic coordinate object from a given spectrum index More...
virtual pappso::XicCoordSPtr | newXicCoordSPtrFromQualifiedMassSpectrum (const pappso::QualifiedMassSpectrum &mass_spectrum, pappso::PrecisionPtr precision) const override
| get a xic coordinate object from a given spectrum More...
virtual void | readSpectrumCollectionByMsLevel (SpectrumCollectionHandlerInterface &handler, unsigned int ms_level) override
| function to visit an MsRunReader and get each Spectrum in a spectrum collection handler by Ms Levels More...
void | setMs2FilterCstSPtr (pappso::FilterInterfaceCstSPtr filter)
void | setMs1FilterCstSPtr (pappso::FilterInterfaceCstSPtr filter)
void | setMs2BuiltinCentroid (bool centroid)
| enable or disable simple centroid filter on raw tims data for MS2 More...
virtual std::vector< std::size_t > | getPrecursorsIDFromMzRt (int charge, double mz_val, double rt_sec, double k0)
| Get all the precursors id which match the values. More...
virtual bool | releaseDevice () override
| release data back end device if a the data back end is released, the developper has to use acquireDevice before using the msrunreader object More...
virtual bool | acquireDevice () override
| acquire data back end device More...
virtual TimsDataSp | getTimsDataSPtr ()
| give an access to the underlying raw data pointer More...
virtual std::vector< double > | getRetentionTimeLine () override
| retention timeline get retention times along the MSrun in seconds More...
virtual Trace | getTicChromatogram () override
Public Member Functions inherited from pappso::MsRunReader
| MsRunReader (MsRunIdCstSPtr &ms_run_id)
| MsRunReader (const MsRunReader &other)
virtual | ~MsRunReader ()
const MsRunIdCstSPtr & | getMsRunId () const
virtual std::size_t | scanNumber2SpectrumIndex (std::size_t scan_number)
| if possible, converts a scan number into a spectrum index This is a convenient function to help transition from the old scan number (not implemented by all vendors) to more secure spectrum index (not vendor dependant). It is better to not rely on this function. More...

## Protected Member Functions

virtual void | initialize () override
virtual bool | accept (const QString &file_name) const override
| tells if the reader is able to handle this file must be implemented by private MS run reader, specific of one or more file format More...

## Private Attributes

TimsData * | mpa_timsData = nullptr

## Friends

class | MsFileAccessor

## Additional Inherited Members

Protected Attributes inherited from pappso::MsRunReader
MsRunIdCstSPtr | mcsp_msRunId
MsRunReaderScanNumberMultiMap * | mpa_multiMapScanNumber = nullptr

## Detailed Description

Definition at line 41 of file timsmsrunreaderms2selected.h.

## Constructor & Destructor Documentation

## TimsMsRunReaderMs2Selected()

TimsMsRunReaderMs2Selected::TimsMsRunReaderMs2Selected | ( | MsRunIdCstSPtr & | msrun_id_csp | ) |

Todo:
  write docs

Definition at line 37 of file timsmsrunreaderms2selected.cpp.

: TimsMsRunReaderMs2(msrun_id_csp)
{
initialize();
}
pappso::TimsMsRunReaderMs2Selected::initialize
virtual void initialize() override
Definition: timsmsrunreaderms2selected.cpp:53
pappso::TimsMsRunReaderMs2::TimsMsRunReaderMs2
TimsMsRunReaderMs2(MsRunIdCstSPtr &msrun_id_csp)
Definition: timsmsrunreaderms2.cpp:39

References initialize().

## ~TimsMsRunReaderMs2Selected()

TimsMsRunReaderMs2Selected::~TimsMsRunReaderMs2Selected | ( |  | ) |

virtual

Definition at line 44 of file timsmsrunreaderms2selected.cpp.

{
if(mpa_timsData != nullptr)
{
delete mpa_timsData;
}
}
pappso::TimsMsRunReaderMs2Selected::mpa_timsData
TimsData * mpa_timsData
Definition: timsmsrunreaderms2selected.h:75

References mpa_timsData.

## Member Function Documentation

## accept()

bool TimsMsRunReaderMs2Selected::accept | ( | const QString & | file_name | ) | const

override protected virtual

tells if the reader is able to handle this file must be implemented by private MS run reader, specific of one or more file format

Reimplemented from pappso::TimsMsRunReaderMs2.

Definition at line 91 of file timsmsrunreaderms2selected.cpp.

{
qDebug() << file_name;
return true;
}

## hasScanNumbers()

bool TimsMsRunReaderMs2Selected::hasScanNumbers | ( |  | ) | const

override virtual

tells if spectra can be accessed using scan numbers by default, it returns false. Only overrided functions can check if scan numbers are available in the current file

Reimplemented from pappso::TimsMsRunReaderMs2.

Definition at line 316 of file timsmsrunreaderms2selected.cpp.

{
return false;
}

## initialize()

void pappso::TimsMsRunReaderMs2Selected::initialize | ( |  | ) |

override protected virtual

Reimplemented from pappso::TimsMsRunReaderMs2.

Definition at line 53 of file timsmsrunreaderms2selected.cpp.

{
mpa_timsData = new TimsData(mcsp_msRunId.get()->getFileName());
}
pappso::MsRunReader::mcsp_msRunId
MsRunIdCstSPtr mcsp_msRunId
Definition: msrunreader.h:282
pappso::TimsData
Definition: timsdata.h:56

Referenced by TimsMsRunReaderMs2Selected().

## massSpectrumCstSPtr()

pappso::MassSpectrumCstSPtr TimsMsRunReaderMs2Selected::massSpectrumCstSPtr | ( | std::size_t | spectrum_index | ) |

override virtual

Reimplemented from pappso::TimsMsRunReaderMs2.

Definition at line 108 of file timsmsrunreaderms2selected.cpp.

{
QualifiedMassSpectrum mass_spectrum =
qualifiedMassSpectrum(spectrum_index, true);
return mass_spectrum.getMassSpectrumSPtr();
}
pappso::QualifiedMassSpectrum
Class representing a fully specified mass spectrum.
Definition: qualifiedmassspectrum.h:85
pappso::QualifiedMassSpectrum::getMassSpectrumSPtr
MassSpectrumSPtr getMassSpectrumSPtr() const
Get the MassSpectrumSPtr.
Definition: qualifiedmassspectrum.cpp:133
pappso::TimsMsRunReaderMs2Selected::qualifiedMassSpectrum
virtual QualifiedMassSpectrum qualifiedMassSpectrum(std::size_t spectrum_index, bool want_binary_data=true) const override
get a QualifiedMassSpectrum class given its scan number
Definition: timsmsrunreaderms2selected.cpp:117

References pappso::QualifiedMassSpectrum::getMassSpectrumSPtr(), and qualifiedMassSpectrum().

## massSpectrumSPtr()

pappso::MassSpectrumSPtr TimsMsRunReaderMs2Selected::massSpectrumSPtr | ( | std::size_t | spectrum_index | ) |

override virtual

get a MassSpectrumSPtr class given its spectrum index

Reimplemented from pappso::TimsMsRunReaderMs2.

Definition at line 99 of file timsmsrunreaderms2selected.cpp.

{
QualifiedMassSpectrum mass_spectrum =
qualifiedMassSpectrum(spectrum_index, true);
return mass_spectrum.getMassSpectrumSPtr();
}

References pappso::QualifiedMassSpectrum::getMassSpectrumSPtr(), and qualifiedMassSpectrum().

## qualifiedMassSpectrum()

QualifiedMassSpectrum TimsMsRunReaderMs2Selected::qualifiedMassSpectrum | ( | std::size_t | spectrum_index,
|  | bool | want_binary_data = `true`
| ) |  | const

override virtual

get a QualifiedMassSpectrum class given its scan number

Reimplemented from pappso::TimsMsRunReaderMs2.

Definition at line 117 of file timsmsrunreaderms2selected.cpp.

{
std::size_t precursor_index = (spectrum_index / 2) + 1;
TimsData::SpectrumDescr spectrum_descr =
mpa_timsData->getSpectrumDescrWithPrecursorId(precursor_index);
if(spectrum_index % 2 == 0)
{
qDebug();
// this is an MS1 spectrum
QualifiedMassSpectrum mass_spectrum_ms1;
mpa_timsData->getQualifiedMs1MassSpectrumByPrecursorId(
getMsRunId(), mass_spectrum_ms1, spectrum_descr, want_binary_data);
qDebug(); // << mass_spectrum_ms1.toString();
// qDebug() << mass_spectrum_ms1.getMassSpectrumSPtr().get()->toString();
return mass_spectrum_ms1;
}
else
{
qDebug();
QualifiedMassSpectrum mass_spectrum_ms2;
if(spectrum_descr.ms2_index != spectrum_index)
{
qDebug();
throw PappsoException(
QObject::tr(
"ERROR in %1 %2 %3 spectrum_descr.ms2_index != spectrum_index")
.arg(__FILE__)
.arg(__FUNCTION__)
.arg(__LINE__));
}
mpa_timsData->getQualifiedMs2MassSpectrumByPrecursorId(
getMsRunId(), mass_spectrum_ms2, spectrum_descr, want_binary_data);
qDebug(); // << mass_spectrum_ms2.toString();
// qDebug() << mass_spectrum_ms2.getMassSpectrumSPtr().get()->toString();
return mass_spectrum_ms2;
}
}
pappso::MsRunReader::getMsRunId
const MsRunIdCstSPtr & getMsRunId() const
Definition: msrunreader.cpp:269
pappso::PappsoException
Definition: pappsoexception.h:42
pappso::TimsData::getSpectrumDescrWithPrecursorId
SpectrumDescr getSpectrumDescrWithPrecursorId(std::size_t precursor_id)
get an intermediate structure describing a spectrum
Definition: timsdata.cpp:1730
pappso::TimsData::getQualifiedMs1MassSpectrumByPrecursorId
void getQualifiedMs1MassSpectrumByPrecursorId(const MsRunIdCstSPtr &msrun_id, QualifiedMassSpectrum &mass_spectrum, SpectrumDescr &spectrum_descr, bool want_binary_data)
Definition: timsdata.cpp:954
pappso::TimsData::getQualifiedMs2MassSpectrumByPrecursorId
void getQualifiedMs2MassSpectrumByPrecursorId(const MsRunIdCstSPtr &msrun_id, QualifiedMassSpectrum &mass_spectrum, SpectrumDescr &spectrum_descr, bool want_binary_data)
Definition: timsdata.cpp:1336
pappso::TimsData::SpectrumDescr
Definition: timsdata.h:115
pappso::TimsData::SpectrumDescr::ms2_index
std::size_t ms2_index
Definition: timsdata.h:121

References pappso::MsRunReader::getMsRunId(), pappso::TimsData::getQualifiedMs1MassSpectrumByPrecursorId(), pappso::TimsData::getQualifiedMs2MassSpectrumByPrecursorId(), pappso::TimsData::getSpectrumDescrWithPrecursorId(), mpa_timsData, and pappso::TimsData::SpectrumDescr::ms2_index.

Referenced by massSpectrumCstSPtr(), massSpectrumSPtr(), and readSpectrumCollection().

## readSpectrumCollection()

void TimsMsRunReaderMs2Selected::readSpectrumCollection | ( | SpectrumCollectionHandlerInterface & | handler | ) |

override virtual

function to visit an MsRunReader and get each Spectrum in a spectrum collection handler

Reimplemented from pappso::TimsMsRunReaderMs2.

Definition at line 163 of file timsmsrunreaderms2selected.cpp.

{
const bool want_binary_data = handler.needPeakList();
// const bool want_binary_data = false;
// We'll need it to perform the looping in the spectrum list.
std::size_t spectrum_list_size = spectrumListSize();
// qDebug() << "The spectrum list has size:" << spectrum_list_size;
// Inform the handler of the spectrum list so that it can handle feedback to
// the user.
handler.spectrumListHasSize(spectrum_list_size);
std::vector<size_t> selected_precursor{63905,
73549,
105675,
130439,
177297,
177369,
177483,
190453,
196967,
246691,
271215,
289423,
310669};
// QFile temp_output("/data/temp.txt");
// temp_output.open(QIODevice::WriteOnly | QIODevice::Text);
// QTextStream out(&temp_output);
// Iterate in the full list of spectra.
bool readAhead = handler.isReadAhead();
if(readAhead)
{
std::size_t process_list_size = 300;
struct tmp_item
{
QualifiedMassSpectrum qualified_mass_spectrum;
std::size_t iter;
bool want_binary_data;
};
for(std::size_t i = 0; i < spectrum_list_size; i += process_list_size)
{
// QTextStream out(&temp_output);
qDebug();
// If the user of this reader instance wants to stop reading the
// spectra, then break this loop.
if(handler.shouldStop())
{
qDebug() << "The operation was cancelled. Breaking the loop.";
break;
}
std::vector<tmp_item> item_list;
for(std::size_t iter = 0;
(iter < process_list_size) && ((iter + i) < spectrum_list_size);
iter++)
{
if(std::find(selected_precursor.begin(),
selected_precursor.end(),
iter + i) != selected_precursor.end())
{
bool get_data = want_binary_data;
if((iter + i) % 2 == 0)
{ // MS1
get_data = handler.needMsLevelPeakList(1);
}
else
{
get_data = handler.needMsLevelPeakList(2);
}
item_list.push_back(
{QualifiedMassSpectrum(), iter + i, get_data});
}
}
qDebug() << item_list.size();
// Use QtConcurrentBlocking::mapped to apply the scale function to all
// the images in the list.
QtConcurrent::blockingMap(
item_list.begin(), item_list.end(), [this](tmp_item &one_item) {
qDebug() << one_item.iter;
one_item.qualified_mass_spectrum =
qualifiedMassSpectrum(one_item.iter, one_item.want_binary_data);
// qDebug() << one_item.qualified_mass_spectrum.size() << " " <<
// one_item.qualified_mass_spectrum.getMassSpectrumSPtr().get()->toString();
});
qDebug() << item_list.size();
for(auto &item : item_list)
{
// qDebug() <<
// item.qualified_mass_spectrum.getMassSpectrumSPtr()
// .get()
// ->toString();
handler.setQualifiedMassSpectrum(item.qualified_mass_spectrum);
qDebug();
}
}
}
else
{
for(std::size_t iter = 0; iter < spectrum_list_size; iter++)
{
qDebug();
// If the user of this reader instance wants to stop reading the
// spectra, then break this loop.
if(handler.shouldStop())
{
qDebug() << "The operation was cancelled. Breaking the loop.";
break;
}
bool get_data = want_binary_data;
if(iter % 2 == 0)
{ // MS1
if(!handler.needMsLevelPeakList(1))
{
get_data = false;
}
}
QualifiedMassSpectrum qualified_mass_spectrum =
qualifiedMassSpectrum(iter, get_data);
handler.setQualifiedMassSpectrum(qualified_mass_spectrum);
qDebug();
}
}
// End of
// for(std::size_t iter = 0; iter < spectrum_list_size; iter++)
// Now let the loading handler know that the loading of the data has
// ended. The handler might need this "signal" to perform additional tasks
// or to cleanup cruft.
// qDebug() << "Loading ended";
// temp_output.close();
handler.loadingEnded();
}
pappso::SpectrumCollectionHandlerInterface::shouldStop
virtual bool shouldStop()
Definition: msrunreader.cpp:43
pappso::SpectrumCollectionHandlerInterface::isReadAhead
virtual bool isReadAhead() const
tells if we want to read ahead spectrum
Definition: msrunreader.cpp:63
pappso::SpectrumCollectionHandlerInterface::needPeakList
virtual bool needPeakList() const =0
tells if we need the peak list (if we want the binary data) for each spectrum
pappso::SpectrumCollectionHandlerInterface::loadingEnded
virtual void loadingEnded()
Definition: msrunreader.cpp:48
pappso::SpectrumCollectionHandlerInterface::needMsLevelPeakList
virtual bool needMsLevelPeakList(unsigned int ms_level) const final
tells if we need the peak list (if we want the binary data) for each spectrum, given an MS level
Definition: msrunreader.cpp:69
pappso::SpectrumCollectionHandlerInterface::spectrumListHasSize
virtual void spectrumListHasSize(std::size_t size)
Definition: msrunreader.cpp:52
pappso::SpectrumCollectionHandlerInterface::setQualifiedMassSpectrum
virtual void setQualifiedMassSpectrum(const QualifiedMassSpectrum &spectrum)=0
pappso::TimsMsRunReaderMs2Selected::spectrumListSize
virtual std::size_t spectrumListSize() const override
get the totat number of spectrum conained in the MSrun data file
Definition: timsmsrunreaderms2selected.cpp:309

References pappso::SpectrumCollectionHandlerInterface::isReadAhead(), pappso::SpectrumCollectionHandlerInterface::loadingEnded(), pappso::SpectrumCollectionHandlerInterface::needMsLevelPeakList(), pappso::SpectrumCollectionHandlerInterface::needPeakList(), qualifiedMassSpectrum(), pappso::SpectrumCollectionHandlerInterface::setQualifiedMassSpectrum(), pappso::SpectrumCollectionHandlerInterface::shouldStop(), pappso::SpectrumCollectionHandlerInterface::spectrumListHasSize(), and spectrumListSize().

## setMs1FilterCstSPtr()

void TimsMsRunReaderMs2Selected::setMs1FilterCstSPtr | ( | pappso::FilterInterfaceCstSPtr | filter | ) |

Definition at line 75 of file timsmsrunreaderms2selected.cpp.

{
if(mpa_timsData != nullptr)
{
mpa_timsData->setMs1FilterCstSPtr(filter);
}
else
{
throw PappsoException(
QObject::tr("ERROR in TimsMsRunReaderMs2Selected::setMs1FilterCstSPtr "
"mpa_timsData is null"));
}
}
pappso::TimsData::setMs1FilterCstSPtr
void setMs1FilterCstSPtr(pappso::FilterInterfaceCstSPtr &filter)
filter interface to apply just after raw MS1 specturm extraction the filter can be a list of filters ...
Definition: timsdata.cpp:1097

References mpa_timsData, and pappso::TimsData::setMs1FilterCstSPtr().

## setMs2FilterCstSPtr()

void TimsMsRunReaderMs2Selected::setMs2FilterCstSPtr | ( | pappso::FilterInterfaceCstSPtr | filter | ) |

Definition at line 59 of file timsmsrunreaderms2selected.cpp.

{
if(mpa_timsData != nullptr)
{
mpa_timsData->setMs2FilterCstSPtr(filter);
}
else
{
throw PappsoException(
QObject::tr("ERROR in TimsMsRunReaderMs2Selected::setMs2FilterCstSPtr "
"mpa_timsData is null"));
}
}
pappso::TimsData::setMs2FilterCstSPtr
void setMs2FilterCstSPtr(pappso::FilterInterfaceCstSPtr &filter)
filter interface to apply just after raw MS2 specturm extraction the filter can be a list of filters ...
Definition: timsdata.cpp:1092

References mpa_timsData, and pappso::TimsData::setMs2FilterCstSPtr().

## spectrumListSize()

std::size_t TimsMsRunReaderMs2Selected::spectrumListSize | ( |  | ) | const

override virtual

get the totat number of spectrum conained in the MSrun data file

Reimplemented from pappso::TimsMsRunReaderMs2.

Definition at line 309 of file timsmsrunreaderms2selected.cpp.

{
return (mpa_timsData->getTotalNumberOfPrecursors() * 2);
}
pappso::TimsData::getTotalNumberOfPrecursors
std::size_t getTotalNumberOfPrecursors() const
get the number of precursors analyzes by PASEF
Definition: timsdata.cpp:621

References pappso::TimsData::getTotalNumberOfPrecursors(), and mpa_timsData.

Referenced by readSpectrumCollection().

## Friends And Related Function Documentation

## MsFileAccessor

friend class MsFileAccessor

friend

Definition at line 43 of file timsmsrunreaderms2selected.h.

## Member Data Documentation

## mpa_timsData

TimsData* pappso::TimsMsRunReaderMs2Selected::mpa_timsData = nullptr

private

Definition at line 75 of file timsmsrunreaderms2selected.h.

Referenced by ~TimsMsRunReaderMs2Selected(), qualifiedMassSpectrum(), setMs1FilterCstSPtr(), setMs2FilterCstSPtr(), and spectrumListSize().

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

- pappsomspp/msrun/private/timsmsrunreaderms2selected.h
- pappsomspp/msrun/private/timsmsrunreaderms2selected.cpp