libpappsomspp
Library for mass spectrometry
pappso::cbor::psm::CborScanMapBase Class Reference

#include <cborscanmapbase.h>

Inheritance diagram for pappso::cbor::psm::CborScanMapBase:
pappso::cbor::psm::PsmFeaturesScan pappso::cbor::psm::PsmSpecGlobScan pappso::cbor::psm::PsmSpecPeptidOmsScan

Public Member Functions

 CborScanMapBase (const PsmFileScanProcess &psm_file_scan_process)
 
virtual ~CborScanMapBase ()
 
virtual void process ()
 
std::vector< double >::iterator addPsmEvalVectorDouble (const QString &eval_name, const QString &eval_value_key, std::vector< double >::iterator begin, std::vector< double >::const_iterator end)
 add a new eval key and double values (from a vector) to each PSM More...
 
QCborMap getCborScanId () const
 
QCborMap getCborScanPrecursor () const
 
QCborArray getCborPsmList () const
 

Protected Member Functions

pappso::QualifiedMassSpectrumSPtr getCurrentQualifiedMassSpectrumSPtr () const
 

Protected Attributes

const PsmFileScanProcessm_PsmFileScanProcess
 

Detailed Description

Todo:
write docs

Definition at line 38 of file cborscanmapbase.h.

Constructor & Destructor Documentation

◆ CborScanMapBase()

pappso::cbor::psm::CborScanMapBase::CborScanMapBase ( const PsmFileScanProcess psm_file_scan_process)

Default constructor

Definition at line 33 of file cborscanmapbase.cpp.

34 : m_PsmFileScanProcess(psm_file_scan_process)
35{
36}
const PsmFileScanProcess & m_PsmFileScanProcess

◆ ~CborScanMapBase()

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

Destructor

Definition at line 38 of file cborscanmapbase.cpp.

39{
40}

Member Function Documentation

◆ addPsmEvalVectorDouble()

std::vector< double >::iterator pappso::cbor::psm::CborScanMapBase::addPsmEvalVectorDouble ( const QString &  eval_name,
const QString &  eval_value_key,
std::vector< double >::iterator  begin,
std::vector< double >::const_iterator  end 
)

add a new eval key and double values (from a vector) to each PSM

Definition at line 79 of file cborscanmapbase.cpp.

84{
85 std::vector<double>::iterator it = itbegin;
86 if(keys().contains("psm_list"))
87 {
88
89
90 QCborArray new_psm_arr;
91 for(QCborValue cbor_psm : value("psm_list").toArray())
92 {
93 QCborMap cbor_psm_map = cbor_psm.toMap();
94
95 if(!cbor_psm_map.keys().contains("proforma"))
96 {
98 QObject::tr("missing proforma in psm %1").arg(cbor_psm_map.keys().size()));
99 }
100 QCborMap cbor_psm_eval_newvalues;
101
102
103 if(it == itend)
104 {
106 QObject::tr("no more values to add in psm %1").arg(cbor_psm_map.keys().size()));
107 }
108 cbor_psm_eval_newvalues.insert(eval_value_key, *it);
109 it++;
110
111
112 QCborMap psm_eval = cbor_psm_map.value("eval").toMap();
113 psm_eval.remove(eval_name);
114 psm_eval.insert(eval_name, cbor_psm_eval_newvalues);
115 cbor_psm_map.remove(QString("eval"));
116 cbor_psm_map.insert(QString("eval"), psm_eval);
117
118 new_psm_arr.push_back(cbor_psm_map);
119 }
120
121 // insert(QString("psm_list"), new_psm_arr);
122 remove(QString("psm_list"));
123 insert(QString("psm_list"), new_psm_arr);
124 }
125 return it;
126}

Referenced by pappso::cbor::psm::PsmNewEval::newCborScanMap().

◆ getCborPsmList()

QCborArray pappso::cbor::psm::CborScanMapBase::getCborPsmList ( ) const

Definition at line 68 of file cborscanmapbase.cpp.

69{
70 if(!keys().contains("psm_list"))
71 {
72 throw pappso::PappsoException(QObject::tr("missing psm_list in scan"));
73 }
74 return value("psm_list").toArray();
75}

◆ getCborScanId()

QCborMap pappso::cbor::psm::CborScanMapBase::getCborScanId ( ) const

Definition at line 48 of file cborscanmapbase.cpp.

49{
50 if(!keys().contains("id"))
51 {
52 throw pappso::PappsoException(QObject::tr("missing id in scan"));
53 }
54 return value("id").toMap();
55}

◆ getCborScanPrecursor()

QCborMap pappso::cbor::psm::CborScanMapBase::getCborScanPrecursor ( ) const

