libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::cbor::psm::PsmFileReaderBase Class Reference

#include <psmfilereaderbase.h>

Inheritance diagram for pappso::cbor::psm::PsmFileReaderBase:
pappso::cbor::CborStreamReaderInterface pappso::cbor::psm::PsmCbor2Json pappso::cbor::psm::PsmFileAppend pappso::cbor::psm::PsmFileScanProcess pappso::cbor::psm::PsmFileScanProcessAndCopy pappso::cbor::psm::PsmFeatures pappso::cbor::psm::PsmIonSeries pappso::cbor::psm::PsmNewEval pappso::cbor::psm::PsmSpecGlob pappso::cbor::psm::PsmSpecPeptidOms

Classes

struct  PsmProteinRef

Public Member Functions

 PsmFileReaderBase ()
virtual ~PsmFileReaderBase () override
void readCbor (QFile *cborp, pappso::UiMonitorInterface &monitor)
void readCbor (QIODevice *cborp, pappso::UiMonitorInterface &monitor)
Public Member Functions inherited from pappso::cbor::CborStreamReaderInterface
 CborStreamReaderInterface ()
virtual ~CborStreamReaderInterface ()
virtual void close ()
 convenient function to clean pointer before leaving

Protected Member Functions

void readRoot (pappso::UiMonitorInterface &monitor)
virtual void readInformations (pappso::UiMonitorInterface &monitor)
virtual void readLog (pappso::UiMonitorInterface &monitor)
virtual void readParameterMap (pappso::UiMonitorInterface &monitor)
virtual void readProteinMap (pappso::UiMonitorInterface &monitor)
virtual void readSample (pappso::UiMonitorInterface &monitor)
virtual void readScan (pappso::UiMonitorInterface &monitor)
virtual void readPsm (pappso::UiMonitorInterface &monitor)
virtual void psmReady (pappso::UiMonitorInterface &monitor)
virtual void logReady (pappso::UiMonitorInterface &monitor)
virtual void informationsReady (pappso::UiMonitorInterface &monitor)
virtual void parameterMapReady (pappso::UiMonitorInterface &monitor)
virtual void fastaFilesReady (pappso::UiMonitorInterface &monitor)
virtual void proteinMapReady (pappso::UiMonitorInterface &monitor)
virtual void sampleListStarted (pappso::UiMonitorInterface &monitor)
virtual void sampleStarted (pappso::UiMonitorInterface &monitor)
virtual void scanStarted (pappso::UiMonitorInterface &monitor)
virtual void scanFinished (pappso::UiMonitorInterface &monitor)
virtual void sampleFinished (pappso::UiMonitorInterface &monitor)
virtual void sampleListFinished (pappso::UiMonitorInterface &monitor)
PsmFile readPsmFile (bool &is_ok)
void writePsmFile (CborStreamWriter &writer, const PsmFile &psm_file)
void writePsmFileList (CborStreamWriter &writer, const std::vector< PsmFile > &file_list)
PsmProteinRef readPsmProteinRef (bool &is_ok)
pappso::PeptideSp getCurrentPsmPeptideSp () const
pappso::QualifiedMassSpectrumSPtr getCurrentQualifiedMassSpectrumSPtr () const
 get the qualified Spectrum for the current PSM
bool currentProteinRefListContainsDecoy () const
 tells if the current PSM has a decoy accession
bool currentProteinRefListContainsTarget () const
 tells if the current PSM has a target accession
double getPrecursorMass (double mz_prec, uint charge) const
 convenient function do compute precusor ion mass
Protected Member Functions inherited from pappso::cbor::CborStreamReaderInterface
bool getExpectedString ()
void initCborReader (QFile *pcborfile)
void initCborReader (QIODevice *pcborfile)

Protected Attributes

QStringList m_targetFastaFiles
QStringList m_decoyFastaFiles
PsmProteinMap m_proteinMap
QString m_currentSampleName
PsmFile m_currentPeaklistFile
std::vector< PsmFilem_currentIdentificationFileList
QCborMap m_cborInformations
QCborArray m_cborLog
QCborMap m_cborParameterMap
QCborMap m_cborScanId
QCborMap m_cborScanPrecursor
QCborMap m_cborScanMs2
QCborMap m_cborScanProps
QCborMap m_cborScanPsmEval
QCborMap m_cborScanPsmProps
QString m_currentPsmProforma
std::vector< PsmProteinRefm_currentPsmProteinRefList
Protected Attributes inherited from pappso::cbor::CborStreamReaderInterface
CborStreamReadermpa_cborReader = nullptr
QString m_expectedString
QByteArray m_data

Detailed Description

Todo
write docs

Definition at line 55 of file psmfilereaderbase.h.

Constructor & Destructor Documentation

◆ PsmFileReaderBase()

