31 #include "../../exception/exceptionnotfound.h"
32 #include "../../msrun/xiccoord/xiccoordtims.h"
54 msp_timsData = std::make_shared<TimsData>(mcsp_msRunId.get()->getFileName());
56 if(msp_timsData ==
nullptr)
59 QObject::tr(
"ERROR in TimsMsRunReaderMs2::initialize "
60 "msp_timsData is null for MsRunId %1")
61 .arg(mcsp_msRunId.get()->toString()));
76 QObject::tr(
"ERROR in TimsMsRunReaderMs2::setMs2BuiltinCentroid "
77 "msp_timsData is null"));
92 QObject::tr(
"ERROR in TimsMsRunReaderMs2::setMs2FilterCstSPtr "
93 "msp_timsData is null"));
108 QObject::tr(
"ERROR in TimsMsRunReaderMs2::setMs1FilterCstSPtr "
109 "msp_timsData is null"));
116 qDebug() << file_name;
141 bool want_binary_data)
const
144 std::size_t precursor_index = (spectrum_index / 2) + 1;
149 msp_timsData.get()->getSpectrumDescrWithPrecursorId(precursor_index);
154 QObject::tr(
"spectrum_index %1 NOT FOUND in file %2 : %3")
157 .arg(error.
qwhat()));
160 if(spectrum_index % 2 == 0)
162 qDebug() <<
"MS1 spectrum precursor_index=" << precursor_index;
166 getMsRunId(), mass_spectrum_ms1, spectrum_descr, want_binary_data);
170 return mass_spectrum_ms1;
174 qDebug() <<
"MS2 spectrum precursor_index=" << precursor_index;
176 if(spectrum_descr.
ms2_index != spectrum_index)
180 QObject::tr(
"ERROR in %1 %2 %3 spectrum_descr.ms2_index(%4) != "
181 "spectrum_index(%5)")
186 .arg(spectrum_index));
190 getMsRunId(), mass_spectrum_ms2, spectrum_descr, want_binary_data);
194 return mass_spectrum_ms2;
210 qDebug() <<
" ms_level=" << ms_level;
223 msp_timsData.get()->ms2ReaderSpectrumCollectionByMsLevel(
237 return (
msp_timsData->getTotalNumberOfPrecursors() * 2);
268 std::vector<std::size_t>
274 return msp_timsData->getPrecursorsFromMzRtCharge(charge, mz_val, rt_sec, k0);
290 std::size_t precursor_index = (spectrum_index / 2) + 1;
291 auto xic = this->
msp_timsData.get()->getXicCoordTimsFromPrecursorId(
292 precursor_index, precision);
294 xic_coord.get()->mzRange = xic.mzRange;
295 xic_coord.get()->rtTarget = xic.rtTarget;
296 xic_coord.get()->scanNumBegin = xic.scanNumBegin;
297 xic_coord.get()->scanNumEnd = xic.scanNumEnd;
315 return msp_timsData.get()->getRetentionTimeLine();
std::size_t getSpectrumIndex() const
base class to read MSrun the only way to build a MsRunReader object is to use the MsRunReaderFactory
bool isMonoThread() const
const MsRunIdCstSPtr & getMsRunId() const
virtual const QString & qwhat() const
Class representing a fully specified mass spectrum.
const MassSpectrumId & getMassSpectrumId() const
Get the MassSpectrumId.
MassSpectrumSPtr getMassSpectrumSPtr() const
Get the MassSpectrumSPtr.
interface to collect spectrums from the MsRunReader class
virtual void loadingEnded()
virtual void spectrumListHasSize(std::size_t size)
void setMs2FilterCstSPtr(pappso::FilterInterfaceCstSPtr filter)
void setMs1FilterCstSPtr(pappso::FilterInterfaceCstSPtr filter)
virtual QualifiedMassSpectrum qualifiedMassSpectrum(std::size_t spectrum_index, bool want_binary_data=true) const override
get a QualifiedMassSpectrum class given its scan number
TimsMsRunReaderMs2(MsRunIdCstSPtr &msrun_id_csp)
virtual pappso::XicCoordSPtr newXicCoordSPtrFromSpectrumIndex(std::size_t spectrum_index, pappso::PrecisionPtr precision) const override
get a xic coordinate object from a given spectrum index
virtual MassSpectrumSPtr massSpectrumSPtr(std::size_t spectrum_index) override
get a MassSpectrumSPtr class given its spectrum index
pappso::FilterInterfaceCstSPtr msp_ms2Filter
virtual std::size_t spectrumListSize() const override
get the totat number of spectrum conained in the MSrun data file
virtual bool releaseDevice() override
release data back end device if a the data back end is released, the developper has to use acquireDev...
pappso::FilterInterfaceCstSPtr msp_ms1Filter
virtual void readSpectrumCollection(SpectrumCollectionHandlerInterface &handler) override
function to visit an MsRunReader and get each Spectrum in a spectrum collection handler
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.
virtual void initialize() override
virtual std::vector< double > getRetentionTimeLine() override
retention timeline get retention times along the MSrun in seconds
bool m_builtinMs2Centroid
enable builtin centroid on raw tims integers by default
virtual Trace getTicChromatogram() override
get a TIC chromatogram
void setMs2BuiltinCentroid(bool centroid)
enable or disable simple centroid filter on raw tims data for MS2
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
virtual bool acquireDevice() override
acquire data back end device
virtual bool hasScanNumbers() const override
tells if spectra can be accessed using scan numbers by default, it returns false. Only overrided func...
virtual ~TimsMsRunReaderMs2()
virtual MassSpectrumCstSPtr massSpectrumCstSPtr(std::size_t spectrum_index) override
virtual TimsDataSp getTimsDataSPtr()
give an access to the underlying raw data pointer
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,...
virtual pappso::XicCoordSPtr newXicCoordSPtrFromQualifiedMassSpectrum(const pappso::QualifiedMassSpectrum &mass_spectrum, pappso::PrecisionPtr precision) const override
get a xic coordinate object from a given spectrum
A simple container of DataPoint instances.
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
std::shared_ptr< const MsRunId > MsRunIdCstSPtr
std::shared_ptr< TimsData > TimsDataSp
shared pointer on a TimsData object
std::shared_ptr< const MassSpectrum > MassSpectrumCstSPtr
std::shared_ptr< const FilterInterface > FilterInterfaceCstSPtr
std::shared_ptr< MassSpectrum > MassSpectrumSPtr
std::shared_ptr< XicCoordTims > XicCoordTimsSPtr
std::shared_ptr< XicCoord > XicCoordSPtr
MSrun file reader for native Bruker TimsTOF specialized for MS2 purpose.