Loading...
Searching...
No Matches
mzcbormsrunreader.cpp
Go to the documentation of this file.
/**
* \file pappsomspp/core/msrun/private/mzcbormsrunreader.cpp
* \date 21/11/2025
* \author Olivier Langella
* \brief MSrun file reader for mzcbor
*/
/*******************************************************************************
* Copyright (c) 2025 Olivier Langella <Olivier.Langella@universite-paris-saclay.fr>.
*
* This file is part of the PAPPSOms++ library.
*
* PAPPSOms++ is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* PAPPSOms++ is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
*
******************************************************************************/
#include "mzcbormsrunreader.h"
#include "pappsomspp/core/exception/exceptionnotfound.h"
#include "pappsomspp/core/exception/exceptionnotimplemented.h"
#include "pappsomspp/core/processing/cbor/mzcbor/mzcborspectrumcollectionreader.h"
#include "pappsomspp/core/processing/cbor/mzcbor/mzcborbuildindexreader.h"
#include "pappsomspp/core/processing/cbor/mzcbor/mzcborindexreader.h"
#include "pappsomspp/core/processing/cbor/cborstreamreader.h"
#include "pappsomspp/core/processing/uimonitor/uimonitorvoid.h"
namespace pappso
{
MzcborMsRunReader::MzcborMsRunReader(MsRunIdCstSPtr &msrun_id_csp)
: pappso::MsRunReader(msrun_id_csp)
{
initialize();
qDebug();
}
MzcborMsRunReader::~MzcborMsRunReader()
{
releaseDevice();
}
const std::vector<qint64> &
MzcborMsRunReader::getSpectrumIndexPositionInFile() const
{
return m_spectrumIndexPositionInFile;
}
void
MzcborMsRunReader::initialize()
{
qDebug();
m_cborFileInfo.setFile(mcsp_msRunId->getFileName());
if(!m_cborFileInfo.exists())
throw ExceptionNotFound(m_cborFileInfo.absoluteFilePath());
// build the index
acquireDevice();
QString str_index_file = m_cborFileInfo.absoluteFilePath();
QFileInfo mzcbor_index_fileinfo(str_index_file.append(".idx"));
if(mzcbor_index_fileinfo.exists())
{
qDebug() << "mzcbor_index_fileinfo.exists()";
QFile mzcbor_index_file(mzcbor_index_fileinfo.absoluteFilePath());
mzcbor_index_file.open(QIODevice::ReadOnly);
pappso::cbor::mzcbor::MzcborIndexReader index_reader;
index_reader.readCbor(&mzcbor_index_file);
index_reader.close();
mzcbor_index_file.close();
qDebug();
std::vector<QString> run_id_list = index_reader.getRunIdList();
if(run_id_list.size() > 0)
{
std::size_t run_position = 0;
if(run_id_list.size() > 1)
{
std::size_t i_run = 0;
for(const QString &run_id : run_id_list)
{
if(run_id == getMsRunId().get()->getRunId())
{
run_position = i_run;
}
i_run++;
}
}
m_spectrumIndexPositionInFile =
index_reader.getRunAndSpectrumOffsetList().at(run_position);
if(index_reader.getRunAndSpectrumTotalIonCountList().size() > run_position)
{
m_spectrumTotalIonCountList =
index_reader.getRunAndSpectrumTotalIonCountList().at(run_position);
}
if(index_reader.getRunAndSpectrumMsLevelList().size() > run_position)
{
m_spectrumMsLevelList = index_reader.getRunAndSpectrumMsLevelList().at(run_position);
}
if(index_reader.getRunAndSpectrumRtList().size() > run_position)
{
m_spectrumRtList = index_reader.getRunAndSpectrumRtList().at(run_position);
}
// qFatal() << m_spectrumTotalIonCountList.size();
std::size_t i = 0;
for(const QString &native_id : index_reader.getRunAndSpectrumIdList().at(run_position))
{
m_nativeId2SpectrumIndexMap.insert({native_id, i});
i++;
}
}
}
if(m_spectrumIndexPositionInFile.size() == 0)
{
pappso::UiMonitorVoid monitor;
pappso::cbor::mzcbor::MzcborBuildIndexReader mzcbor_build_index_reader(getMsRunId());
mzcbor_build_index_reader.readCbor(mpa_mzcborFileDevice, monitor);
qDebug();
mzcbor_build_index_reader.close();
// releaseDevice();
qDebug();
m_spectrumIndexPositionInFile = mzcbor_build_index_reader.getSpectrumIndexPositionInFile();
m_nativeId2SpectrumIndexMap = mzcbor_build_index_reader.getNativeId2SpectrumIndexMap();
}
}
bool
MzcborMsRunReader::hasScanNumbers() const
{
if(m_nativeId2SpectrumIndexMap.size() > 0)
{
if(m_nativeId2SpectrumIndexMap.begin()->first.contains("scan="))
return true;
}
return false;
}
std::size_t
MzcborMsRunReader::scanNumber2SpectrumIndex(std::size_t scan_number)
{
if(m_scan2SpectrumIndexMap.size() == 0)
{
for(auto &index_pair : m_nativeId2SpectrumIndexMap)
{
QStringList native_id_list = index_pair.first.split("=");
if(native_id_list.size() < 2)
{
}
else
{
std::size_t scan_number = native_id_list.back().toULong();
m_scan2SpectrumIndexMap.insert(
std::pair<std::size_t, std::size_t>(scan_number, index_pair.second));
}
}
}
auto it = m_scan2SpectrumIndexMap.find(scan_number);
if(it == m_scan2SpectrumIndexMap.end())
{
throw ExceptionNotFound(QObject::tr("error reading file %1 : scan %2 not found")
.arg(mcsp_msRunId.get()->getFileName())
.arg(scan_number));
}
return it->second;
}
bool
MzcborMsRunReader::accept(const QString &file_name [[maybe_unused]]) const
{
throw pappso::ExceptionNotImplemented(
QObject::tr("%1 %2 %3 not implemented").arg(__FILE__).arg(__FUNCTION__).arg(__LINE__));
}
const OboPsiModTerm
MzcborMsRunReader::getOboPsiModTermInstrumentModelName() const
{
throw pappso::ExceptionNotImplemented(
QObject::tr("%1 %2 %3 not implemented").arg(__FILE__).arg(__FUNCTION__).arg(__LINE__));
}
bool
pappso::MzcborMsRunReader::acquireDevice()
{
if(mpa_mzcborFileDevice == nullptr)
{
mpa_mzcborFileDevice = new QFile(m_cborFileInfo.absoluteFilePath());
mpa_mzcborFileDevice->open(QIODevice::ReadOnly);
}
return true;
}
bool
pappso::MzcborMsRunReader::releaseDevice()
{
if(mpa_mzcborFileDevice != nullptr)
{
mpa_mzcborFileDevice->close();
delete mpa_mzcborFileDevice;
mpa_mzcborFileDevice = nullptr;
}
return true;
}
pappso::XicCoordSPtr
pappso::MzcborMsRunReader::newXicCoordSPtrFromQualifiedMassSpectrum(
const pappso::QualifiedMassSpectrum &mass_spectrum, pappso::PrecisionPtr precision) const
{
XicCoordSPtr xic_coord = std::make_shared<XicCoord>();
xic_coord.get()->rtTarget = mass_spectrum.getRtInSeconds();
xic_coord.get()->mzRange = MzRange(mass_spectrum.getPrecursorMz(), precision);
return xic_coord;
}
pappso::XicCoordSPtr
pappso::MzcborMsRunReader::newXicCoordSPtrFromSpectrumIndex(std::size_t spectrum_index,
pappso::PrecisionPtr precision) const
{
pappso::cbor::mzcbor::Spectrum cbor_spectrum;
fillMzcborSpectrum(spectrum_index, cbor_spectrum, false);
XicCoordSPtr xic_coord = std::make_shared<XicCoord>();
xic_coord.get()->rtTarget = cbor_spectrum.getRtInSeconds();
bool get_mz = false;
if(cbor_spectrum.precursorList.size() > 0)
{
for(auto &precursor : cbor_spectrum.precursorList)
{
for(auto &ion : precursor.selectedIonList)
{
xic_coord.get()->mzRange = MzRange(ion.getMz(), precision);
get_mz = true;
}
}
if(!get_mz)
{
throw pappso::ExceptionNotFound(
QObject::tr("precursor m/z not found for this spectrum index %1").arg(spectrum_index));
}
}
else
{
throw pappso::ExceptionNotFound(
QObject::tr("no precursor found for this spectrum index %1").arg(spectrum_index));
}
return xic_coord;
}
MassSpectrumCstSPtr
pappso::MzcborMsRunReader::massSpectrumCstSPtr(std::size_t spectrum_index)
{
return massSpectrumSPtr(spectrum_index);
}
MassSpectrumSPtr
pappso::MzcborMsRunReader::massSpectrumSPtr(std::size_t spectrum_index)
{
MassSpectrumSPtr mass_spectrum_sp;
try
{
acquireDevice();
pappso::cbor::mzcbor::Spectrum cbor_spectrum;
fillMzcborSpectrum(spectrum_index, cbor_spectrum, true);
if(cbor_spectrum.binaryDataArrayList.size() == 2)
{
mass_spectrum_sp = std::make_shared<MassSpectrum>();
cbor_spectrum.decodeTrace(*(mass_spectrum_sp.get()));
}
else
{
throw pappso::PappsoException(
QObject::tr("cbor_spectrum.binaryDataArrayList.size() != 2"));
}
}
catch(const pappso::PappsoException &pappso_error)
{
qDebug() << "Going to throw";
throw pappso::PappsoException(QObject::tr("Error reading data (massSpectrumSPtr) using the "
"mzcbor reader: %1")
.arg(pappso_error.what()));
}
return mass_spectrum_sp;
}
QualifiedMassSpectrum
pappso::MzcborMsRunReader::qualifiedMassSpectrum(std::size_t spectrum_index,
bool want_binary_data) const
{
qDebug();
try
{
pappso::cbor::mzcbor::Spectrum cbor_spectrum;
fillMzcborSpectrum(spectrum_index, cbor_spectrum, want_binary_data);
qDebug() << cbor_spectrum.index;
QualifiedMassSpectrum qualified_mass_spectrum;
MassSpectrumId spectrum_id(mcsp_msRunId, spectrum_index);
spectrum_id.setNativeId(cbor_spectrum.id);
spectrum_id.setSpectrumIndex(cbor_spectrum.index);
qualified_mass_spectrum.setMassSpectrumId(spectrum_id);
qualified_mass_spectrum.setRtInSeconds(cbor_spectrum.getRtInSeconds());
if(cbor_spectrum.precursorList.size() > 0)
{
qualified_mass_spectrum.setPrecursorNativeId(
cbor_spectrum.precursorList.at(0).spectrumRef);
qualified_mass_spectrum.setPrecursorSpectrumIndex(
m_nativeId2SpectrumIndexMap.at(cbor_spectrum.precursorList.at(0).spectrumRef));
for(auto &precursor : cbor_spectrum.precursorList)
{
for(auto &ion : precursor.selectedIonList)
{
PrecursorIonData precursor_ion_data;
precursor_ion_data.charge = ion.getChargeState();
bool is_ok;
precursor_ion_data.intensity = ion.getIntensity(&is_ok);
precursor_ion_data.mz = ion.getMz();
qualified_mass_spectrum.appendPrecursorIonData(precursor_ion_data);
}
}
}
qDebug();
qualified_mass_spectrum.setMsLevel(cbor_spectrum.getMsLevel());
qDebug();
qualified_mass_spectrum.setEmptyMassSpectrum(!cbor_spectrum.defaultArrayLength);
if(cbor_spectrum.binaryDataArrayList.size() == 2)
{
MassSpectrumSPtr mass_spectrum_sp = std::make_shared<MassSpectrum>();
cbor_spectrum.decodeTrace(*(mass_spectrum_sp.get()));
qualified_mass_spectrum.setMassSpectrumSPtr(mass_spectrum_sp);
}
qDebug() << "spectrum id=" << cbor_spectrum.id;
return qualified_mass_spectrum;
}
catch(const pappso::PappsoException &pappso_error)
{
qDebug() << "Going to throw";
throw pappso::PappsoException(
QObject::tr("Error reading data (qualifiedMassSpectrum) using the "
"mzcbor reader: %1")
.arg(pappso_error.what()));
}
}
void
pappso::MzcborMsRunReader::readSpectrumCollection(SpectrumCollectionHandlerInterface &handler)
{
throw pappso::ExceptionNotImplemented(
QObject::tr("%1 %2 %3 not implemented").arg(__FILE__).arg(__FUNCTION__).arg(__LINE__));
MsRunReadConfig config;
std::vector<size_t> ms_levels;
for(std::size_t i = 1; i < 9; i++)
{
if(handler.needMsLevelPeakList(i))
{
ms_levels.push_back(i);
}
}
config.setMsLevels(ms_levels);
config.setNeedPeakList(handler.needPeakList());
// readSpectrumCollectionByMsLevel(reader_timeline, 1);
try
{
readSpectrumCollectionWithMsrunReadConfig(config, handler);
}
catch(const pappso::PappsoException &pappso_error)
{
qDebug() << "Going to throw";
throw pappso::PappsoException(
QObject::tr("Error reading data (spectrum collection2) using the "
"mzcbor reader: %1")
.arg(pappso_error.what()));
}
catch(std::exception &error)
{
qDebug() << "Going to throw";
throw pappso::PappsoException(
QObject::tr("Error reading data (spectrum collection) using the "
"mzcbor reader: %1")
.arg(error.what()));
}
}
void
pappso::MzcborMsRunReader::readSpectrumCollection2(const MsRunReadConfig &config,
SpectrumCollectionHandlerInterface &handler)
{
qDebug();
try
{
readSpectrumCollectionWithMsrunReadConfig(config, handler);
}
catch(const pappso::PappsoException &pappso_error)
{
qDebug() << "Going to throw";
throw pappso::PappsoException(
QObject::tr("Error reading data (spectrum collection2) using the "
"mzcbor reader: %1")
.arg(pappso_error.what()));
}
catch(std::exception &error)
{
qDebug() << "Going to throw";
throw pappso::PappsoException(
QObject::tr("Error reading data (spectrum collection2) using the "
"mzcbor reader: %1")
.arg(error.what()));
}
}
void
pappso::MzcborMsRunReader::readSpectrumCollectionByMsLevel(
SpectrumCollectionHandlerInterface &handler, unsigned int ms_level)
{
MsRunReadConfig config;
config.setMsLevels({ms_level});
config.setNeedPeakList(handler.needPeakList());
// readSpectrumCollectionByMsLevel(reader_timeline, 1);
readSpectrumCollection2(config, handler);
}
std::size_t
pappso::MzcborMsRunReader::spectrumListSize() const
{
return m_spectrumIndexPositionInFile.size();
}
std::size_t
pappso::MzcborMsRunReader::spectrumStringIdentifier2SpectrumIndex(
const QString &spectrum_identifier)
{
auto it = m_nativeId2SpectrumIndexMap.find(spectrum_identifier);
if(it == m_nativeId2SpectrumIndexMap.end())
{
throw pappso::ExceptionNotFound(
QObject::tr("spectrum identifier %1 not found").arg(spectrum_identifier));
}
return it->second;
}
void
MzcborMsRunReader::readSpectrumCollectionWithMsrunReadConfig(
const MsRunReadConfig &config, SpectrumCollectionHandlerInterface &handler)
{
// acquireDevice();
try
{
acquireDevice();
pappso::UiMonitorVoid monitor;
pappso::cbor::mzcbor::MzcborSpectrumCollectionReader mzcbor_spectrum_collection_reader(
config, handler);
mzcbor_spectrum_collection_reader.setMsRunId(getMsRunId());
mzcbor_spectrum_collection_reader.setNativeId2SpectrumIndexMapPtr(
&m_nativeId2SpectrumIndexMap);
mzcbor_spectrum_collection_reader.readCbor(mpa_mzcborFileDevice, monitor);
qDebug();
mzcbor_spectrum_collection_reader.close();
qDebug();
}
catch(const pappso::PappsoException &pappso_err)
{
throw pappso::PappsoException(
QObject::tr("ERROR in MzcborMsRunReader::readSpectrumCollectionWithMsrunReadConfig:\n%1")
.arg(pappso_err.qwhat()));
}
// 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.
}
void
MzcborMsRunReader::fillMzcborSpectrum(std::size_t spectrum_index,
pappso::cbor::mzcbor::Spectrum &spectrum,
bool want_binary_data) const
{
if(spectrum_index >= m_spectrumIndexPositionInFile.size())
{
throw pappso::ExceptionNotFound(
QObject::tr("spectrum index %1 not found").arg(spectrum_index));
}
if(mpa_mzcborFileDevice == nullptr)
{
throw pappso::PappsoException(
QObject::tr("mzCBOR file device is not ready, use acquireDevice() before access"));
}
qDebug() << spectrum_index << " " << m_spectrumIndexPositionInFile[spectrum_index];
// qDebug() << spectrum_index << " " << m_spectrumIndexPositionInFile[spectrum_index-1];
if(mpa_mzcborFileDevice->seek(m_spectrumIndexPositionInFile[spectrum_index]))
{
pappso::cbor::CborStreamReader cbor_stream_reader(mpa_mzcborFileDevice);
cbor_stream_reader.setDevice(mpa_mzcborFileDevice);
try
{
spectrum.fromCbor(cbor_stream_reader, want_binary_data);
}
catch(const pappso::PappsoException &error)
{
throw pappso::PappsoException(QObject::tr("ERROR reading spectrum %1 cbor:\n%2")
.arg(spectrum_index)
.arg(error.qwhat()));
}
// cbor_stream_reader.leaveContainer();
if(spectrum.id.isEmpty())
{
throw pappso::PappsoException(
QObject::tr("ERROR reading spectrum %1 cbor:\nspectrum not found").arg(spectrum_index));
}
}
else
{
throw pappso::PappsoException(
QObject::tr("ERROR reading spectrum %1 cbor:\nseek failed").arg(spectrum_index));
}
// mzcbor_file.close();
}
Trace
MzcborMsRunReader::getTicChromatogram()
{
qDebug() << m_spectrumMsLevelList.size() << " " << m_spectrumTotalIonCountList.size();
Trace chromatogram;
if((m_spectrumTotalIonCountList.size() > 0) &&
(m_spectrumMsLevelList.size() == m_spectrumTotalIonCountList.size()))
{
for(std::size_t i = 0; i < m_spectrumTotalIonCountList.size(); i++)
{
if(m_spectrumMsLevelList.at(i) == 1)
{
chromatogram.push_back(
{m_spectrumRtList.at(i), (double)m_spectrumTotalIonCountList.at(i)});
}
}
}
else
{
return MsRunReader::getTicChromatogram();
}
return chromatogram;
}
std::vector<double>
MzcborMsRunReader::getRetentionTimeLine()
{
qDebug();
std::vector<double> time_line;
if((m_spectrumRtList.size() > 0) && (m_spectrumMsLevelList.size() == m_spectrumRtList.size()))
{
for(std::size_t i = 0; i < m_spectrumRtList.size(); i++)
{
if(m_spectrumMsLevelList.at(i) == 1)
{
time_line.push_back(m_spectrumRtList.at(i));
}
}
}
else
{
return MsRunReader::getRetentionTimeLine();
}
return time_line;
}
std::shared_ptr<pappso::cbor::mzcbor::Spectrum>
MzcborMsRunReader::getMzcborSpectrumSp(std::size_t spectrum_index, bool want_binary_data) const
{
std::shared_ptr<pappso::cbor::mzcbor::Spectrum> cbor_spectrum_sp =
std::make_shared<pappso::cbor::mzcbor::Spectrum>();
fillMzcborSpectrum(spectrum_index, *cbor_spectrum_sp, want_binary_data);
return cbor_spectrum_sp;
}
} // namespace pappso
cborstreamreader.h
pappso::ExceptionNotFound
Definition exceptionnotfound.h:32
pappso::ExceptionNotImplemented
Definition exceptionnotimplemented.h:32
pappso::MassSpectrumId
Definition massspectrumid.h:41
pappso::MassSpectrumId::setNativeId
void setNativeId(const QString &native_id)
Definition massspectrumid.cpp:92
pappso::MassSpectrumId::setSpectrumIndex
void setSpectrumIndex(std::size_t index)
Definition massspectrumid.cpp:106
pappso::MsRunReadConfig
Definition msrunreadconfig.h:62
pappso::MsRunReadConfig::setNeedPeakList
void setNeedPeakList(bool need_peak_list)
Definition msrunreadconfig.cpp:173
pappso::MsRunReadConfig::setMsLevels
void setMsLevels(std::vector< std::size_t > ms_levels)
Definition msrunreadconfig.cpp:89
pappso::MsRunReader::mcsp_msRunId
MsRunIdCstSPtr mcsp_msRunId
Definition msrunreader.h:194
pappso::MsRunReader::MsRunReader
MsRunReader(const MsRunIdCstSPtr &ms_run_id)
Definition msrunreader.cpp:43
pappso::MsRunReader::getRetentionTimeLine
virtual std::vector< double > getRetentionTimeLine()
retention timeline get retention times along the MSrun in seconds
Definition msrunreader.cpp:126
pappso::MsRunReader::getTicChromatogram
virtual Trace getTicChromatogram()
get a TIC chromatogram
Definition msrunreader.cpp:159
pappso::MsRunReader::getMsRunId
const MsRunIdCstSPtr & getMsRunId() const
Definition msrunreader.cpp:55
pappso::MzRange
Definition mzrange.h:46
pappso::MzcborMsRunReader::getRetentionTimeLine
virtual std::vector< double > getRetentionTimeLine() override
retention timeline get retention times along the MSrun in seconds
Definition mzcbormsrunreader.cpp:614
pappso::MzcborMsRunReader::getSpectrumIndexPositionInFile
const std::vector< qint64 > & getSpectrumIndexPositionInFile() const
Definition mzcbormsrunreader.cpp:54
pappso::MzcborMsRunReader::newXicCoordSPtrFromSpectrumIndex
virtual pappso::XicCoordSPtr newXicCoordSPtrFromSpectrumIndex(std::size_t spectrum_index, pappso::PrecisionPtr precision) const override
get a xic coordinate object from a given spectrum index
Definition mzcbormsrunreader.cpp:247
pappso::MzcborMsRunReader::m_nativeId2SpectrumIndexMap
std::map< QString, std::size_t > m_nativeId2SpectrumIndexMap
Definition mzcbormsrunreader.h:138
pappso::MzcborMsRunReader::readSpectrumCollection2
virtual void readSpectrumCollection2(const MsRunReadConfig &config, SpectrumCollectionHandlerInterface &handler) override
function to visit an MsRunReader and get each Spectrum in a spectrum collection handler
Definition mzcbormsrunreader.cpp:438
pappso::MzcborMsRunReader::m_spectrumTotalIonCountList
std::vector< qint64 > m_spectrumTotalIonCountList
Definition mzcbormsrunreader.h:135
pappso::MzcborMsRunReader::mpa_mzcborFileDevice
QFile * mpa_mzcborFileDevice
Definition mzcbormsrunreader.h:141
pappso::MzcborMsRunReader::m_cborFileInfo
QFileInfo m_cborFileInfo
Definition mzcbormsrunreader.h:133
pappso::MzcborMsRunReader::newXicCoordSPtrFromQualifiedMassSpectrum
virtual pappso::XicCoordSPtr newXicCoordSPtrFromQualifiedMassSpectrum(const pappso::QualifiedMassSpectrum &mass_spectrum, pappso::PrecisionPtr precision) const override
get a xic coordinate object from a given spectrum
Definition mzcbormsrunreader.cpp:235
pappso::MzcborMsRunReader::hasScanNumbers
virtual bool hasScanNumbers() const override
tells if spectra can be accessed using scan numbers by default, it returns false. Only overrided func...
Definition mzcbormsrunreader.cpp:152
pappso::MzcborMsRunReader::readSpectrumCollectionWithMsrunReadConfig
void readSpectrumCollectionWithMsrunReadConfig(const MsRunReadConfig &config, SpectrumCollectionHandlerInterface &handler)
Definition mzcbormsrunreader.cpp:498
pappso::MzcborMsRunReader::getOboPsiModTermInstrumentModelName
virtual const OboPsiModTerm getOboPsiModTermInstrumentModelName() const override
get OboPsiModTerm corresponding to the instrument model name child of : [Term] id: MS:1000031 name: i...
Definition mzcbormsrunreader.cpp:203
pappso::MzcborMsRunReader::getTicChromatogram
virtual Trace getTicChromatogram() override
get a TIC chromatogram
Definition mzcbormsrunreader.cpp:591
pappso::MzcborMsRunReader::releaseDevice
virtual bool releaseDevice() override
release data back end device if a the data back end is released, the developper has to use acquireDev...
Definition mzcbormsrunreader.cpp:222
pappso::MzcborMsRunReader::readSpectrumCollection
virtual void readSpectrumCollection(SpectrumCollectionHandlerInterface &handler) override
function to visit an MsRunReader and get each Spectrum in a spectrum collection handler
Definition mzcbormsrunreader.cpp:395
pappso::MzcborMsRunReader::m_spectrumIndexPositionInFile
std::vector< qint64 > m_spectrumIndexPositionInFile
Definition mzcbormsrunreader.h:134
pappso::MzcborMsRunReader::spectrumStringIdentifier2SpectrumIndex
virtual std::size_t spectrumStringIdentifier2SpectrumIndex(const QString &spectrum_identifier) override
if possible, get the spectrum index given a string identifier throw a not found exception if spectrum...
Definition mzcbormsrunreader.cpp:484
pappso::MzcborMsRunReader::m_spectrumRtList
std::vector< double > m_spectrumRtList
Definition mzcbormsrunreader.h:137
pappso::MzcborMsRunReader::massSpectrumCstSPtr
virtual MassSpectrumCstSPtr massSpectrumCstSPtr(std::size_t spectrum_index) override
Definition mzcbormsrunreader.cpp:287
pappso::MzcborMsRunReader::scanNumber2SpectrumIndex
virtual std::size_t scanNumber2SpectrumIndex(std::size_t scan_number) override
if possible, converts a scan number into a spectrum index This is a convenient function to help trans...
Definition mzcbormsrunreader.cpp:163
pappso::MzcborMsRunReader::m_scan2SpectrumIndexMap
std::map< std::size_t, std::size_t > m_scan2SpectrumIndexMap
Definition mzcbormsrunreader.h:139
pappso::MzcborMsRunReader::getMzcborSpectrumSp
std::shared_ptr< pappso::cbor::mzcbor::Spectrum > getMzcborSpectrumSp(std::size_t spectrum_index, bool want_binary_data) const
get spectrum mzML element
Definition mzcbormsrunreader.cpp:636
pappso::MzcborMsRunReader::spectrumListSize
virtual std::size_t spectrumListSize() const override
get the totat number of spectrum conained in the MSrun data file
Definition mzcbormsrunreader.cpp:478
pappso::MzcborMsRunReader::MzcborMsRunReader
MzcborMsRunReader(MsRunIdCstSPtr &msrun_id_csp)
Definition mzcbormsrunreader.cpp:40
pappso::MzcborMsRunReader::fillMzcborSpectrum
virtual void fillMzcborSpectrum(std::size_t spectrum_index, pappso::cbor::mzcbor::Spectrum &spectrum, bool want_binary_data) const
Definition mzcbormsrunreader.cpp:534
pappso::MzcborMsRunReader::readSpectrumCollectionByMsLevel
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
Definition mzcbormsrunreader.cpp:467
pappso::MzcborMsRunReader::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 mzcbormsrunreader.cpp:325
pappso::MzcborMsRunReader::massSpectrumSPtr
virtual MassSpectrumSPtr massSpectrumSPtr(std::size_t spectrum_index) override
get a MassSpectrumSPtr class given its spectrum index
Definition mzcbormsrunreader.cpp:293
pappso::MzcborMsRunReader::~MzcborMsRunReader
virtual ~MzcborMsRunReader()
Definition mzcbormsrunreader.cpp:47
pappso::MzcborMsRunReader::m_spectrumMsLevelList
std::vector< std::uint8_t > m_spectrumMsLevelList
Definition mzcbormsrunreader.h:136
pappso::MzcborMsRunReader::acquireDevice
virtual bool acquireDevice() override
acquire data back end device
Definition mzcbormsrunreader.cpp:210
pappso::MzcborMsRunReader::accept
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,...
Definition mzcbormsrunreader.cpp:194
pappso::MzcborMsRunReader::initialize
virtual void initialize() override
Definition mzcbormsrunreader.cpp:61
pappso::OboPsiModTerm
Definition obopsimodterm.h:34
pappso::PappsoException
Definition pappsoexception.h:41
pappso::PappsoException::what
const char * what() const noexcept override
Definition pappsoexception.h:72
pappso::PappsoException::qwhat
virtual const QString & qwhat() const
Definition pappsoexception.h:66
pappso::QualifiedMassSpectrum
Class representing a fully specified mass spectrum.
Definition qualifiedmassspectrum.h:99
pappso::QualifiedMassSpectrum::setPrecursorNativeId
void setPrecursorNativeId(const QString &native_id)
Set the scan native id of the precursor ion.
Definition qualifiedmassspectrum.cpp:430
pappso::QualifiedMassSpectrum::appendPrecursorIonData
void appendPrecursorIonData(const PrecursorIonData &precursor_ion_data)
Definition qualifiedmassspectrum.cpp:443
pappso::QualifiedMassSpectrum::setMassSpectrumId
void setMassSpectrumId(const MassSpectrumId &iD)
Set the MassSpectrumId.
Definition qualifiedmassspectrum.cpp:146
pappso::QualifiedMassSpectrum::setMsLevel
void setMsLevel(uint ms_level)
Set the mass spectrum level.
Definition qualifiedmassspectrum.cpp:181
pappso::QualifiedMassSpectrum::setPrecursorSpectrumIndex
void setPrecursorSpectrumIndex(std::size_t precursor_scan_num)
Set the scan number of the precursor ion.
Definition qualifiedmassspectrum.cpp:414
pappso::QualifiedMassSpectrum::getPrecursorMz
pappso_double getPrecursorMz(bool *ok=nullptr) const
get precursor mz
Definition qualifiedmassspectrum.cpp:240
pappso::QualifiedMassSpectrum::setMassSpectrumSPtr
void setMassSpectrumSPtr(MassSpectrumSPtr massSpectrum)
Set the MassSpectrumSPtr.
Definition qualifiedmassspectrum.cpp:122
pappso::QualifiedMassSpectrum::setRtInSeconds
void setRtInSeconds(pappso_double rt)
Set the retention time in seconds.
Definition qualifiedmassspectrum.cpp:197
pappso::QualifiedMassSpectrum::getRtInSeconds
pappso_double getRtInSeconds() const
Get the retention time in seconds.
Definition qualifiedmassspectrum.cpp:205
pappso::QualifiedMassSpectrum::setEmptyMassSpectrum
void setEmptyMassSpectrum(bool is_empty_mass_spectrum)
Definition qualifiedmassspectrum.cpp:166
pappso::SpectrumCollectionHandlerInterface
interface to collect spectrums from the MsRunReader class
Definition spectrumcollectionhandlerinterface.h:52
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::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 spectrumcollectionhandlerinterface.cpp:63
pappso::Trace
A simple container of DataPoint instances.
Definition trace.h:152
pappso::UiMonitorVoid
Definition uimonitorvoid.h:42
pappso::cbor::CborStreamReader
simple override of the raw QCborStreamReader This adds convenient functions to put CBOR data into C++...
Definition cborstreamreader.h:46
pappso::cbor::mzcbor::MzcborBuildIndexReader
Definition mzcborbuildindexreader.h:46
pappso::cbor::mzcbor::MzcborBuildIndexReader::getSpectrumIndexPositionInFile
const std::vector< qint64 > & getSpectrumIndexPositionInFile() const
Definition mzcborbuildindexreader.cpp:70
pappso::cbor::mzcbor::MzcborBuildIndexReader::readCbor
virtual void readCbor(QFile *cborp, pappso::UiMonitorInterface &monitor) override
read mzCBOR file
Definition mzcborbuildindexreader.cpp:51
pappso::cbor::mzcbor::MzcborBuildIndexReader::getNativeId2SpectrumIndexMap
const std::map< QString, std::size_t > & getNativeId2SpectrumIndexMap() const
Definition mzcborbuildindexreader.cpp:76
pappso::cbor::mzcbor::MzcborIndexReader
Definition mzcborindexreader.h:43
pappso::cbor::mzcbor::MzcborIndexReader::getRunAndSpectrumTotalIonCountList
const std::vector< std::vector< qint64 > > & getRunAndSpectrumTotalIonCountList() const
Definition mzcborindexreader.cpp:174
pappso::cbor::mzcbor::MzcborIndexReader::close
virtual void close()
convenient function to clean pointer before leaving
Definition mzcborindexreader.cpp:41
pappso::cbor::mzcbor::MzcborIndexReader::getRunAndSpectrumMsLevelList
const std::vector< std::vector< std::uint8_t > > & getRunAndSpectrumMsLevelList() const
Definition mzcborindexreader.cpp:186
pappso::cbor::mzcbor::MzcborIndexReader::getRunAndSpectrumOffsetList
const std::vector< std::vector< qint64 > > & getRunAndSpectrumOffsetList() const
Definition mzcborindexreader.cpp:162
pappso::cbor::mzcbor::MzcborIndexReader::getRunAndSpectrumIdList
const std::vector< std::vector< QString > > & getRunAndSpectrumIdList() const
Definition mzcborindexreader.cpp:168
pappso::cbor::mzcbor::MzcborIndexReader::getRunIdList
const std::vector< QString > & getRunIdList() const
Definition mzcborindexreader.cpp:155
pappso::cbor::mzcbor::MzcborIndexReader::getRunAndSpectrumRtList
const std::vector< std::vector< double > > & getRunAndSpectrumRtList() const
Definition mzcborindexreader.cpp:180
pappso::cbor::mzcbor::MzcborIndexReader::readCbor
virtual void readCbor(QFile *cborp)
Definition mzcborindexreader.cpp:46
pappso::cbor::mzcbor::MzcborReaderBase::readCbor
virtual void readCbor(QFile *cborp, pappso::UiMonitorInterface &monitor)
read mzCBOR file
Definition mzcborreaderbase.cpp:45
pappso::cbor::mzcbor::MzcborReaderBase::close
virtual void close()
convenient function to clean pointer before leaving
Definition mzcborreaderbase.cpp:40
pappso::cbor::mzcbor::MzcborSpectrumCollectionReader
Definition mzcborspectrumcollectionreader.h:46
pappso::cbor::mzcbor::MzcborSpectrumCollectionReader::setMsRunId
void setMsRunId(const MsRunIdCstSPtr &msrun_id)
Definition mzcborspectrumcollectionreader.cpp:49
pappso::cbor::mzcbor::MzcborSpectrumCollectionReader::setNativeId2SpectrumIndexMapPtr
void setNativeId2SpectrumIndexMapPtr(const std::map< QString, std::size_t > *nativeId2SpectrumIndexMap)
Definition mzcborspectrumcollectionreader.cpp:56
exceptionnotfound.h
exceptionnotimplemented.h
mzcborbuildindexreader.h
read mzcbor to build an index
mzcborindexreader.h
read mzcbor index file
mzcbormsrunreader.h
MSrun file reader for mzcbor.
mzcborspectrumcollectionreader.h
read mzcbor for spectrum collection handler
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition aa.cpp:39
pappso::MsRunIdCstSPtr
std::shared_ptr< const MsRunId > MsRunIdCstSPtr
Definition msrunid.h:46
pappso::MassSpectrumCstSPtr
std::shared_ptr< const MassSpectrum > MassSpectrumCstSPtr
Definition massspectrum.h:54
pappso::PrecisionPtr
const PrecisionBase * PrecisionPtr
Definition precision.h:122
pappso::MassSpectrumSPtr
std::shared_ptr< MassSpectrum > MassSpectrumSPtr
Definition massspectrum.h:53
pappso::XicCoordSPtr
std::shared_ptr< XicCoord > XicCoordSPtr
Definition xiccoord.h:44
pappso::PrecursorIonData
Definition qualifiedmassspectrum.h:75
pappso::PrecursorIonData::mz
double mz
Definition qualifiedmassspectrum.h:76
pappso::PrecursorIonData::intensity
double intensity
Definition qualifiedmassspectrum.h:78
pappso::PrecursorIonData::charge
int charge
Definition qualifiedmassspectrum.h:77
pappso::XicCoord::rtTarget
double rtTarget
the targeted retention time to extract around intended in seconds, and related to one msrun....
Definition xiccoord.h:131
pappso::XicCoord::mzRange
MzRange mzRange
the mass to extract
Definition xiccoord.h:125
pappso::cbor::mzcbor::Spectrum
Definition spectrum.h:51
pappso::cbor::mzcbor::Spectrum::getMsLevel
uint getMsLevel() const
Definition spectrum.cpp:328
pappso::cbor::mzcbor::Spectrum::precursorList
std::vector< Precursor > precursorList
Definition spectrum.h:89
pappso::cbor::mzcbor::Spectrum::index
std::size_t index
Definition spectrum.h:81
pappso::cbor::mzcbor::Spectrum::id
QString id
Definition spectrum.h:80
pappso::cbor::mzcbor::Spectrum::fromCbor
void fromCbor(CborStreamReader &reader, bool want_binary_data)
fill the structure reading data from a CBOR stream
Definition spectrum.cpp:43
pappso::cbor::mzcbor::Spectrum::getRtInSeconds
double getRtInSeconds() const
Definition spectrum.cpp:342
pappso::cbor::mzcbor::Spectrum::decodeTrace
void decodeTrace(pappso::Trace &trace) const
Definition spectrum.cpp:356
pappso::cbor::mzcbor::Spectrum::binaryDataArrayList
std::vector< BinaryDataArray > binaryDataArrayList
Definition spectrum.h:90
pappso::cbor::mzcbor::Spectrum::defaultArrayLength
std::size_t defaultArrayLength
Definition spectrum.h:82
uimonitorvoid.h