29#include "../../../pappsoexception.h"
34 : m_PsmFileScanProcess(psm_file_scan_process)
50 if(!keys().contains(
"id"))
54 return value(
"id").toMap();
60 if(!keys().contains(
"precursor"))
64 return value(
"precursor").toMap();
70 if(!keys().contains(
"psm_list"))
74 return value(
"psm_list").toArray();
78std::vector<double>::iterator
80 const QString &eval_name,
81 const QString &eval_value_key,
82 std::vector<double>::iterator itbegin,
83 std::vector<double>::const_iterator itend)
85 std::vector<double>::iterator it = itbegin;
86 if(keys().contains(
"psm_list"))
90 QCborArray new_psm_arr;
91 for(QCborValue cbor_psm : value(
"psm_list").toArray())
93 QCborMap cbor_psm_map = cbor_psm.toMap();
95 if(!cbor_psm_map.keys().contains(
"proforma"))
98 QObject::tr(
"missing proforma in psm %1").arg(cbor_psm_map.keys().size()));
100 QCborMap cbor_psm_eval_newvalues;
106 QObject::tr(
"no more values to add in psm %1").arg(cbor_psm_map.keys().size()));
108 cbor_psm_eval_newvalues.insert(eval_value_key, *it);
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);
118 new_psm_arr.push_back(cbor_psm_map);
122 remove(QString(
"psm_list"));
123 insert(QString(
"psm_list"), new_psm_arr);
136 if(!contains(QString(
"precursor")))
140 const QCborMap cbor_precursor(value(
"precursor").toMap());
141 if(!contains(QString(
"ms2")))
145 const QCborMap cbor_ms2(value(
"ms2").toMap());
147 if(!contains(QString(
"id")))
151 const QCborMap cbor_id(value(
"id").toMap());
153 if(!cbor_id.keys().contains(
"index"))
157 if(!cbor_ms2.keys().contains(
"mz"))
161 if(!cbor_ms2.keys().contains(
"intensity"))
165 pappso::MsRunId msrun_id(m_PsmFileScanProcess.m_currentPeaklistFile.name);
166 msrun_id.
setSampleName(m_PsmFileScanProcess.m_currentSampleName);
172 if(cbor_id.keys().contains(
"native_id"))
174 ms_id.
setNativeId(cbor_id.value(
"native_id").toString());
177 std::vector<DataPoint> data_point_vector;
179 for(
auto cbor_mz_value : cbor_ms2.value(
"mz").toArray())
181 data_point_vector.push_back(
182 {cbor_mz_value.toDouble(), cbor_ms2.value(
"intensity").toArray().at(i).toDouble()});
194 if(cbor_precursor.keys().contains(
"z"))
196 precursor_ion_data.
charge = cbor_precursor.value(
"z").toInteger();
198 if(cbor_precursor.keys().contains(
"mz"))
200 precursor_ion_data.
mz = cbor_precursor.value(
"mz").toDouble();
202 if(cbor_precursor.keys().contains(
"intensity"))
204 precursor_ion_data.
intensity = cbor_precursor.value(
"intensity").toDouble();
207 if(cbor_ms2.keys().contains(
"rt"))
209 qualified_mass_spectrum.
setRtInSeconds(cbor_ms2.value(
"rt").toDouble());
Base class to handle scan cbor map.
void setNativeId(const QString &native_id)
void setSpectrumIndex(std::size_t index)
Class to represent a mass spectrum.
MassSpectrumSPtr makeMassSpectrumSPtr() const
MS run identity MsRunId identifies an MS run with a unique ID (XmlId) and contains eventually informa...
void setSampleName(const QString &name)
set a sample name for this MsRunId
Class representing a fully specified mass spectrum.
void appendPrecursorIonData(const PrecursorIonData &precursor_ion_data)
void setMsLevel(uint ms_level)
Set the mass spectrum level.
QualifiedMassSpectrumSPtr makeQualifiedMassSpectrumSPtr() const
void setMassSpectrumSPtr(MassSpectrumSPtr massSpectrum)
Set the MassSpectrumSPtr.
void setRtInSeconds(pappso_double rt)
Set the retention time in seconds.
QCborMap getCborScanPrecursor() const
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
QCborArray getCborPsmList() const
CborScanMapBase(const PsmFileScanProcess &psm_file_scan_process)
virtual ~CborScanMapBase()
QCborMap getCborScanId() const
pappso::QualifiedMassSpectrumSPtr getCurrentQualifiedMassSpectrumSPtr() const
Basic PSM file reader to process scan (parallelized scan processing)
std::shared_ptr< QualifiedMassSpectrum > QualifiedMassSpectrumSPtr
std::shared_ptr< const MsRunId > MsRunIdCstSPtr
PSM file reader designed to parallelize scan process.