libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::TimsMsRunReaderMs2 Class Reference

#include <timsmsrunreaderms2.h>

Inheritance diagram for pappso::TimsMsRunReaderMs2:
pappso::MsRunReader pappso::TimsMsRunReaderMs2Selected

Public Member Functions

 TimsMsRunReaderMs2 (MsRunIdCstSPtr &msrun_id_csp)
 
virtual ~TimsMsRunReaderMs2 ()
 
virtual MassSpectrumSPtr massSpectrumSPtr (std::size_t spectrum_index) override
 get a MassSpectrumSPtr class given its spectrum index
 
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
 
virtual void readSpectrumCollection (SpectrumCollectionHandlerInterface &handler) override
 function to visit an MsRunReader and get each Spectrum in a spectrum collection handler
 
virtual void readSpectrumCollection2 (const MsRunReadConfig &config, SpectrumCollectionHandlerInterface &handler) override
 
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 pappso::XicCoordSPtr newXicCoordSPtrFromQualifiedMassSpectrum (const pappso::QualifiedMassSpectrum &mass_spectrum, pappso::PrecisionPtr precision) const override
 get a xic coordinate object from a given spectrum
 
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 std::size_t spectrumListSize () const override
 get the totat number of spectrum conained in the MSrun data file
 
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
 
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
 
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 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
 
virtual bool acquireDevice () override
 acquire data back end device
 
virtual TimsDataSp getTimsDataSPtr ()
 give an access to the underlying raw data pointer
 
virtual std::vector< double > getRetentionTimeLine () override
 retention timeline get retention times along the MSrun in seconds
 
virtual Trace getTicChromatogram () override
 get a TIC chromatogram
 
- Public Member Functions inherited from pappso::MsRunReader
 MsRunReader (MsRunIdCstSPtr &ms_run_id)
 
 MsRunReader (const MsRunReader &other)
 
virtual ~MsRunReader ()
 
const MsRunIdCstSPtrgetMsRunId () 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.
 
void setMonoThread (bool is_mono_thread)
 set only one is_mono_thread to true
 
bool isMonoThread () const
 

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
 

Private Attributes

TimsDataSp msp_timsData = nullptr
 
pappso::FilterInterfaceCstSPtr msp_ms1Filter
 
pappso::FilterInterfaceCstSPtr msp_ms2Filter
 
bool m_builtinMs2Centroid = true
 enable builtin centroid on raw tims integers by default
 

Friends

class MsFileAccessor
 

Additional Inherited Members

- Protected Attributes inherited from pappso::MsRunReader
MsRunIdCstSPtr mcsp_msRunId
 
MsRunReaderScanNumberMultiMapmpa_multiMapScanNumber = nullptr
 

Detailed Description

Definition at line 41 of file timsmsrunreaderms2.h.

Constructor & Destructor Documentation

◆ TimsMsRunReaderMs2()

TimsMsRunReaderMs2::TimsMsRunReaderMs2 ( MsRunIdCstSPtr msrun_id_csp)
Todo:
write docs

Definition at line 37 of file timsmsrunreaderms2.cpp.

38 : MsRunReader(msrun_id_csp)
39{
40 initialize();
41}
base class to read MSrun the only way to build a MsRunReader object is to use the MsRunReaderFactory
Definition msrunreader.h:63
virtual void initialize() override

References initialize().

◆ ~TimsMsRunReaderMs2()

TimsMsRunReaderMs2::~TimsMsRunReaderMs2 ( )
virtual

Definition at line 43 of file timsmsrunreaderms2.cpp.

44{
45 if(msp_timsData != nullptr)
46 {
47 msp_timsData = nullptr;
48 }
49}

References msp_timsData.

Member Function Documentation

◆ accept()

bool TimsMsRunReaderMs2::accept ( const QString &  file_name) const
overrideprotectedvirtual

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

Implements pappso::MsRunReader.

Reimplemented in pappso::TimsMsRunReaderMs2Selected.

Definition at line 114 of file timsmsrunreaderms2.cpp.

115{
116 qDebug() << file_name;
117 return true;
118}

◆ acquireDevice()

bool TimsMsRunReaderMs2::acquireDevice ( )
overridevirtual

acquire data back end device

Returns
bool true if done

Implements pappso::MsRunReader.

Definition at line 264 of file timsmsrunreaderms2.cpp.

