libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::cbor::mzcbor::MzcborBuildIndexReader Class Reference

#include <mzcborbuildindexreader.h>

Inheritance diagram for pappso::cbor::mzcbor::MzcborBuildIndexReader:
pappso::cbor::mzcbor::MzcborReaderBase pappso::cbor::CborStreamReaderInterface

Public Member Functions

 MzcborBuildIndexReader (const MsRunIdCstSPtr &msrun_id)
virtual ~MzcborBuildIndexReader ()
virtual void readCbor (QFile *cborp, pappso::UiMonitorInterface &monitor) override
 read mzCBOR file
const std::vector< qint64 > & getSpectrumIndexPositionInFile () const
const std::map< QString, std::size_t > & getNativeId2SpectrumIndexMap () const
Public Member Functions inherited from pappso::cbor::mzcbor::MzcborReaderBase
 MzcborReaderBase ()
virtual ~MzcborReaderBase ()
virtual void readCbor (QIODevice *cborp, pappso::UiMonitorInterface &monitor)
 read mzCBOR from any device (memory buffer or else)
virtual void close ()
 convenient function to clean pointer before leaving
bool isMzcbor () const
const QStringList & getMsrunIdList () const
Public Member Functions inherited from pappso::cbor::CborStreamReaderInterface
 CborStreamReaderInterface ()
virtual ~CborStreamReaderInterface ()

Protected Member Functions

virtual void readMsrun () override
 read only the targeted msrun
void readSpectrumListAndLeave ()
 only the spectrum list of targeted msrun, then stop parsing
void readSpectrum (qint64 position_of_spectrum_in_file, std::size_t index_count)
 read each spectrum in the targeted msrun (msrunId)
Protected Member Functions inherited from pappso::cbor::mzcbor::MzcborReaderBase
void readRoot (pappso::UiMonitorInterface &monitor)
virtual void readReferenceableParamGroupList ()
std::map< QString, CvParamgetCvParamsMap ()
 read the array containing cvParams to give accessions and values
Protected Member Functions inherited from pappso::cbor::CborStreamReaderInterface
bool getExpectedString ()
void initCborReader (QFile *pcborfile)
void initCborReader (QIODevice *pcborfile)

Private Attributes

MsRunIdCstSPtr mcsp_msRunId
QString m_xmlMzMlRunId
std::vector< qint64 > m_spectrumIndexPositionInFile
std::map< QString, std::size_t > m_nativeId2SpectrumIndexMap

Additional Inherited Members

Protected Attributes inherited from pappso::cbor::mzcbor::MzcborReaderBase
bool m_stopParsing = false
Protected Attributes inherited from pappso::cbor::CborStreamReaderInterface
CborStreamReadermpa_cborReader = nullptr
QString m_expectedString
QByteArray m_data

Detailed Description

Todo
write docs

Definition at line 45 of file mzcborbuildindexreader.h.

Constructor & Destructor Documentation

◆ MzcborBuildIndexReader()

pappso::cbor::mzcbor::MzcborBuildIndexReader::MzcborBuildIndexReader ( const MsRunIdCstSPtr & msrun_id)

Default constructor

Definition at line 39 of file mzcborbuildindexreader.cpp.

40 : mcsp_msRunId(msrun_id)
41{
42 m_xmlMzMlRunId = msrun_id.get()->getRunId();
43}

References m_xmlMzMlRunId, and mcsp_msRunId.

◆ ~MzcborBuildIndexReader()

pappso::cbor::mzcbor::MzcborBuildIndexReader::~MzcborBuildIndexReader ( )
virtual

Destructor

Definition at line 45 of file mzcborbuildindexreader.cpp.

46{
47}

Member Function Documentation

◆ getNativeId2SpectrumIndexMap()

const std::map< QString, std::size_t > & pappso::cbor::mzcbor::MzcborBuildIndexReader::getNativeId2SpectrumIndexMap ( ) const

Definition at line 76 of file mzcborbuildindexreader.cpp.

77{
79}
std::map< QString, std::size_t > m_nativeId2SpectrumIndexMap

References m_nativeId2SpectrumIndexMap.

Referenced by pappso::MzcborMsRunReader::initialize().