pappso::cbor::psm::PsmFileReaderBase::PsmFileReaderBase ( )

◆ ~PsmFileReaderBase()

pappso::cbor::psm::PsmFileReaderBase::~PsmFileReaderBase ( )
overridevirtual

Destructor

Definition at line 46 of file psmfilereaderbase.cpp.

47{
48 // qWarning() << "~PsmFileReaderBase";
49}

Member Function Documentation

◆ currentProteinRefListContainsDecoy()

bool pappso::cbor::psm::PsmFileReaderBase::currentProteinRefListContainsDecoy ( ) const
protected

tells if the current PSM has a decoy accession

Returns
boolean

Definition at line 83 of file psmfilereaderbase.cpp.

84{
85 for(auto &it : m_currentPsmProteinRefList)
86 {
87 if(!m_proteinMap.getByAccession(it.accession).isTarget)
88 return true;
89 }
90 return false;
91}
std::vector< PsmProteinRef > m_currentPsmProteinRefList

References m_currentPsmProteinRefList, and m_proteinMap.

◆ currentProteinRefListContainsTarget()

bool pappso::cbor::psm::PsmFileReaderBase::currentProteinRefListContainsTarget ( ) const
protected

tells if the current PSM has a target accession

Returns
boolean

Definition at line 94 of file psmfilereaderbase.cpp.

95{
96 for(auto &it : m_currentPsmProteinRefList)
97 {
98 if(m_proteinMap.getByAccession(it.accession).isTarget)
99 return true;
100 }
101 return false;
102}

References m_currentPsmProteinRefList, and m_proteinMap.

◆ fastaFilesReady()

void pappso::cbor::psm::PsmFileReaderBase::fastaFilesReady ( pappso::UiMonitorInterface & monitor)
protectedvirtual

◆ getCurrentPsmPeptideSp()

pappso::PeptideSp pappso::cbor::psm::PsmFileReaderBase::getCurrentPsmPeptideSp ( ) const
protected

Definition at line 670 of file psmfilereaderbase.cpp.

671{
672 pappso::PeptideSp peptide_sp;
673 if(m_currentPsmProforma.isEmpty())
674 {
675 throw pappso::PappsoException(QObject::tr("ERROR: m_currentPsmProforma is empty"));
676 }
677 else
678 {
680 }
681 return peptide_sp;
682}
static PeptideSp parseString(const QString &pepstr)
std::shared_ptr< const Peptide > PeptideSp

References m_currentPsmProforma, and pappso::PeptideProFormaParser::parseString().

◆ getCurrentQualifiedMassSpectrumSPtr()

pappso::QualifiedMassSpectrumSPtr pappso::cbor::psm::PsmFileReaderBase::getCurrentQualifiedMassSpectrumSPtr ( ) const
protected

get the qualified Spectrum for the current PSM

Returns
a qualified mass spectrum

Definition at line 685 of file psmfilereaderbase.cpp.

686{
687 if(m_currentPeaklistFile.name.isEmpty())
688 {
689 throw pappso::PappsoException(QObject::tr("ERROR: m_currentPeaklistFile is empty"));
690 }
691 if(m_cborScanId.isEmpty())
692 {
693 throw pappso::PappsoException(QObject::tr("ERROR: m_cborScanId is empty"));
694 }
695 if(m_cborScanPrecursor.isEmpty())
696 {
697 throw pappso::PappsoException(QObject::tr("ERROR: m_cborScanPrecursor is empty"));
698 }
699
700 if(!m_cborScanId.keys().contains("index"))
701 {
702 throw pappso::PappsoException("There is no scan index");
703 }
704
705 if(m_cborScanMs2.isEmpty())
706 {
707 throw pappso::PappsoException(QObject::tr("ERROR: m_cborScanMs2 is empty"));
708 }
709 else
710 {
711 if(!m_cborScanMs2.keys().contains("mz"))
712 {
713 throw pappso::PappsoException("There is no ms2 mz values");
714 }
715 if(!m_cborScanMs2.keys().contains("intensity"))
716 {
717 throw pappso::PappsoException("There is no ms2 intensity values");
718 }
719 }
720 pappso::MsRunId msrun_id(m_currentPeaklistFile.name);
721 msrun_id.setSampleName(m_currentSampleName);
722 pappso::MsRunIdCstSPtr msrun_id_sp = std::make_shared<const pappso::MsRunId>(msrun_id);
723 pappso::MassSpectrumId ms_id(msrun_id_sp);
724 ms_id.setSpectrumIndex(m_cborScanId.value("index").toInteger());
725
726 // native_id
727 if(m_cborScanId.keys().contains("native_id"))
728 {
729 ms_id.setNativeId(m_cborScanId.value("native_id").toString());
730 }
731
732 std::vector<DataPoint> data_point_vector;
733 std::size_t i = 0;
734 for(auto cbor_mz_value : m_cborScanMs2.value("mz").toArray())
735 {
736 data_point_vector.push_back(
737 {cbor_mz_value.toDouble(), m_cborScanMs2.value("intensity").toArray().at(i).toDouble()});
738 i++;
739 }
740
741
742 MassSpectrum mass_spectrum(data_point_vector);
743 pappso::PrecursorIonData precursor_ion_data;
744
745 pappso::QualifiedMassSpectrum qualified_mass_spectrum(ms_id);
746 qualified_mass_spectrum.setMassSpectrumSPtr(mass_spectrum.makeMassSpectrumSPtr());
747 qualified_mass_spectrum.setMsLevel(2);
748
749 if(m_cborScanPrecursor.keys().contains("z"))
750 {
751 precursor_ion_data.charge = m_cborScanPrecursor.value("z").toInteger();
752 }
753 if(m_cborScanPrecursor.keys().contains("mz"))
754 {
755 precursor_ion_data.mz = m_cborScanPrecursor.value("mz").toDouble();
756 }
757 if(m_cborScanPrecursor.keys().contains("intensity"))
758 {
759 precursor_ion_data.intensity = m_cborScanPrecursor.value("intensity").toDouble();
760 }
761 qualified_mass_spectrum.appendPrecursorIonData(precursor_ion_data);
762 if(m_cborScanMs2.keys().contains("rt"))
763 {
764 qualified_mass_spectrum.setRtInSeconds(m_cborScanMs2.value("rt").toDouble());
765 }
766
767
768 return qualified_mass_spectrum.makeQualifiedMassSpectrumSPtr();
769}
std::shared_ptr< const MsRunId > MsRunIdCstSPtr
Definition msrunid.h:46