Definition at line 58 of file cborscanmapbase.cpp.

59{
60 if(!keys().contains("precursor"))
61 {
62 throw pappso::PappsoException(QObject::tr("missing precursor in scan"));
63 }
64 return value("precursor").toMap();
65}

◆ getCurrentQualifiedMassSpectrumSPtr()

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

Definition at line 130 of file cborscanmapbase.cpp.

131{
132 if(isEmpty())
133 {
134 throw pappso::PappsoException(QObject::tr("ERROR: cbor scan map is empty"));
135 }
136 if(!contains(QString("precursor")))
137 {
138 throw pappso::PappsoException(QObject::tr("ERROR: no precursor in scan"));
139 }
140 const QCborMap cbor_precursor(value("precursor").toMap());
141 if(!contains(QString("ms2")))
142 {
143 throw pappso::PappsoException(QObject::tr("ERROR: ms2 is empty in scan"));
144 }
145 const QCborMap cbor_ms2(value("ms2").toMap());
146
147 if(!contains(QString("id")))
148 {
149 throw pappso::PappsoException(QObject::tr("ERROR: id is empty in scan"));
150 }
151 const QCborMap cbor_id(value("id").toMap());
152
153 if(!cbor_id.keys().contains("index"))
154 {
155 throw pappso::PappsoException("There is no scan index");
156 }
157 if(!cbor_ms2.keys().contains("mz"))
158 {
159 throw pappso::PappsoException("There is no ms2 mz values");
160 }
161 if(!cbor_ms2.keys().contains("intensity"))
162 {
163 throw pappso::PappsoException("There is no ms2 intensity values");
164 }
166 msrun_id.setSampleName(m_PsmFileScanProcess.m_currentSampleName);
167 pappso::MsRunIdCstSPtr msrun_id_sp = std::make_shared<const pappso::MsRunId>(msrun_id);
168 pappso::MassSpectrumId ms_id(msrun_id_sp);
169 ms_id.setSpectrumIndex(cbor_id.value("index").toInteger());
170
171 // native_id
172 if(cbor_id.keys().contains("native_id"))
173 {
174 ms_id.setNativeId(cbor_id.value("native_id").toString());
175 }
176
177 std::vector<DataPoint> data_point_vector;
178 std::size_t i = 0;
179 for(auto cbor_mz_value : cbor_ms2.value("mz").toArray())
180 {
181 data_point_vector.push_back(
182 {cbor_mz_value.toDouble(), cbor_ms2.value("intensity").toArray().at(i).toDouble()});
183 i++;
184 }
185
186
187 MassSpectrum mass_spectrum(data_point_vector);
188 pappso::PrecursorIonData precursor_ion_data;
189
190 pappso::QualifiedMassSpectrum qualified_mass_spectrum(ms_id);
191 qualified_mass_spectrum.setMassSpectrumSPtr(mass_spectrum.makeMassSpectrumSPtr());
192 qualified_mass_spectrum.setMsLevel(2);
193
194 if(cbor_precursor.keys().contains("z"))
195 {
196 precursor_ion_data.charge = cbor_precursor.value("z").toInteger();
197 }
198 if(cbor_precursor.keys().contains("mz"))
199 {
200 precursor_ion_data.mz = cbor_precursor.value("mz").toDouble();
201 }
202 if(cbor_precursor.keys().contains("intensity"))
203 {
204 precursor_ion_data.intensity = cbor_precursor.value("intensity").toDouble();
205 }
206 qualified_mass_spectrum.appendPrecursorIonData(precursor_ion_data);
207 if(cbor_ms2.keys().contains("rt"))
208 {
209 qualified_mass_spectrum.setRtInSeconds(cbor_ms2.value("rt").toDouble());
210 }
211
212
213 return qualified_mass_spectrum.makeQualifiedMassSpectrumSPtr();
214}
MS run identity MsRunId identifies an MS run with a unique ID (XmlId) and contains eventually informa...
Definition: msrunid.h:54
Class representing a fully specified mass spectrum.
std::shared_ptr< const MsRunId > MsRunIdCstSPtr
Definition: msrunid.h:46

References pappso::QualifiedMassSpectrum::appendPrecursorIonData(), pappso::PrecursorIonData::charge, pappso::PrecursorIonData::intensity, 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().

◆ process()

void pappso::cbor::psm::CborScanMapBase::process ( )
virtual

Member Data Documentation

◆ m_PsmFileScanProcess

const PsmFileScanProcess& pappso::cbor::psm::CborScanMapBase::m_PsmFileScanProcess
protected

Definition at line 68 of file cborscanmapbase.h.


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