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

#include <psmfileappend.h>

Inheritance diagram for pappso::cbor::psm::PsmFileAppend:
pappso::cbor::psm::PsmFileReaderBase pappso::cbor::CborStreamReaderInterface

Classes

struct  SampleStorage
 

Public Member Functions

 PsmFileAppend (pappso::cbor::CborStreamWriter *p_output)
 
virtual ~PsmFileAppend ()
 
void informationsReady (pappso::UiMonitorInterface &monitor) override
 
void parameterMapReady (pappso::UiMonitorInterface &monitor) override
 
void fastaFilesReady (pappso::UiMonitorInterface &monitor) override
 
void readSample (pappso::UiMonitorInterface &monitor) override
 
void close () override
 
- Public Member Functions inherited from pappso::cbor::psm::PsmFileReaderBase
 PsmFileReaderBase ()
 
virtual ~PsmFileReaderBase ()
 
void readCbor (QFile *cborp, pappso::UiMonitorInterface &monitor)
 
- Public Member Functions inherited from pappso::cbor::CborStreamReaderInterface
 CborStreamReaderInterface ()
 
virtual ~CborStreamReaderInterface ()
 

Protected Member Functions

void mergeParameterMap ()
 
- Protected Member Functions inherited from pappso::cbor::psm::PsmFileReaderBase
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 readScan (pappso::UiMonitorInterface &monitor)
 
virtual void readPsm (pappso::UiMonitorInterface &monitor)
 
virtual void psmReady (pappso::UiMonitorInterface &monitor)
 
virtual void logReady (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
 
bool currentProteinRefListContainsDecoy () const
 
bool currentProteinRefListContainsTarget () const
 
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)
 

Private Attributes

QTemporaryDir * mpa_temporaryDirectory
 
pappso::cbor::CborStreamWritermp_output
 
bool m_isInformations = false
 
QCborMap m_outputParameterMap
 
QStringList m_outputTargetFastaFiles
 
QStringList m_outputDecoyFastaFiles
 
std::vector< SampleStoragem_sampleStorageList
 

Additional Inherited Members

- Protected Attributes inherited from pappso::cbor::psm::PsmFileReaderBase
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_cborScanPsmEval
 
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 38 of file psmfileappend.h.

Constructor & Destructor Documentation

◆ PsmFileAppend()

pappso::cbor::psm::PsmFileAppend::PsmFileAppend ( pappso::cbor::CborStreamWriter * p_output)

Default constructor

Definition at line 31 of file psmfileappend.cpp.

32{
33 mp_output = p_output;
34
35 mp_output->startMap();
36
37 mpa_temporaryDirectory = new QTemporaryDir();
38 mpa_temporaryDirectory->setAutoRemove(false);
39}
pappso::cbor::CborStreamWriter * mp_output

References mp_output, and mpa_temporaryDirectory.

◆ ~PsmFileAppend()

pappso::cbor::psm::PsmFileAppend::~PsmFileAppend ( )
virtual

Destructor

Definition at line 41 of file psmfileappend.cpp.

42{
44}

References mpa_temporaryDirectory.

Member Function Documentation

◆ close()

void pappso::cbor::psm::PsmFileAppend::close ( )
overridevirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 67 of file psmfileappend.cpp.

68{
69
70
71 qDebug();
72 mp_output->append("parameter_map");
73 mp_output->writeCborMap(m_outputParameterMap);
74
75
76 if(!m_outputTargetFastaFiles.isEmpty())
77 {
78 mp_output->append("target_fasta_files");
80 }
81 if(!m_outputDecoyFastaFiles.isEmpty())
82 {
83 mp_output->append("decoy_fasta_files");
85 }
86
87 mp_output->append("protein_map");
88 m_proteinMap.writeMap(*mp_output);
89
90 qDebug();
91 mp_output->append("sample_list");
92 mp_output->startArray();
93 for(auto &tmp_sample : m_sampleStorageList)
94 {
95 QFile store_sample_file(tmp_sample.temporaryFile);
96 store_sample_file.open(QIODevice::ReadOnly);
97 CborStreamReader tmp_reader(&store_sample_file);
98 if(tmp_reader.isTag() && tmp_reader.toTag() == QCborKnownTags::Signature)
99 tmp_reader.next();
100 QCborMap cbor_sample;
101 if(!tmp_reader.readCborMap(cbor_sample))
102 {
103 throw pappso::PappsoException(
104 QObject::tr("ERROR writing sample %1").arg(tmp_sample.fileId));
105 }
106 mp_output->writeCborMap(cbor_sample);
107 store_sample_file.close();
108 }
109 mp_output->endArray();
110
111
112 qDebug();
113 mp_output->endMap();
114}
std::vector< SampleStorage > m_sampleStorageList