References pappso::QualifiedMassSpectrum::appendPrecursorIonData(), pappso::PrecursorIonData::charge, pappso::PrecursorIonData::intensity, m_cborScanId, m_cborScanMs2, m_cborScanPrecursor, m_currentPeaklistFile, m_currentSampleName, pappso::MassSpectrum::makeMassSpectrumSPtr(), pappso::QualifiedMassSpectrum::makeQualifiedMassSpectrumSPtr(), pappso::PrecursorIonData::mz, pappso::QualifiedMassSpectrum::setMassSpectrumSPtr(), pappso::QualifiedMassSpectrum::setMsLevel(), pappso::MassSpectrumId::setNativeId(), pappso::QualifiedMassSpectrum::setRtInSeconds(), pappso::MsRunId::setSampleName(), and pappso::MassSpectrumId::setSpectrumIndex().

◆ getPrecursorMass()

double pappso::cbor::psm::PsmFileReaderBase::getPrecursorMass ( double mz_prec,
uint charge ) const
protected

convenient function do compute precusor ion mass

Definition at line 783 of file psmfilereaderbase.cpp.

784{
785 // compute precursor mass given the charge state
786 mz_prec = mz_prec * (double)charge;
787 mz_prec -= (MHPLUS * (double)charge);
788 return mz_prec;
789}
const pappso_double MHPLUS(1.007276466879)

References pappso::MHPLUS().

◆ informationsReady()

void pappso::cbor::psm::PsmFileReaderBase::informationsReady ( pappso::UiMonitorInterface & monitor)
protectedvirtual

◆ logReady()

void pappso::cbor::psm::PsmFileReaderBase::logReady ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Reimplemented in pappso::cbor::psm::PsmCbor2Json, and pappso::cbor::psm::PsmFileScanProcessAndCopy.

Definition at line 634 of file psmfilereaderbase.cpp.

635{
636}

Referenced by readRoot().

◆ parameterMapReady()

◆ proteinMapReady()

void pappso::cbor::psm::PsmFileReaderBase::proteinMapReady ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Reimplemented in pappso::cbor::psm::PsmFileScanProcessAndCopy, and pappso::cbor::psm::PsmSpecPeptidOms.

Definition at line 645 of file psmfilereaderbase.cpp.

646{
647}

Referenced by readProteinMap().

◆ psmReady()

void pappso::cbor::psm::PsmFileReaderBase::psmReady ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Reimplemented in pappso::cbor::psm::PsmCbor2Json.

Definition at line 618 of file psmfilereaderbase.cpp.

619{
620 // PSM is ready, do what you want :)
621}

Referenced by readPsm().

◆ readCbor() [1/2]

void pappso::cbor::psm::PsmFileReaderBase::readCbor ( QFile * cborp,
pappso::UiMonitorInterface & monitor )

Definition at line 68 of file psmfilereaderbase.cpp.

69{
70 qDebug();
71 initCborReader(cborp);
72
73 qDebug();
74 if(mpa_cborReader->isMap())
75 {
76 readRoot(monitor);
77 }
78 qDebug();
79}
void readRoot(pappso::UiMonitorInterface &monitor)

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