265{
266 if(msp_timsData == nullptr)
267 {
268 initialize();
269 msp_timsData->setMs2BuiltinCentroid(m_builtinMs2Centroid);
270 msp_timsData->setMs1FilterCstSPtr(msp_ms1Filter);
271 msp_timsData->setMs2FilterCstSPtr(msp_ms2Filter);
272 }
273 return true;
274}
pappso::FilterInterfaceCstSPtr msp_ms2Filter
pappso::FilterInterfaceCstSPtr msp_ms1Filter
bool m_builtinMs2Centroid
enable builtin centroid on raw tims integers by default

References initialize(), m_builtinMs2Centroid, msp_ms1Filter, msp_ms2Filter, and msp_timsData.

Referenced by getTicChromatogram().

◆ getPrecursorsIDFromMzRt()

std::vector< std::size_t > pappso::TimsMsRunReaderMs2::getPrecursorsIDFromMzRt ( int  charge,
double  mz_val,
double  rt_sec,
double  k0 
)
virtual

Get all the precursors id which match the values.

Returns
list of precursors Ids

Definition at line 277 of file timsmsrunreaderms2.cpp.

281{
282 return msp_timsData->getPrecursorsFromMzRtCharge(charge, mz_val, rt_sec, k0);
283}

◆ getRetentionTimeLine()

std::vector< double > pappso::TimsMsRunReaderMs2::getRetentionTimeLine ( )
overridevirtual

retention timeline get retention times along the MSrun in seconds

Returns
vector of retention times (seconds)

Reimplemented from pappso::MsRunReader.

Definition at line 321 of file timsmsrunreaderms2.cpp.

322{
323 return msp_timsData.get()->getRetentionTimeLine();
324}

◆ getTicChromatogram()

Trace TimsMsRunReaderMs2::getTicChromatogram ( )
overridevirtual

get a TIC chromatogram

for each retention time, computes the sum of all intensities. For IM-MS, combines the mobility spectra

Note that, formally, a TIC chromatogram is computed only for MS1 spectra.

Returns
a trace (x=rt, y=intensities)

Reimplemented from pappso::MsRunReader.

Definition at line 327 of file timsmsrunreaderms2.cpp.

328{
329 // Use the Sqlite database to fetch the total ion current chromatogram (TIC
330 // chromatogram).
331
333
334 return msp_timsData->getTicChromatogram();
335}
virtual bool acquireDevice() override
acquire data back end device

References acquireDevice(), and msp_timsData.

◆ getTimsDataSPtr()

pappso::TimsDataSp pappso::TimsMsRunReaderMs2::getTimsDataSPtr ( )
virtual

give an access to the underlying raw data pointer

Definition at line 286 of file timsmsrunreaderms2.cpp.

287{
289 return msp_timsData;
290}

Referenced by pappso::TimsXicExtractorInterface::TimsXicExtractorInterface().

◆ hasScanNumbers()

bool TimsMsRunReaderMs2::hasScanNumbers ( ) const
overridevirtual

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::MsRunReader.

Reimplemented in pappso::TimsMsRunReaderMs2Selected.

Definition at line 250 of file timsmsrunreaderms2.cpp.

251{
252 return false;
253}

◆ initialize()

void pappso::TimsMsRunReaderMs2::initialize ( )
overrideprotectedvirtual

Implements pappso::MsRunReader.

Reimplemented in pappso::TimsMsRunReaderMs2Selected.

Definition at line 52 of file timsmsrunreaderms2.cpp.

53{
54 msp_timsData = std::make_shared<TimsData>(mcsp_msRunId.get()->getFileName());
55
56 if(msp_timsData == nullptr)
57 {
58 throw PappsoException(
59 QObject::tr("ERROR in TimsMsRunReaderMs2::initialize "
60 "msp_timsData is null for MsRunId %1")
61 .arg(mcsp_msRunId.get()->toString()));
62 }
63}
MsRunIdCstSPtr mcsp_msRunId

Referenced by TimsMsRunReaderMs2(), and acquireDevice().

◆ massSpectrumCstSPtr()

pappso::MassSpectrumCstSPtr TimsMsRunReaderMs2::massSpectrumCstSPtr ( std::size_t  spectrum_index)
overridevirtual

Implements pappso::MsRunReader.

Reimplemented in pappso::TimsMsRunReaderMs2Selected.

Definition at line 131 of file timsmsrunreaderms2.cpp.

