libpappsomspp
Library for mass spectrometry
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 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 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...
 
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)
 
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
 get a TIC chromatogram More...
 
- 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. More...
 
void setMonoThread (bool is_mono_thread)
 set only one is_mono_thread to true More...
 
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 More...
 

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 More...
 

Friends

class MsFileAccessor
 

Additional Inherited Members

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

Detailed Description

Definition at line 39 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 }
MsRunReader(MsRunIdCstSPtr &ms_run_id)
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 256 of file timsmsrunreaderms2.cpp.

257 {
258  if(msp_timsData == nullptr)
259  {
260  initialize();
261  msp_timsData->setMs2BuiltinCentroid(m_builtinMs2Centroid);
262  msp_timsData->setMs1FilterCstSPtr(msp_ms1Filter);
263  msp_timsData->setMs2FilterCstSPtr(msp_ms2Filter);
264  }
265  return true;
266 }
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 269 of file timsmsrunreaderms2.cpp.

273 {
274  return msp_timsData->getPrecursorsFromMzRtCharge(charge, mz_val, rt_sec, k0);
275 }

◆ 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 313 of file timsmsrunreaderms2.cpp.

314 {
315  return msp_timsData.get()->getRetentionTimeLine();
316 }

◆ 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 319 of file timsmsrunreaderms2.cpp.

320 {
321  // Use the Sqlite database to fetch the total ion current chromatogram (TIC
322  // chromatogram).
323 
324  acquireDevice();
325 
326  return msp_timsData->getTicChromatogram();
327 }
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 278 of file timsmsrunreaderms2.cpp.

279 {
280  acquireDevice();
281  return msp_timsData;
282 }

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 242 of file timsmsrunreaderms2.cpp.

243 {
244  return false;
245 }

◆ 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
Definition: msrunreader.h:301

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 304 of file timsmsrunreaderms2.cpp.

307 {
309  mass_spectrum.getMassSpectrumId().getSpectrumIndex(), precision);
310 }
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 286 of file timsmsrunreaderms2.cpp.

288 {
289  XicCoordTimsSPtr xic_coord = std::make_shared<XicCoordTims>();
290  std::size_t precursor_index = (spectrum_index / 2) + 1;
291  auto xic = this->msp_timsData.get()->getXicCoordTimsFromPrecursorId(
292  precursor_index, precision);
293 
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;
298 
299 
300  return xic_coord;
301 }
std::shared_ptr< XicCoordTims > XicCoordTimsSPtr
Definition: xiccoordtims.h:38

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().

◆ 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 207 of file timsmsrunreaderms2.cpp.

209 {
210  qDebug() << " ms_level=" << ms_level;
211  // We'll need it to perform the looping in the spectrum list.
212  std::size_t spectrum_list_size = spectrumListSize();
213 
214  // qDebug() << "The spectrum list has size:" << spectrum_list_size;
215 
216  // Inform the handler of the spectrum list so that it can handle feedback to
217  // the user.
218  handler.spectrumListHasSize(spectrum_list_size);
219 
220 
221  msp_timsData.get()->setMonoThread(isMonoThread());
222 
223  msp_timsData.get()->ms2ReaderSpectrumCollectionByMsLevel(
224  getMsRunId(), handler, ms_level);
225  // Now let the loading handler know that the loading of the data has ended.
226  // The handler might need this "signal" to perform additional tasks or to
227  // cleanup cruft.
228 
229  // qDebug() << "Loading ended";
230  handler.loadingEnded();
231 }
bool isMonoThread() const
virtual void spectrumListHasSize(std::size_t size)
Definition: msrunreader.cpp:53
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().

◆ 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 249 of file timsmsrunreaderms2.cpp.

250 {
251  msp_timsData = nullptr;
252  return true;
253 }

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 235 of file timsmsrunreaderms2.cpp.

236 {
237  return (msp_timsData->getTotalNumberOfPrecursors() * 2);
238 }

References msp_timsData.

Referenced by readSpectrumCollectionByMsLevel().

Friends And Related Function Documentation

◆ MsFileAccessor

friend class MsFileAccessor
friend

Definition at line 41 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 120 of file timsmsrunreaderms2.h.

Referenced by acquireDevice(), and setMs2BuiltinCentroid().

◆ msp_ms1Filter

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

Definition at line 116 of file timsmsrunreaderms2.h.

Referenced by acquireDevice(), and setMs1FilterCstSPtr().

◆ msp_ms2Filter

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

Definition at line 117 of file timsmsrunreaderms2.h.

Referenced by acquireDevice(), and setMs2FilterCstSPtr().

◆ msp_timsData


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