◆ readCbor() [2/2]

void pappso::cbor::psm::PsmFileReaderBase::readCbor ( QIODevice * cborp,
pappso::UiMonitorInterface & monitor )

Definition at line 53 of file psmfilereaderbase.cpp.

54{
55
56 qDebug();
57 initCborReader(cborp);
58
59 qDebug();
60 if(mpa_cborReader->isMap())
61 {
62 readRoot(monitor);
63 }
64 qDebug();
65}

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

◆ readInformations()

void pappso::cbor::psm::PsmFileReaderBase::readInformations ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Definition at line 192 of file psmfilereaderbase.cpp.

193{
194 bool is_ok;
195 // m_cborInformations.clear();
196 is_ok = mpa_cborReader->readCborMap(m_cborInformations);
197
198 if(!is_ok)
199 {
200 throw pappso::PappsoException("ERROR: PSM cbor header informations not well formed");
201 }
202 qDebug() << m_cborInformations.keys();
203 if(m_cborInformations.value("type").toString() != "psm")
204 {
205 QStringList all_keys;
206 for(auto it_k : m_cborInformations.keys())
207 {
208 all_keys << it_k.toString();
209 }
210 throw pappso::PappsoException(
211 QObject::tr("ERROR: this file does not contain PSM data but %1 and %2")
212 .arg(m_cborInformations.value("type").toString())
213 .arg(all_keys.join(" ")));
214 }
215 informationsReady(monitor);
216}
virtual void informationsReady(pappso::UiMonitorInterface &monitor)

References informationsReady(), m_cborInformations, and pappso::cbor::CborStreamReaderInterface::mpa_cborReader.

Referenced by readRoot().

◆ readLog()

void pappso::cbor::psm::PsmFileReaderBase::readLog ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Definition at line 219 of file psmfilereaderbase.cpp.

220{
221 bool is_ok;
222 // m_cborInformations.clear();
223 is_ok = mpa_cborReader->readCborArray(m_cborLog);
224
225 if(!is_ok)
226 {
227 throw pappso::PappsoException("ERROR: PSM cbor header log not well formed");
228 }
229}

References m_cborLog, and pappso::cbor::CborStreamReaderInterface::mpa_cborReader.

Referenced by readRoot().

◆ readParameterMap()

void pappso::cbor::psm::PsmFileReaderBase::readParameterMap ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Definition at line 233 of file psmfilereaderbase.cpp.

234{
235 bool is_ok;
236 m_cborParameterMap.clear();
237 is_ok = mpa_cborReader->readCborMap(m_cborParameterMap);
238
239 if(!is_ok)
240 {
241 throw pappso::PappsoException("ERROR: PSM cbor parameter_map not well formed");
242 }
243 parameterMapReady(monitor);
244}
virtual void parameterMapReady(pappso::UiMonitorInterface &monitor)

References m_cborParameterMap, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and parameterMapReady().

Referenced by readRoot().

◆ readProteinMap()

void pappso::cbor::psm::PsmFileReaderBase::readProteinMap ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Reimplemented in pappso::cbor::psm::PsmCbor2Json.

Definition at line 247 of file psmfilereaderbase.cpp.

248{
250 proteinMapReady(monitor);
251}
virtual void proteinMapReady(pappso::UiMonitorInterface &monitor)

References m_proteinMap, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and proteinMapReady().

Referenced by readRoot().

◆ readPsm()

void pappso::cbor::psm::PsmFileReaderBase::readPsm ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Definition at line 518 of file psmfilereaderbase.cpp.