132{
133 QualifiedMassSpectrum mass_spectrum =
134 qualifiedMassSpectrum(spectrum_index, true);
135 return mass_spectrum.getMassSpectrumSPtr();
136}
Class representing a fully specified mass spectrum.
MassSpectrumSPtr getMassSpectrumSPtr() const
Get the MassSpectrumSPtr.
virtual QualifiedMassSpectrum qualifiedMassSpectrum(std::size_t spectrum_index, bool want_binary_data=true) const override
get a QualifiedMassSpectrum class given its scan number

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

◆ massSpectrumSPtr()

pappso::MassSpectrumSPtr TimsMsRunReaderMs2::massSpectrumSPtr ( std::size_t  spectrum_index)
overridevirtual

get a MassSpectrumSPtr class given its spectrum index

Implements pappso::MsRunReader.

Reimplemented in pappso::TimsMsRunReaderMs2Selected.

Definition at line 122 of file timsmsrunreaderms2.cpp.

123{
124 QualifiedMassSpectrum mass_spectrum =
125 qualifiedMassSpectrum(spectrum_index, true);
126 return mass_spectrum.getMassSpectrumSPtr();
127}

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

◆ newXicCoordSPtrFromQualifiedMassSpectrum()

pappso::XicCoordSPtr TimsMsRunReaderMs2::newXicCoordSPtrFromQualifiedMassSpectrum ( const pappso::QualifiedMassSpectrum mass_spectrum,
pappso::PrecisionPtr  precision 
) const
overridevirtual

get a xic coordinate object from a given spectrum

Implements pappso::MsRunReader.

Definition at line 312 of file timsmsrunreaderms2.cpp.

315{
317 mass_spectrum.getMassSpectrumId().getSpectrumIndex(), precision);
318}
std::size_t getSpectrumIndex() const
const MassSpectrumId & getMassSpectrumId() const
Get the MassSpectrumId.
virtual pappso::XicCoordSPtr newXicCoordSPtrFromSpectrumIndex(std::size_t spectrum_index, pappso::PrecisionPtr precision) const override
get a xic coordinate object from a given spectrum index

References pappso::QualifiedMassSpectrum::getMassSpectrumId(), pappso::MassSpectrumId::getSpectrumIndex(), and newXicCoordSPtrFromSpectrumIndex().

◆ newXicCoordSPtrFromSpectrumIndex()

XicCoordSPtr TimsMsRunReaderMs2::newXicCoordSPtrFromSpectrumIndex ( std::size_t  spectrum_index,
pappso::PrecisionPtr  precision 
) const
overridevirtual

get a xic coordinate object from a given spectrum index

Implements pappso::MsRunReader.

Definition at line 294 of file timsmsrunreaderms2.cpp.

296{
297 XicCoordTimsSPtr xic_coord = std::make_shared<XicCoordTims>();
298 std::size_t precursor_index = (spectrum_index / 2) + 1;
299 auto xic = this->msp_timsData.get()->getXicCoordTimsFromPrecursorId(
300 precursor_index, precision);
301
302 xic_coord.get()->mzRange = xic.mzRange;
303 xic_coord.get()->rtTarget = xic.rtTarget;
304 xic_coord.get()->scanNumBegin = xic.scanNumBegin;
305 xic_coord.get()->scanNumEnd = xic.scanNumEnd;
306
307
308 return xic_coord;
309}
std::shared_ptr< XicCoordTims > XicCoordTimsSPtr

References msp_timsData.

Referenced by newXicCoordSPtrFromQualifiedMassSpectrum().

◆ qualifiedMassSpectrum()

QualifiedMassSpectrum TimsMsRunReaderMs2::qualifiedMassSpectrum ( std::size_t  spectrum_index,
bool  want_binary_data = true 
) const
overridevirtual

get a QualifiedMassSpectrum class given its scan number

Implements pappso::MsRunReader.

Reimplemented in pappso::TimsMsRunReaderMs2Selected.

Definition at line 140 of file timsmsrunreaderms2.cpp.

