libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::MsRunReader Class Referenceabstract

base class to read MSrun the only way to build a MsRunReader object is to use the MsRunReaderFactory More...

#include <msrunreader.h>

Inheritance diagram for pappso::MsRunReader:
pappso::BafAsciiMsRunReader pappso::PwizMsRunReader pappso::TimsMsRunReaderBase pappso::XyMsRunReader pappso::TimsFramesMsRunReader pappso::TimsMsRunReader pappso::TimsMsRunReaderDia pappso::TimsMsRunReaderMs2 pappso::TimsMsRunReaderMs2Selected

Public Member Functions

 MsRunReader (const MsRunIdCstSPtr &ms_run_id)
 
 MsRunReader (const MsRunReader &other)
 
virtual ~MsRunReader ()
 
const MsRunIdCstSPtrgetMsRunId () const
 
virtual MassSpectrumSPtr massSpectrumSPtr (std::size_t spectrum_index)=0
 get a MassSpectrumSPtr class given its spectrum index
 
virtual MassSpectrumCstSPtr massSpectrumCstSPtr (std::size_t spectrum_index)=0
 
virtual QualifiedMassSpectrum qualifiedMassSpectrum (std::size_t spectrum_index, bool want_binary_data=true) const =0
 get a QualifiedMassSpectrum class given its scan number
 
virtual XicCoordSPtr newXicCoordSPtrFromSpectrumIndex (std::size_t spectrum_index, PrecisionPtr precision) const =0
 get a xic coordinate object from a given spectrum index
 
virtual XicCoordSPtr newXicCoordSPtrFromQualifiedMassSpectrum (const QualifiedMassSpectrum &mass_spectrum, PrecisionPtr precision) const =0
 get a xic coordinate object from a given spectrum
 
virtual std::size_t spectrumListSize () const =0
 get the totat number of spectrum conained in the MSrun data file
 
virtual void readSpectrumCollection (SpectrumCollectionHandlerInterface &handler)=0
 function to visit an MsRunReader and get each Spectrum in a spectrum collection handler
 
virtual void readSpectrumCollection2 (const MsRunReadConfig &config, SpectrumCollectionHandlerInterface &handler)=0
 
virtual void readSpectrumCollectionByMsLevel (SpectrumCollectionHandlerInterface &handler, unsigned int ms_level)=0
 function to visit an MsRunReader and get each Spectrum in a spectrum collection handler by Ms Levels
 
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.
 
virtual bool hasScanNumbers () const
 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
 
virtual bool releaseDevice ()=0
 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 ()=0
 acquire data back end device
 
virtual std::vector< double > getRetentionTimeLine ()
 retention timeline get retention times along the MSrun in seconds
 
virtual Trace getTicChromatogram ()
 get a TIC chromatogram
 
void setMonoThread (bool is_mono_thread)
 set only one is_mono_thread to true
 
bool isMonoThread () const
 

Protected Member Functions

virtual void initialize ()=0
 
virtual bool accept (const QString &file_name) const =0
 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
 

Protected Attributes

MsRunIdCstSPtr mcsp_msRunId
 
MsRunReaderScanNumberMultiMapmpa_multiMapScanNumber = nullptr
 

Private Attributes

bool m_isMonoThread = false
 

Friends

class MsFileAccessor
 

Detailed Description

base class to read MSrun the only way to build a MsRunReader object is to use the MsRunReaderFactory

Definition at line 62 of file msrunreader.h.

Constructor & Destructor Documentation

◆ MsRunReader() [1/2]

pappso::MsRunReader::MsRunReader ( const MsRunIdCstSPtr ms_run_id)

Definition at line 43 of file msrunreader.cpp.

44 : mcsp_msRunId(ms_run_id)
45{
46}
MsRunIdCstSPtr mcsp_msRunId

◆ MsRunReader() [2/2]

pappso::MsRunReader::MsRunReader ( const MsRunReader other)

Definition at line 48 of file msrunreader.cpp.

49 : mcsp_msRunId(other.mcsp_msRunId)
50{
51 mpa_multiMapScanNumber = nullptr;
52 m_isMonoThread = other.m_isMonoThread;
53}
MsRunReaderScanNumberMultiMap * mpa_multiMapScanNumber

References m_isMonoThread, and mpa_multiMapScanNumber.

◆ ~MsRunReader()

pappso::MsRunReader::~MsRunReader ( )
virtual

Definition at line 63 of file msrunreader.cpp.

64{
65 if(mpa_multiMapScanNumber == nullptr)
67}