519{
520 bool is_ok;
521 mpa_cborReader->enterContainer();
523 // "proforma": "AQEEM[+15.99491]AQVAK",
524 if(m_expectedString == "proforma")
525 {
526 if(!mpa_cborReader->decodeString(m_currentPsmProforma))
527 {
528 throw pappso::PappsoException("ERROR: proforma element in psm-scan is not a string");
529 }
530 }
531 else
532 {
533 throw pappso::PappsoException("ERROR: expecting proforma element in psm-scan");
534 }
535 //"protein_list" : [
536 //{
537 //"accession": "GRMZM2G083841_P01",
538 //"position": [15,236]
539 //}
540 //],
541
544 qDebug() << m_expectedString;
545
546 if(m_expectedString == "protein_list")
547 {
548 mpa_cborReader->enterContainer(); // array
549 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
550 {
552 if(!is_ok)
553 {
554 qDebug();
555 throw pappso::PappsoException(
556 QObject::tr("ERROR: reading protein_list element in psm-scan"));
557 }
558 }
559 // qDebug() << mpa_cborReader->type();
560 mpa_cborReader->leaveContainer(); // array
561 }
562 else
563 {
564 throw pappso::PappsoException("ERROR: expecting protein_list element in psm-scan");
565 }
566 // props: {
567 m_cborScanPsmProps.clear();
568
569 //"eval": {
570 qDebug();
571 m_cborScanPsmEval.clear();
573 qDebug() << m_expectedString;
574
575 if(m_expectedString == "props")
576 {
577 is_ok = mpa_cborReader->readCborMap(m_cborScanPsmProps);
578 if(!is_ok)
579 {
580 throw pappso::PappsoException("ERROR: props element in psm-scan is not well formed");
581 }
582 if(!getExpectedString())
583 {
584 throw pappso::PappsoException(
585 QObject::tr("ERROR: expecting eval element in psm-scan %1").arg(m_currentPsmProforma));
586 }
587 }
588 if(m_expectedString == "eval")
589 {
590 is_ok = mpa_cborReader->readCborMap(m_cborScanPsmEval);
591 if(!is_ok)
592 {
593 throw pappso::PappsoException("ERROR: eval element in psm-scan is not well formed");
594 }
595 }
596 else
597
598 {
599 throw pappso::PappsoException(
600 QObject::tr("ERROR: expecting eval element in psm-scan %1 not %2 in %3 %4 %5")
602 .arg(m_expectedString)
603 .arg(__FILE__)
604 .arg(__FUNCTION__)
605 .arg(__LINE__));
606 }
607
608
609 qDebug() << m_expectedString;
610
611
612 mpa_cborReader->leaveContainer();
613 qDebug();
614 psmReady(monitor);
615}
virtual void psmReady(pappso::UiMonitorInterface &monitor)
PsmProteinRef readPsmProteinRef(bool &is_ok)

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), m_cborScanPsmEval, m_cborScanPsmProps, m_currentPsmProforma, m_currentPsmProteinRefList, pappso::cbor::CborStreamReaderInterface::m_expectedString, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, psmReady(), and readPsmProteinRef().

Referenced by readScan().

◆ readPsmFile()

PsmFile pappso::cbor::psm::PsmFileReaderBase::readPsmFile ( bool & is_ok)
protected

Definition at line 298 of file psmfilereaderbase.cpp.

299{
300 is_ok = false;
301 PsmFile file;
302 mpa_cborReader->enterContainer();
304 if(m_expectedString == "name")
305 {
306 if(!mpa_cborReader->decodeString(file.name))
307 {
308 throw pappso::PappsoException("file name is not a string");
309 }
310 is_ok = true;
311 }
312 else
313 {
314 throw pappso::PappsoException("ERROR: expecting name element in file");
315 }
316 mpa_cborReader->leaveContainer();
317 return file;
318}

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::cbor::CborStreamReaderInterface::m_expectedString, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and pappso::cbor::psm::PsmFile::name.

Referenced by readSample().

◆ readPsmProteinRef()

PsmFileReaderBase::PsmProteinRef pappso::cbor::psm::PsmFileReaderBase::readPsmProteinRef ( bool & is_ok)
protected

Definition at line 255 of file psmfilereaderbase.cpp.

256{
257 PsmProteinRef protein_ref;
258 protein_ref.accession = "";
259 protein_ref.positions.clear();
260 mpa_cborReader->enterContainer();
262 qDebug() << m_expectedString;
263 if(m_expectedString == "accession")
264 {
265 is_ok = mpa_cborReader->decodeString(protein_ref.accession);
266 if(!is_ok)
267 {
268 throw pappso::PappsoException("ERROR: protein accession is not a string");
269 }
270 }
271 else
272 {
273 throw pappso::PappsoException("ERROR: expecting accession element in PSM protein_list");
274 }
275
277 qDebug() << m_expectedString;
278 if(m_expectedString == "positions")
279 {
280 mpa_cborReader->readArray(protein_ref.positions);
281
282 // mpa_cborReader->next();
283 }
284 else
285 {
286 throw pappso::PappsoException(
287 QString("ERROR: expecting positions element in PSM protein_list not %1")
288 .arg(m_expectedString));
289 }
290 mpa_cborReader->leaveContainer();
291
292 qDebug() << "end";
293 return protein_ref;
294}

References pappso::cbor::psm::PsmFileReaderBase::PsmProteinRef::accession, pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::cbor::CborStreamReaderInterface::m_expectedString, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and pappso::cbor::psm::PsmFileReaderBase::PsmProteinRef::positions.

Referenced by readPsm().

◆ readRoot()

void pappso::cbor::psm::PsmFileReaderBase::readRoot ( pappso::UiMonitorInterface & monitor)
protected

Definition at line 106 of file psmfilereaderbase.cpp.

