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::MzcborMsRunReader 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
 function to visit an MsRunReader and get each Spectrum in a spectrum collection handler
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 std::size_t spectrumStringIdentifier2SpectrumIndex (const QString &spectrum_identifier)=0
 if possible, get the spectrum index given a string identifier throw a not found exception if spectrum identifier is not found
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
virtual const OboPsiModTerm getOboPsiModTermInstrumentModelName () const
 get OboPsiModTerm corresponding to the instrument model name child of : [Term] id: MS:1000031 name: instrument model def: "Instrument model name not including the vendor's name." [PSI:MS] relationship: part_of MS:1000463 ! instrument

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 63 of file msrunreader.h.

Constructor & Destructor Documentation

◆ MsRunReader() [1/2]

◆ MsRunReader() [2/2]

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

Definition at line 48 of file msrunreader.cpp.

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

References MsRunReader(), m_isMonoThread, mcsp_msRunId, and mpa_multiMapScanNumber.

◆ ~MsRunReader()

pappso::MsRunReader::~MsRunReader ( )
virtual

Definition at line 62 of file msrunreader.cpp.

63{
64 if(mpa_multiMapScanNumber == nullptr)
66}

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::MzcborMsRunReader, pappso::PwizMsRunReader, pappso::TimsMsRunReaderBase, pappso::TimsMsRunReaderMs2, pappso::TimsMsRunReaderMs2Selected, and pappso::XyMsRunReader.

◆ acquireDevice()

◆ getMsRunId()

◆ getOboPsiModTermInstrumentModelName()

const pappso::OboPsiModTerm pappso::MsRunReader::getOboPsiModTermInstrumentModelName ( ) const
virtual

get OboPsiModTerm corresponding to the instrument model name child of : [Term] id: MS:1000031 name: instrument model def: "Instrument model name not including the vendor's name." [PSI:MS] relationship: part_of MS:1000463 ! instrument

Reimplemented in pappso::MzcborMsRunReader, pappso::PwizMsRunReader, and pappso::TimsMsRunReaderBase.

Definition at line 194 of file msrunreader.cpp.

195{
196 throw ExceptionNotFound(
197 QObject::tr("instrument model name not found in %1").arg(mcsp_msRunId.get()->getFileName()));
198}

References mcsp_msRunId.

Referenced by acquireDevice().

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

Definition at line 127 of file msrunreader.cpp.

128{
129 qDebug();
130
131 try
132 {
133
134 MsRunReaderRetentionTimeLine reader_timeline;
135 MsRunReadConfig config;
136 config.setMsLevels({1});
137 config.setNeedPeakList(false);
138 // readSpectrumCollectionByMsLevel(reader_timeline, 1);
139 readSpectrumCollection2(config, reader_timeline);
140
141 return reader_timeline.getRetentionTimeLine();
142 }
143
144 catch(ExceptionNotFound &error)
145 {
146 throw ExceptionNotFound(QObject::tr("error reading file %1 : %2")
147 .arg(mcsp_msRunId.get()->getFileName())
148 .arg(error.qwhat()));
149 }
150 catch(PappsoException &error)
151 {
152 throw PappsoException(QObject::tr("error reading file %1 : %2")
153 .arg(mcsp_msRunId.get()->getFileName())
154 .arg(error.qwhat()));
155 }
156}
virtual void readSpectrumCollection2(const MsRunReadConfig &config, SpectrumCollectionHandlerInterface &handler)=0
function to visit an MsRunReader and get each Spectrum in a spectrum collection handler

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

Referenced by acquireDevice(), and pappso::MzcborMsRunReader::getRetentionTimeLine().

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

Definition at line 160 of file msrunreader.cpp.

161{
162 qDebug();
163
164 try
165 {
166 MsRunReaderTicChromatogram ms_run_reader;
167
168 MsRunReadConfig config;
169 config.setMsLevels({1});
170 config.setNeedPeakList(true);
171 // readSpectrumCollectionByMsLevel(reader_timeline, 1);
172 readSpectrumCollection2(config, ms_run_reader);
173
174 return ms_run_reader.getTicChromatogram();
175 }
176
177 catch(ExceptionNotFound &error)
178 {
179 throw ExceptionNotFound(QObject::tr("error reading file %1 : %2")
180 .arg(mcsp_msRunId.get()->getFileName())
181 .arg(error.qwhat()));
182 }
183 catch(PappsoException &error)
184 {
185 throw PappsoException(QObject::tr("error reading file %1 : %2")
186 .arg(mcsp_msRunId.get()->getFileName())
187 .arg(error.qwhat()));
188 }
189}