References mpa_multiMapScanNumber.

Member Function Documentation

◆ accept()

virtual bool pappso::MsRunReader::accept ( const QString &  file_name) const
protectedpure 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

Implemented in pappso::BafAsciiMsRunReader, pappso::PwizMsRunReader, pappso::TimsMsRunReaderBase, pappso::TimsMsRunReaderMs2, pappso::TimsMsRunReaderMs2Selected, and pappso::XyMsRunReader.

◆ acquireDevice()

virtual bool pappso::MsRunReader::acquireDevice ( )
pure virtual

◆ getMsRunId()

◆ getRetentionTimeLine()

std::vector< double > pappso::MsRunReader::getRetentionTimeLine ( )
virtual

retention timeline get retention times along the MSrun in seconds

Returns
vector of retention times (seconds)

Reimplemented in pappso::TimsMsRunReaderBase, and pappso::TimsMsRunReaderMs2.

Definition at line 120 of file msrunreader.cpp.

121{
122 qDebug();
123
124 try
125 {
126
127 MsRunReaderRetentionTimeLine reader_timeline;
128 MsRunReadConfig config;
129 config.setMsLevels({1});
130 config.setNeedPeakList(false);
131 // readSpectrumCollectionByMsLevel(reader_timeline, 1);
132 readSpectrumCollection2(config, reader_timeline);
133
134 return reader_timeline.getRetentionTimeLine();
135 }
136
137 catch(ExceptionNotFound &error)
138 {
139 throw ExceptionNotFound(QObject::tr("error reading file %1 : %2")
140 .arg(mcsp_msRunId.get()->getFileName())
141 .arg(error.qwhat()));
142 }
143 catch(PappsoException &error)
144 {
145 throw PappsoException(QObject::tr("error reading file %1 : %2")
146 .arg(mcsp_msRunId.get()->getFileName())
147 .arg(error.qwhat()));
148 }
149}
virtual void readSpectrumCollection2(const MsRunReadConfig &config, SpectrumCollectionHandlerInterface &handler)=0

References pappso::MsRunReaderRetentionTimeLine::getRetentionTimeLine(), mcsp_msRunId, pappso::PappsoException::qwhat(), readSpectrumCollection2(), pappso::MsRunReadConfig::setMsLevels(), and pappso::MsRunReadConfig::setNeedPeakList().

◆ getTicChromatogram()

Trace pappso::MsRunReader::getTicChromatogram ( )
virtual

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 in pappso::TimsMsRunReaderBase, and pappso::TimsMsRunReaderMs2.

Definition at line 153 of file msrunreader.cpp.

154{
155 qDebug();
156
157 try
158 {
159 MsRunReaderTicChromatogram ms_run_reader;
160
161 readSpectrumCollection(ms_run_reader);
162
163 return ms_run_reader.getTicChromatogram();
164 }
165
166 catch(ExceptionNotFound &error)
167 {
168 throw ExceptionNotFound(QObject::tr("error reading file %1 : %2")
169 .arg(mcsp_msRunId.get()->getFileName())
170 .arg(error.qwhat()));
171 }
172 catch(PappsoException &error)
173 {
174 throw PappsoException(QObject::tr("error reading file %1 : %2")
175 .arg(mcsp_msRunId.get()->getFileName())
176 .arg(error.qwhat()));
177 }
178}
virtual void readSpectrumCollection(SpectrumCollectionHandlerInterface &handler)=0
function to visit an MsRunReader and get each Spectrum in a spectrum collection handler

References pappso::MsRunReaderTicChromatogram::getTicChromatogram(), mcsp_msRunId, pappso::PappsoException::qwhat(), and readSpectrumCollection().

◆ hasScanNumbers()

bool pappso::MsRunReader::hasScanNumbers ( ) const
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 in pappso::PwizMsRunReader, pappso::TimsMsRunReaderBase, pappso::TimsMsRunReaderMs2, and pappso::TimsMsRunReaderMs2Selected.

Definition at line 114 of file msrunreader.cpp.

115{
116 return false;
117}

◆ initialize()

◆ isMonoThread()

bool pappso::MsRunReader::isMonoThread ( ) const

Definition at line 76 of file msrunreader.cpp.

77{
78 return m_isMonoThread;
79}

References m_isMonoThread.

Referenced by pappso::TimsMsRunReaderMs2::readSpectrumCollectionByMsLevel().

◆ massSpectrumCstSPtr()

◆ massSpectrumSPtr()