107{
108 qDebug();
109 mpa_cborReader->enterContainer();
110
112 if(m_expectedString == "informations")
113 {
114 qDebug() << m_expectedString;
115 readInformations(monitor);
117
118 qDebug() << m_expectedString;
119 if(m_expectedString == "log")
120 {
121 qDebug() << m_expectedString;
122 readLog(monitor);
124 }
125
126 logReady(monitor);
127 }
128 else
129 {
130 throw pappso::PappsoException("ERROR: expecting informations element");
131 }
132
133 qDebug() << m_expectedString;
134
135 if(m_expectedString == "parameter_map")
136 {
137 qDebug();
138 readParameterMap(monitor);
139 }
140 else
141 {
142 throw pappso::PappsoException("ERROR: expecting parameter_map element");
143 }
144
145
147 m_targetFastaFiles.clear();
148 m_decoyFastaFiles.clear();
149 if(m_expectedString == "target_fasta_files")
150 {
153 }
154
155 if(m_expectedString == "decoy_fasta_files")
156 {
159 }
160 fastaFilesReady(monitor);
161
162 if(m_expectedString == "protein_map")
163 {
164 readProteinMap(monitor);
166 }
167
168 if(m_expectedString == "sample_list")
169 {
170 sampleListStarted(monitor);
171 mpa_cborReader->enterContainer(); // array
172 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
173 {
174 readSample(monitor);
175 }
176 mpa_cborReader->leaveContainer(); // array
177 sampleListFinished(monitor);
178 }
179 else
180 {
181 throw pappso::PappsoException(
182 QObject::tr("ERROR: expecting sample_list element not %1").arg(m_expectedString));
183 }
184 mpa_cborReader->leaveContainer(); // whole file
185 if(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
186 {
187 readRoot(monitor);
188 }
189}
virtual void sampleListStarted(pappso::UiMonitorInterface &monitor)
virtual void logReady(pappso::UiMonitorInterface &monitor)
virtual void readLog(pappso::UiMonitorInterface &monitor)
virtual void readParameterMap(pappso::UiMonitorInterface &monitor)
virtual void readInformations(pappso::UiMonitorInterface &monitor)
virtual void sampleListFinished(pappso::UiMonitorInterface &monitor)
virtual void fastaFilesReady(pappso::UiMonitorInterface &monitor)
virtual void readProteinMap(pappso::UiMonitorInterface &monitor)
virtual void readSample(pappso::UiMonitorInterface &monitor)

References fastaFilesReady(), pappso::cbor::CborStreamReaderInterface::getExpectedString(), logReady(), m_decoyFastaFiles, pappso::cbor::CborStreamReaderInterface::m_expectedString, m_targetFastaFiles, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, readInformations(), readLog(), readParameterMap(), readProteinMap(), readRoot(), readSample(), sampleListFinished(), and sampleListStarted().

Referenced by readCbor(), readCbor(), and readRoot().

◆ readSample()

void pappso::cbor::psm::PsmFileReaderBase::readSample ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Reimplemented in pappso::cbor::psm::PsmFileAppend.

Definition at line 344 of file psmfilereaderbase.cpp.

345{
346 //"name": "tandem2017_nopatch_20120906_balliau_extract_1_A01_urnb-1",
347 qDebug();
348 mpa_cborReader->enterContainer();
350
351 qDebug() << m_expectedString;
352 if(m_expectedString == "name")
353 {
354 if(!mpa_cborReader->decodeString(m_currentSampleName))
355 {
356 throw pappso::PappsoException("sample name is not a string");
357 }
358 }
359 else
360 {
361 throw pappso::PappsoException("ERROR: expecting name element in file");
362 }
363 //"identification_file_list": [{ "name":
364 //"/home/langella/data1/tandem/tandem2017_nopatch_20120906_balliau_extract_1_A01_urnb-1.xml",
365 //}],
366
368
369 qDebug() << m_expectedString;
371 if(m_expectedString == "identification_file_list")
372 {
373 bool is_ok;
374 mpa_cborReader->enterContainer();
375
376 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
377 {
379 }
380 mpa_cborReader->leaveContainer();
381
383 }
384 //"peaklist_file": {"name": "tandem2017_nopatch_20120906_balliau_extract_1_A01_urnb-1.mzml"
385 //},
386
387 if(m_expectedString == "peaklist_file")
388 {
389 bool is_ok;
391 }
392 else
393 {
394 throw pappso::PappsoException("ERROR: expecting peaklist_file element in sample");
395 }
396 //"scan_list": [
397 sampleStarted(monitor);
399 if(m_expectedString == "scan_list")
400 {
401 mpa_cborReader->enterContainer();
402
403 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
404 {
405 readScan(monitor);
406 }
407 mpa_cborReader->leaveContainer();
408 }
409 else
410 {
411 throw pappso::PappsoException("ERROR: expecting scan_list element in sample");
412 }
413 mpa_cborReader->leaveContainer();
414
415 sampleFinished(monitor);
416}
virtual void sampleStarted(pappso::UiMonitorInterface &monitor)
virtual void readScan(pappso::UiMonitorInterface &monitor)
std::vector< PsmFile > m_currentIdentificationFileList
virtual void sampleFinished(pappso::UiMonitorInterface &monitor)

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), m_currentIdentificationFileList, m_currentPeaklistFile, m_currentSampleName, pappso::cbor::CborStreamReaderInterface::m_expectedString, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, readPsmFile(), readScan(), sampleFinished(), and sampleStarted().