142{
143
144 std::size_t precursor_index = (spectrum_index / 2) + 1;
145 TimsData::SpectrumDescr spectrum_descr;
146 try
147 {
148 spectrum_descr =
149 msp_timsData.get()->getSpectrumDescrWithPrecursorId(precursor_index);
150 }
151 catch(ExceptionNotFound &error)
152 {
153 throw ExceptionNotFound(
154 QObject::tr("spectrum_index %1 NOT FOUND in file %2 : %3")
155 .arg(spectrum_index)
156 .arg(getMsRunId().get()->getFileName())
157 .arg(error.qwhat()));
158 }
159
160 if(spectrum_index % 2 == 0)
161 {
162 qDebug() << "MS1 spectrum precursor_index=" << precursor_index;
163 // this is an MS1 spectrum
164 QualifiedMassSpectrum mass_spectrum_ms1;
165 msp_timsData->getQualifiedMs1MassSpectrumByPrecursorId(
166 getMsRunId(), mass_spectrum_ms1, spectrum_descr, want_binary_data);
167 qDebug(); // << mass_spectrum_ms1.toString();
168
169 // qDebug() << mass_spectrum_ms1.getMassSpectrumSPtr().get()->toString();
170 return mass_spectrum_ms1;
171 }
172 else
173 {
174 qDebug() << "MS2 spectrum precursor_index=" << precursor_index;
175 QualifiedMassSpectrum mass_spectrum_ms2;
176 if(spectrum_descr.ms2_index != spectrum_index)
177 {
178 qDebug();
179 throw PappsoException(
180 QObject::tr("ERROR in %1 %2 %3 spectrum_descr.ms2_index(%4) != "
181 "spectrum_index(%5)")
182 .arg(__FILE__)
183 .arg(__FUNCTION__)
184 .arg(__LINE__)
185 .arg(spectrum_descr.ms2_index)
186 .arg(spectrum_index));
187 }
188
189 msp_timsData->getQualifiedMs2MassSpectrumByPrecursorId(
190 getMsRunId(), mass_spectrum_ms2, spectrum_descr, want_binary_data);
191 qDebug(); // << mass_spectrum_ms2.toString();
192
193 // qDebug() << mass_spectrum_ms2.getMassSpectrumSPtr().get()->toString();
194 return mass_spectrum_ms2;
195 }
196}
const MsRunIdCstSPtr & getMsRunId() const
virtual const QString & qwhat() const

References pappso::MsRunReader::getMsRunId(), pappso::TimsData::SpectrumDescr::ms2_index, msp_timsData, and pappso::PappsoException::qwhat().

Referenced by massSpectrumCstSPtr(), and massSpectrumSPtr().

◆ readSpectrumCollection()

void TimsMsRunReaderMs2::readSpectrumCollection ( SpectrumCollectionHandlerInterface handler)
overridevirtual

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

Implements pappso::MsRunReader.

Reimplemented in pappso::TimsMsRunReaderMs2Selected.

Definition at line 200 of file timsmsrunreaderms2.cpp.

202{
204}
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

References readSpectrumCollectionByMsLevel().

◆ readSpectrumCollection2()

void TimsMsRunReaderMs2::readSpectrumCollection2 ( const MsRunReadConfig config,
SpectrumCollectionHandlerInterface handler 
)
overridevirtual

Implements pappso::MsRunReader.

Reimplemented in pappso::TimsMsRunReaderMs2Selected.

Definition at line 207 of file timsmsrunreaderms2.cpp.

210{
212}

References readSpectrumCollectionByMsLevel().

◆ readSpectrumCollectionByMsLevel()

void TimsMsRunReaderMs2::readSpectrumCollectionByMsLevel ( SpectrumCollectionHandlerInterface handler,
unsigned int  ms_level 
)
overridevirtual

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

Implements pappso::MsRunReader.

Definition at line 215 of file timsmsrunreaderms2.cpp.

217{
218 qDebug() << " ms_level=" << ms_level;
219 // We'll need it to perform the looping in the spectrum list.
220 std::size_t spectrum_list_size = spectrumListSize();
221
222 // qDebug() << "The spectrum list has size:" << spectrum_list_size;
223
224 // Inform the handler of the spectrum list so that it can handle feedback to
225 // the user.
226 handler.spectrumListHasSize(spectrum_list_size);
227
228 msp_timsData.get()->setMonoThread(isMonoThread());
229
230 msp_timsData.get()->ms2ReaderSpectrumCollectionByMsLevel(
231 getMsRunId(), handler, ms_level);
232
233 // Now let the loading handler know that the loading of the data has ended.
234 // The handler might need this "signal" to perform additional tasks or to
235 // cleanup cruft.
236
237 // qDebug() << "Loading ended";
238 handler.loadingEnded();
239}
bool isMonoThread() const
virtual std::size_t spectrumListSize() const override
get the totat number of spectrum conained in the MSrun data file

References pappso::MsRunReader::getMsRunId(), pappso::MsRunReader::isMonoThread(), pappso::SpectrumCollectionHandlerInterface::loadingEnded(), msp_timsData, pappso::SpectrumCollectionHandlerInterface::spectrumListHasSize(), and spectrumListSize().