References pappso::MsRunReaderTicChromatogram::getTicChromatogram(), mcsp_msRunId, pappso::PappsoException::qwhat(), readSpectrumCollection2(), pappso::MsRunReadConfig::setMsLevels(), and pappso::MsRunReadConfig::setNeedPeakList().

Referenced by acquireDevice(), and pappso::MzcborMsRunReader::getTicChromatogram().

◆ 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::MzcborMsRunReader, pappso::PwizMsRunReader, pappso::TimsMsRunReaderBase, pappso::TimsMsRunReaderMs2, and pappso::TimsMsRunReaderMs2Selected.

Definition at line 121 of file msrunreader.cpp.

122{
123 return false;
124}

Referenced by readSpectrumCollectionByMsLevel().

◆ initialize()

◆ isMonoThread()

bool pappso::MsRunReader::isMonoThread ( ) const

Definition at line 75 of file msrunreader.cpp.

76{
77 return m_isMonoThread;
78}

References m_isMonoThread.

Referenced by acquireDevice(), and pappso::TimsMsRunReaderMs2::readSpectrumCollectionByMsLevel().

◆ massSpectrumCstSPtr()

◆ massSpectrumSPtr()

◆ 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

◆ 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::MzcborMsRunReader, 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.

Reimplemented in pappso::MzcborMsRunReader.

Definition at line 82 of file msrunreader.cpp.

83{
84 qDebug() << " " << mpa_multiMapScanNumber;
85
86 if(mpa_multiMapScanNumber == nullptr)
87 {
88 mpa_multiMapScanNumber = new MsRunReaderScanNumberMultiMap();
89
90 MsRunReadConfig config;
91 std::vector<size_t> ms_levels;
92 for(std::size_t i = 1; i < 9; i++)
93 {
94 ms_levels.push_back(i);
95 }
96 config.setMsLevels(ms_levels);
97 config.setNeedPeakList(false);
99 }
100 try
101 {
102 return mpa_multiMapScanNumber->getSpectrumIndexFromScanNumber(scan_number);
103 }
104
105 catch(ExceptionNotFound &error)
106 {
107 throw ExceptionNotFound(QObject::tr("error reading file %1 : %2")
108 .arg(mcsp_msRunId.get()->getFileName())
109 .arg(error.qwhat()));
110 }
111 catch(PappsoException &error)
112 {
113 throw PappsoException(QObject::tr("error reading file %1 : %2")
114 .arg(mcsp_msRunId.get()->getFileName())
115 .arg(error.qwhat()));
116 }
117}

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

Referenced by readSpectrumCollectionByMsLevel().

◆ 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 69 of file msrunreader.cpp.

70{
71 m_isMonoThread = is_mono_thread;
72}

References m_isMonoThread.

Referenced by acquireDevice().

◆ spectrumListSize()

◆ spectrumStringIdentifier2SpectrumIndex()

virtual std::size_t pappso::MsRunReader::spectrumStringIdentifier2SpectrumIndex ( const QString & spectrum_identifier)
pure virtual

if possible, get the spectrum index given a string identifier throw a not found exception if spectrum identifier is not found

Parameters
spectrum_identifierstring identifier of a specific spectrum
Returns
the spectrum index

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

◆ MsFileAccessor

friend class MsFileAccessor
friend

Definition at line 66 of file msrunreader.h.

References MsRunReader(), getMsRunId(), and MsFileAccessor.

Referenced by MsFileAccessor.

Member Data Documentation

◆ m_isMonoThread

bool pappso::MsRunReader::m_isMonoThread = false
private

Definition at line 206 of file msrunreader.h.

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

◆ mcsp_msRunId

MsRunIdCstSPtr pappso::MsRunReader::mcsp_msRunId
protected

◆ mpa_multiMapScanNumber

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

Definition at line 195 of file msrunreader.h.

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


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