Referenced by readRoot().

◆ readScan()

void pappso::cbor::psm::PsmFileReaderBase::readScan ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Reimplemented in pappso::cbor::psm::PsmFileScanProcess.

Definition at line 419 of file psmfilereaderbase.cpp.

420{
421 qDebug();
422 m_cborScanId.clear();
423 mpa_cborReader->enterContainer();
424 //"id": {
425 //"index": 1976
426 //},
427 qDebug() << "scan begin";
428
430 qDebug() << m_expectedString;
431 if(m_expectedString == "id")
432 {
433 if(!mpa_cborReader->readCborMap(m_cborScanId))
434 {
435 throw pappso::PappsoException(QObject::tr("id element in scan is not a cbor map"));
436 }
437 }
438 else
439 {
440 throw pappso::PappsoException(
441 QObject::tr("ERROR: expecting id element in scan not %1").arg(m_expectedString));
442 }
443 //"precursor": {
444 //"z": 2,
445 //"mz": 1120.529471
446 //},
447
449 m_cborScanPrecursor.clear();
450 qDebug() << m_expectedString;
451 if(m_expectedString == "precursor")
452 {
453 if(!mpa_cborReader->readCborMap(m_cborScanPrecursor))
454 {
455 throw pappso::PappsoException(QObject::tr("precursor element in scan is not a cbor map"));
456 }
457 }
458 //"ms2": {PSM CBOR format documentation
459 //"rt": 12648.87,
460 //"mz" :[1,2,3,4],
461 //"intensity" : [1,2,3,4]
462 //},
463
465 qDebug() << m_expectedString;
466 m_cborScanMs2.clear();
467 if(m_expectedString == "ms2")
468 {
469 if(!mpa_cborReader->readCborMap(m_cborScanMs2))
470 {
471 throw pappso::PappsoException(
472 QObject::tr("ms2 element in scan is not a cbor map %1 %2:\n%3")
474 .arg(m_cborScanId.value("index").toInteger())
475 .arg(mpa_cborReader->lastError().toString()));
476 }
477 }
478
479
481 qDebug() << m_expectedString;
482
483
484 if(m_expectedString == "props")
485 {
486 bool is_ok;
487 is_ok = mpa_cborReader->readCborMap(m_cborScanProps);
488 if(!is_ok)
489 {
490 throw pappso::PappsoException("ERROR: props element in scan is not well formed");
491 }
492 if(!getExpectedString())
493 {
494 throw pappso::PappsoException(
495 QObject::tr("ERROR: expecting psm_list element in scan %1").arg(m_currentPsmProforma));
496 }
497 }
498
499 //"psm_list": [
500 scanStarted(monitor);
501 if(m_expectedString == "psm_list")
502 {
503 mpa_cborReader->enterContainer();
504 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
505 {
506 readPsm(monitor);
507 }
508 mpa_cborReader->leaveContainer();
509 }
510
511 mpa_cborReader->leaveContainer();
512 qDebug() << "scan end";
513 scanFinished(monitor);
514 qDebug();
515}
virtual void scanStarted(pappso::UiMonitorInterface &monitor)
virtual void readPsm(pappso::UiMonitorInterface &monitor)
virtual void scanFinished(pappso::UiMonitorInterface &monitor)

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), m_cborScanId, m_cborScanMs2, m_cborScanPrecursor, m_cborScanProps, m_currentPsmProforma, m_currentSampleName, pappso::cbor::CborStreamReaderInterface::m_expectedString, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, readPsm(), scanFinished(), and scanStarted().

Referenced by readSample().

◆ sampleFinished()

void pappso::cbor::psm::PsmFileReaderBase::sampleFinished ( pappso::UiMonitorInterface & monitor)
protectedvirtual

◆ sampleListFinished()

void pappso::cbor::psm::PsmFileReaderBase::sampleListFinished ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Reimplemented in pappso::cbor::psm::PsmCbor2Json, and pappso::cbor::psm::PsmFileScanProcessAndCopy.

Definition at line 777 of file psmfilereaderbase.cpp.

778{
779}

Referenced by readRoot().

◆ sampleListStarted()

void pappso::cbor::psm::PsmFileReaderBase::sampleListStarted ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Reimplemented in pappso::cbor::psm::PsmCbor2Json, and pappso::cbor::psm::PsmFileScanProcessAndCopy.

Definition at line 772 of file psmfilereaderbase.cpp.