◆ getSpectrumIndexPositionInFile()

const std::vector< qint64 > & pappso::cbor::mzcbor::MzcborBuildIndexReader::getSpectrumIndexPositionInFile ( ) const

◆ readCbor()

void pappso::cbor::mzcbor::MzcborBuildIndexReader::readCbor ( QFile * cborp,
pappso::UiMonitorInterface & monitor )
overridevirtual

read mzCBOR file

Parameters
cborpfile pointer
monitormonitor read progress and messages

Reimplemented from pappso::cbor::mzcbor::MzcborReaderBase.

Definition at line 51 of file mzcborbuildindexreader.cpp.

52{
53 qDebug();
54 initCborReader((QIODevice *)cborp);
55
56 if(mpa_cborReader->device() == nullptr)
57 {
58 throw pappso::PappsoException(QObject::tr("device is null"));
59 }
60
61 qDebug();
62 if(mpa_cborReader->isMap())
63 {
64 readRoot(monitor);
65 }
66 qDebug();
67}
void readRoot(pappso::UiMonitorInterface &monitor)

References pappso::cbor::CborStreamReaderInterface::initCborReader(), pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and pappso::cbor::mzcbor::MzcborReaderBase::readRoot().

Referenced by pappso::MzcborMsRunReader::initialize().

◆ readMsrun()

void pappso::cbor::mzcbor::MzcborBuildIndexReader::readMsrun ( )
overrideprotectedvirtual

read only the targeted msrun

Reimplemented from pappso::cbor::mzcbor::MzcborReaderBase.

Definition at line 81 of file mzcborbuildindexreader.cpp.

82{
83 // qDebug();
84
85 mpa_cborReader->enterContainer();
86 bool ms_run_to_read = false;
87
88 while(getExpectedString())
89 {
90 if(m_expectedString == "id")
91 {
93
94 if((m_expectedString == m_xmlMzMlRunId) || (m_xmlMzMlRunId.isEmpty()))
95 {
96 ms_run_to_read = true;
97 }
98 }
99 else if(m_expectedString == "spectrumList")
100 {
101 if(ms_run_to_read)
102 {
104 }
105 else
106 {
107 mpa_cborReader->next();
108 }
109 }
110 else
111 {
112 mpa_cborReader->next();
113 }
114 }
115
116 mpa_cborReader->leaveContainer();
117}
void readSpectrumListAndLeave()
only the spectrum list of targeted msrun, then stop parsing

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::cbor::CborStreamReaderInterface::m_expectedString, m_xmlMzMlRunId, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and readSpectrumListAndLeave().

◆ readSpectrum()

void pappso::cbor::mzcbor::MzcborBuildIndexReader::readSpectrum ( qint64 position_of_spectrum_in_file,
std::size_t index_count )
protected

read each spectrum in the targeted msrun (msrunId)

Definition at line 178 of file mzcborbuildindexreader.cpp.

179{
180 qDebug();
181 mpa_cborReader->enterContainer();
182 //<spectrum id="controllerType=0 controllerNumber=1 scan=1" index="0" defaultArrayLength="1552">
183 QString native_id;
184 std::size_t given_index = 0;
185 std::map<QString, CvParam> spectrum_parameters;
186 std::map<QString, CvParam> scan_parameters;
187
188
189 while(getExpectedString())
190 {
191 qDebug() << m_expectedString;
192 if(m_expectedString == "id")
193 {
195 native_id = m_expectedString;
196 qDebug() << m_expectedString;
197 }
198 else if(m_expectedString == "index")
199 {
200 if(mpa_cborReader->isUnsignedInteger())
201 {
202 given_index = mpa_cborReader->toUnsignedInteger();
203 mpa_cborReader->next();
204
205 qDebug() << given_index;
206 // qFatal();
207 }
208 else
209 {
210 }
211 }
212 else if(m_expectedString == "cvParam")
213 {
214
215 mpa_cborReader->next();
216 // spectrum_parameters = getCvParamsMap();
217 }
218 else if(m_expectedString == "scanList")
219 {
220 mpa_cborReader->next();
221 }
222 else if(m_expectedString == "binaryDataArray")
223 {
224 mpa_cborReader->next();
225 }
226 else
227 {
228 mpa_cborReader->next();
229 }
230 }
231 if((given_index != index_count) || (index_count != m_spectrumIndexPositionInFile.size()))
232 {
233 throw pappso::PappsoException(QObject::tr("index inconsistency %1 %2 %3")
234 .arg(given_index)
235 .arg(index_count)
236 .arg(m_spectrumIndexPositionInFile.size()));
237 }
238 m_spectrumIndexPositionInFile.push_back(position_of_spectrum_in_file);
239
240 m_nativeId2SpectrumIndexMap.insert({native_id, given_index});
241
242 mpa_cborReader->leaveContainer();
243}

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::cbor::CborStreamReaderInterface::m_expectedString, m_nativeId2SpectrumIndexMap, m_spectrumIndexPositionInFile, and pappso::cbor::CborStreamReaderInterface::mpa_cborReader.