Referenced by readSpectrumCollection(), and readSpectrumCollection2().

◆ releaseDevice()

bool TimsMsRunReaderMs2::releaseDevice ( )
overridevirtual

release data back end device if a the data back end is released, the developper has to use acquireDevice before using the msrunreader object

Returns
bool true if done

Implements pappso::MsRunReader.

Definition at line 257 of file timsmsrunreaderms2.cpp.

258{
259 msp_timsData = nullptr;
260 return true;
261}

References msp_timsData.

◆ setMs1FilterCstSPtr()

void TimsMsRunReaderMs2::setMs1FilterCstSPtr ( pappso::FilterInterfaceCstSPtr  filter)

Definition at line 98 of file timsmsrunreaderms2.cpp.

99{
100 msp_ms1Filter = filter;
101 if(msp_timsData != nullptr)
102 {
103 msp_timsData->setMs1FilterCstSPtr(filter);
104 }
105 else
106 {
107 throw PappsoException(
108 QObject::tr("ERROR in TimsMsRunReaderMs2::setMs1FilterCstSPtr "
109 "msp_timsData is null"));
110 }
111}

References msp_ms1Filter, and msp_timsData.

◆ setMs2BuiltinCentroid()

void TimsMsRunReaderMs2::setMs2BuiltinCentroid ( bool  centroid)

enable or disable simple centroid filter on raw tims data for MS2

Definition at line 66 of file timsmsrunreaderms2.cpp.

67{
68 m_builtinMs2Centroid = centroid;
69 if(msp_timsData != nullptr)
70 {
71 msp_timsData->setMs2BuiltinCentroid(m_builtinMs2Centroid);
72 }
73 else
74 {
75 throw PappsoException(
76 QObject::tr("ERROR in TimsMsRunReaderMs2::setMs2BuiltinCentroid "
77 "msp_timsData is null"));
78 }
79}

References m_builtinMs2Centroid, and msp_timsData.

Referenced by pappso::TandemWrapperRun::convertOrginalMsData2mzXmlData().

◆ setMs2FilterCstSPtr()

void TimsMsRunReaderMs2::setMs2FilterCstSPtr ( pappso::FilterInterfaceCstSPtr  filter)

Definition at line 82 of file timsmsrunreaderms2.cpp.

83{
84 msp_ms2Filter = filter;
85 if(msp_timsData != nullptr)
86 {
87 msp_timsData->setMs2FilterCstSPtr(msp_ms2Filter);
88 }
89 else
90 {
91 throw PappsoException(
92 QObject::tr("ERROR in TimsMsRunReaderMs2::setMs2FilterCstSPtr "
93 "msp_timsData is null"));
94 }
95}

References msp_ms2Filter, and msp_timsData.

Referenced by pappso::TandemWrapperRun::convertOrginalMsData2mzXmlData().

◆ spectrumListSize()

std::size_t TimsMsRunReaderMs2::spectrumListSize ( ) const
overridevirtual

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

Implements pappso::MsRunReader.

Reimplemented in pappso::TimsMsRunReaderMs2Selected.

Definition at line 243 of file timsmsrunreaderms2.cpp.

244{
245 return (msp_timsData->getTotalNumberOfPrecursors() * 2);
246}

References msp_timsData.

Referenced by readSpectrumCollectionByMsLevel().

Friends And Related Symbol Documentation

◆ MsFileAccessor

friend class MsFileAccessor
friend

Definition at line 43 of file timsmsrunreaderms2.h.

Member Data Documentation

◆ m_builtinMs2Centroid

bool pappso::TimsMsRunReaderMs2::m_builtinMs2Centroid = true
private

enable builtin centroid on raw tims integers by default

Definition at line 125 of file timsmsrunreaderms2.h.

Referenced by acquireDevice(), and setMs2BuiltinCentroid().

◆ msp_ms1Filter

pappso::FilterInterfaceCstSPtr pappso::TimsMsRunReaderMs2::msp_ms1Filter
private

Definition at line 121 of file timsmsrunreaderms2.h.

Referenced by acquireDevice(), and setMs1FilterCstSPtr().

◆ msp_ms2Filter

pappso::FilterInterfaceCstSPtr pappso::TimsMsRunReaderMs2::msp_ms2Filter
private

Definition at line 122 of file timsmsrunreaderms2.h.

Referenced by acquireDevice(), and setMs2FilterCstSPtr().

◆ msp_timsData


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