773{
774}

Referenced by readRoot().

◆ sampleStarted()

void pappso::cbor::psm::PsmFileReaderBase::sampleStarted ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Reimplemented in pappso::cbor::psm::PsmCbor2Json, and pappso::cbor::psm::PsmFileScanProcessAndCopy.

Definition at line 650 of file psmfilereaderbase.cpp.

651{
652}

Referenced by readSample().

◆ scanFinished()

void pappso::cbor::psm::PsmFileReaderBase::scanFinished ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Reimplemented in pappso::cbor::psm::PsmCbor2Json, and pappso::cbor::psm::PsmFileScanProcess.

Definition at line 660 of file psmfilereaderbase.cpp.

661{
662}

Referenced by readScan().

◆ scanStarted()

void pappso::cbor::psm::PsmFileReaderBase::scanStarted ( pappso::UiMonitorInterface & monitor)
protectedvirtual

Reimplemented in pappso::cbor::psm::PsmCbor2Json.

Definition at line 655 of file psmfilereaderbase.cpp.

656{
657}

Referenced by readScan().

◆ writePsmFile()

void pappso::cbor::psm::PsmFileReaderBase::writePsmFile ( CborStreamWriter & writer,
const PsmFile & psm_file )
protected

Definition at line 322 of file psmfilereaderbase.cpp.

323{
324 writer.startMap();
325 writer.append("name");
326 writer.append(psm_file.name);
327 writer.endMap();
328}

References pappso::cbor::psm::PsmFile::name.

Referenced by pappso::cbor::psm::PsmFileScanProcessAndCopy::sampleStarted(), and writePsmFileList().

◆ writePsmFileList()

void pappso::cbor::psm::PsmFileReaderBase::writePsmFileList ( CborStreamWriter & writer,
const std::vector< PsmFile > & file_list )
protected

Definition at line 331 of file psmfilereaderbase.cpp.

333{
334 writer.startArray();
335 for(auto &psm_file : file_list)
336 {
337 writePsmFile(writer, psm_file);
338 }
339 writer.endArray();
340}
void writePsmFile(CborStreamWriter &writer, const PsmFile &psm_file)

References writePsmFile().

Referenced by pappso::cbor::psm::PsmFileScanProcessAndCopy::sampleStarted().

Member Data Documentation

◆ m_cborInformations

◆ m_cborLog

QCborArray pappso::cbor::psm::PsmFileReaderBase::m_cborLog
protected

◆ m_cborParameterMap

◆ m_cborScanId

QCborMap pappso::cbor::psm::PsmFileReaderBase::m_cborScanId
protected

◆ m_cborScanMs2

QCborMap pappso::cbor::psm::PsmFileReaderBase::m_cborScanMs2
protected

◆ m_cborScanPrecursor

QCborMap pappso::cbor::psm::PsmFileReaderBase::m_cborScanPrecursor
protected

◆ m_cborScanProps

QCborMap pappso::cbor::psm::PsmFileReaderBase::m_cborScanProps
protected

Definition at line 139 of file psmfilereaderbase.h.

Referenced by readScan(), and pappso::cbor::psm::PsmCbor2Json::scanStarted().

◆ m_cborScanPsmEval

QCborMap pappso::cbor::psm::PsmFileReaderBase::m_cborScanPsmEval
protected

Definition at line 140 of file psmfilereaderbase.h.

Referenced by pappso::cbor::psm::PsmCbor2Json::psmReady(), and readPsm().

◆ m_cborScanPsmProps

QCborMap pappso::cbor::psm::PsmFileReaderBase::m_cborScanPsmProps
protected

Definition at line 141 of file psmfilereaderbase.h.

Referenced by pappso::cbor::psm::PsmCbor2Json::psmReady(), and readPsm().

◆ m_currentIdentificationFileList

std::vector<PsmFile> pappso::cbor::psm::PsmFileReaderBase::m_currentIdentificationFileList
protected

◆ m_currentPeaklistFile

PsmFile pappso::cbor::psm::PsmFileReaderBase::m_currentPeaklistFile
protected

◆ m_currentPsmProforma

QString pappso::cbor::psm::PsmFileReaderBase::m_currentPsmProforma
protected

◆ m_currentPsmProteinRefList

std::vector<PsmProteinRef> pappso::cbor::psm::PsmFileReaderBase::m_currentPsmProteinRefList
protected

◆ m_currentSampleName

QString pappso::cbor::psm::PsmFileReaderBase::m_currentSampleName
protected

◆ m_decoyFastaFiles

QStringList pappso::cbor::psm::PsmFileReaderBase::m_decoyFastaFiles
protected

◆ m_proteinMap

◆ m_targetFastaFiles

QStringList pappso::cbor::psm::PsmFileReaderBase::m_targetFastaFiles
protected

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