Referenced by readSpectrumListAndLeave().

◆ readSpectrumListAndLeave()

void pappso::cbor::mzcbor::MzcborBuildIndexReader::readSpectrumListAndLeave ( )
protected

only the spectrum list of targeted msrun, then stop parsing

Definition at line 121 of file mzcborbuildindexreader.cpp.

122{
123
124 mpa_cborReader->enterContainer();
125
126
127 // qDebug();
128
129 // We'll need it to perform the looping in the spectrum list.
130 std::size_t spectrum_list_size = 0;
131
132 // qDebug() << "The spectrum list has size:" << spectrum_list_size;
133
134 while(getExpectedString())
135 {
136
137 qDebug() << m_expectedString;
138 if(m_expectedString == "count")
139 {
140 if(mpa_cborReader->isUnsignedInteger())
141 {
142 spectrum_list_size = mpa_cborReader->toUnsignedInteger();
143 mpa_cborReader->next();
144 qDebug() << "spectrum count=" << spectrum_list_size;
145 }
146 }
147 else if(m_expectedString == "spectrum")
148 {
149
150 mpa_cborReader->enterContainer(); // start array
151 qint64 pos = mpa_cborReader->currentOffset();
152
153 std::size_t index_count = 0;
154 while(mpa_cborReader->hasNext())
155 {
156 qDebug();
157 qDebug();
158 readSpectrum(pos, index_count);
159 index_count++;
160 pos = mpa_cborReader->currentOffset();
161 }
162
163 mpa_cborReader->leaveContainer(); // stop array
164 }
165 else
166 {
167 mpa_cborReader->next();
168 }
169 }
170
171
172 mpa_cborReader->leaveContainer();
173 m_stopParsing = true;
174}
void readSpectrum(qint64 position_of_spectrum_in_file, std::size_t index_count)
read each spectrum in the targeted msrun (msrunId)

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::cbor::CborStreamReaderInterface::m_expectedString, pappso::cbor::mzcbor::MzcborReaderBase::m_stopParsing, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and readSpectrum().

Referenced by readMsrun().

Member Data Documentation

◆ m_nativeId2SpectrumIndexMap

std::map<QString, std::size_t> pappso::cbor::mzcbor::MzcborBuildIndexReader::m_nativeId2SpectrumIndexMap
private

Definition at line 86 of file mzcborbuildindexreader.h.

Referenced by getNativeId2SpectrumIndexMap(), and readSpectrum().

◆ m_spectrumIndexPositionInFile

std::vector<qint64> pappso::cbor::mzcbor::MzcborBuildIndexReader::m_spectrumIndexPositionInFile
private

Definition at line 85 of file mzcborbuildindexreader.h.

Referenced by getSpectrumIndexPositionInFile(), and readSpectrum().

◆ m_xmlMzMlRunId

QString pappso::cbor::mzcbor::MzcborBuildIndexReader::m_xmlMzMlRunId
private

Definition at line 83 of file mzcborbuildindexreader.h.

Referenced by MzcborBuildIndexReader(), and readMsrun().

◆ mcsp_msRunId

MsRunIdCstSPtr pappso::cbor::mzcbor::MzcborBuildIndexReader::mcsp_msRunId
private

Definition at line 82 of file mzcborbuildindexreader.h.

Referenced by MzcborBuildIndexReader().


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