References m_outputDecoyFastaFiles, m_outputParameterMap, m_outputTargetFastaFiles, pappso::cbor::psm::PsmFileReaderBase::m_proteinMap, m_sampleStorageList, mp_output, and pappso::cbor::CborStreamReader::readCborMap().

◆ fastaFilesReady()

◆ informationsReady()

void pappso::cbor::psm::PsmFileAppend::informationsReady ( pappso::UiMonitorInterface & monitor)
overridevirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 47 of file psmfileappend.cpp.

49{
51 {
52 mp_output->append("informations");
53 mp_output->writeCborMap(m_cborInformations);
54 m_isInformations = true;
55 }
56}

References pappso::cbor::psm::PsmFileReaderBase::m_cborInformations, m_isInformations, and mp_output.

◆ mergeParameterMap()

void pappso::cbor::psm::PsmFileAppend::mergeParameterMap ( )
protected

Definition at line 117 of file psmfileappend.cpp.

118{
119 for(auto cbor_key : m_cborParameterMap.keys())
120 {
121 if(!m_outputParameterMap.contains(cbor_key))
122 {
123 m_outputParameterMap.insert(cbor_key, m_cborParameterMap.value(cbor_key));
124 }
125 }
126}

References pappso::cbor::psm::PsmFileReaderBase::m_cborParameterMap, and m_outputParameterMap.

Referenced by parameterMapReady().

◆ parameterMapReady()

void pappso::cbor::psm::PsmFileAppend::parameterMapReady ( pappso::UiMonitorInterface & monitor)
overridevirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 59 of file psmfileappend.cpp.

References mergeParameterMap().

◆ readSample()

void pappso::cbor::psm::PsmFileAppend::readSample ( pappso::UiMonitorInterface & monitor)
overridevirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 137 of file psmfileappend.cpp.

138{
139 QCborMap cbor_current_sample;
140
141 mpa_cborReader->readCborMap(cbor_current_sample);
142
143 SampleStorage sample_file;
144 sample_file.fileId = cbor_current_sample.value("name").toString();
145 QString sample_name = sample_file.fileId;
146 auto it = std::find_if(m_sampleStorageList.begin(),
148 [sample_name](const SampleStorage &sample) {
149 if(sample.fileId == sample_name)
150 return true;
151 return false;
152 });
153 if(it != m_sampleStorageList.end())
154 {
155 throw pappso::PappsoException(
156 QObject::tr("adding the same sample twice is forbidden %1").arg(sample_name));
157 }
158 sample_file.temporaryFile =
159 mpa_temporaryDirectory->filePath(QString("file_%1").arg(m_sampleStorageList.size()));
160 m_sampleStorageList.push_back(sample_file);
161
162 QFile store_sample_file(sample_file.temporaryFile);
163 store_sample_file.open(QIODevice::WriteOnly);
164 CborStreamWriter tmp_writer(&store_sample_file);
165 tmp_writer.writeCborMap(cbor_current_sample);
166 store_sample_file.close();
167}

References pappso::cbor::psm::PsmFileAppend::SampleStorage::fileId, m_sampleStorageList, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, mpa_temporaryDirectory, pappso::cbor::psm::PsmFileAppend::SampleStorage::temporaryFile, and pappso::cbor::CborStreamWriter::writeCborMap().

Member Data Documentation

◆ m_isInformations

bool pappso::cbor::psm::PsmFileAppend::m_isInformations = false
private

Definition at line 73 of file psmfileappend.h.

Referenced by informationsReady().

◆ m_outputDecoyFastaFiles

QStringList pappso::cbor::psm::PsmFileAppend::m_outputDecoyFastaFiles
private

Definition at line 77 of file psmfileappend.h.

Referenced by close(), and fastaFilesReady().

◆ m_outputParameterMap

QCborMap pappso::cbor::psm::PsmFileAppend::m_outputParameterMap
private

Definition at line 75 of file psmfileappend.h.

Referenced by close(), and mergeParameterMap().

◆ m_outputTargetFastaFiles

QStringList pappso::cbor::psm::PsmFileAppend::m_outputTargetFastaFiles
private

Definition at line 76 of file psmfileappend.h.

Referenced by close(), and fastaFilesReady().

◆ m_sampleStorageList

std::vector<SampleStorage> pappso::cbor::psm::PsmFileAppend::m_sampleStorageList
private

Definition at line 78 of file psmfileappend.h.

Referenced by close(), and readSample().

◆ mp_output

pappso::cbor::CborStreamWriter* pappso::cbor::psm::PsmFileAppend::mp_output
private

Definition at line 71 of file psmfileappend.h.

Referenced by PsmFileAppend(), close(), and informationsReady().

◆ mpa_temporaryDirectory

QTemporaryDir* pappso::cbor::psm::PsmFileAppend::mpa_temporaryDirectory
private

Definition at line 70 of file psmfileappend.h.

Referenced by PsmFileAppend(), ~PsmFileAppend(), and readSample().


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