virtual MassSpectrumSPtr pappso::MsRunReader::massSpectrumSPtr ( std::size_t  spectrum_index)
pure virtual

◆ newXicCoordSPtrFromQualifiedMassSpectrum()

virtual XicCoordSPtr pappso::MsRunReader::newXicCoordSPtrFromQualifiedMassSpectrum ( const QualifiedMassSpectrum mass_spectrum,
PrecisionPtr  precision 
) const
pure virtual

◆ newXicCoordSPtrFromSpectrumIndex()

virtual XicCoordSPtr pappso::MsRunReader::newXicCoordSPtrFromSpectrumIndex ( std::size_t  spectrum_index,
PrecisionPtr  precision 
) const
pure virtual

◆ qualifiedMassSpectrum()

virtual QualifiedMassSpectrum pappso::MsRunReader::qualifiedMassSpectrum ( std::size_t  spectrum_index,
bool  want_binary_data = true 
) const
pure virtual

◆ readSpectrumCollection()

virtual void pappso::MsRunReader::readSpectrumCollection ( SpectrumCollectionHandlerInterface handler)
pure virtual

◆ readSpectrumCollection2()

◆ readSpectrumCollectionByMsLevel()

virtual void pappso::MsRunReader::readSpectrumCollectionByMsLevel ( SpectrumCollectionHandlerInterface handler,
unsigned int  ms_level 
)
pure virtual

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

Implemented in pappso::BafAsciiMsRunReader, pappso::PwizMsRunReader, pappso::TimsFramesMsRunReader, pappso::TimsMsRunReader, pappso::TimsMsRunReaderDia, pappso::TimsMsRunReaderMs2, and pappso::XyMsRunReader.

◆ releaseDevice()

virtual bool pappso::MsRunReader::releaseDevice ( )
pure virtual

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

Implemented in pappso::BafAsciiMsRunReader, pappso::PwizMsRunReader, pappso::TimsMsRunReaderBase, pappso::TimsMsRunReaderMs2, and pappso::XyMsRunReader.

◆ scanNumber2SpectrumIndex()

std::size_t pappso::MsRunReader::scanNumber2SpectrumIndex ( std::size_t  scan_number)
virtual

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.

Definition at line 83 of file msrunreader.cpp.

84{
85 qDebug() << " " << mpa_multiMapScanNumber;
86
87 if(mpa_multiMapScanNumber == nullptr)
88 {
89 mpa_multiMapScanNumber = new MsRunReaderScanNumberMultiMap();
91 }
92 try
93 {
95 scan_number);
96 }
97
98 catch(ExceptionNotFound &error)
99 {
100 throw ExceptionNotFound(QObject::tr("error reading file %1 : %2")
101 .arg(mcsp_msRunId.get()->getFileName())
102 .arg(error.qwhat()));
103 }
104 catch(PappsoException &error)
105 {
106 throw PappsoException(QObject::tr("error reading file %1 : %2")
107 .arg(mcsp_msRunId.get()->getFileName())
108 .arg(error.qwhat()));
109 }
110}
std::size_t getSpectrumIndexFromScanNumber(std::size_t scan_number) const

References pappso::MsRunReaderScanNumberMultiMap::getSpectrumIndexFromScanNumber(), mcsp_msRunId, mpa_multiMapScanNumber, pappso::PappsoException::qwhat(), and readSpectrumCollection().

◆ setMonoThread()

void pappso::MsRunReader::setMonoThread ( bool  is_mono_thread)

set only one is_mono_thread to true

this avoid to use qtconcurrent

Definition at line 70 of file msrunreader.cpp.

71{
72 m_isMonoThread = is_mono_thread;
73}

References m_isMonoThread.

◆ spectrumListSize()

virtual std::size_t pappso::MsRunReader::spectrumListSize ( ) const
pure virtual

Friends And Related Symbol Documentation

◆ MsFileAccessor

friend class MsFileAccessor
friend

Definition at line 65 of file msrunreader.h.

Member Data Documentation

◆ m_isMonoThread

bool pappso::MsRunReader::m_isMonoThread = false
private

Definition at line 187 of file msrunreader.h.

Referenced by MsRunReader(), isMonoThread(), and setMonoThread().

◆ mcsp_msRunId

◆ mpa_multiMapScanNumber

MsRunReaderScanNumberMultiMap* pappso::MsRunReader::mpa_multiMapScanNumber = nullptr
protected

Definition at line 176 of file msrunreader.h.

Referenced by MsRunReader(), ~MsRunReader(), and scanNumber2SpectrumIndex().


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