71 if(keys().contains(
"psm_list"))
77 qualified_mass_spectrum.get()->getPrecursorMz(),
78 qualified_mass_spectrum.get()->getPrecursorCharge());
81 QCborArray new_psm_arr;
82 for(QCborValue cbor_psm : value(
"psm_list").toArray())
84 QCborMap cbor_psm_map = cbor_psm.toMap();
85 QCborMap cbor_psm_features;
89 if(peptide_sp.get()->size() < 2)
92 .arg(cbor_psm_map.value(
"proforma").toString()));
97 std::size_t peptide_size = peptide_sp.get()->size();
98 cbor_psm_features.insert(QString(
"peptide_size"), (
unsigned int)peptide_size);
102 qualified_mass_spectrum.get()->getPrecursorCharge(),
106 cbor_psm_features.insert(QString(
"hyperscore"), QCborValue(hyperscore.
getHyperscore()));
112 qualified_mass_spectrum.get()->getMassSpectrumSPtr().get(),
113 qualified_mass_spectrum.get()->getPrecursorCharge(),
116 cbor_psm_features.insert(QString(
"total_intensity"),
118 cbor_psm_features.insert(QString(
"total_matched_intensity"),
121 cbor_psm_features.insert(QString(
"max_intensity"),
122 checkInf(std::log(qualified_mass_spectrum.get()
123 ->getMassSpectrumSPtr()
125 ->maxIntensityDataPoint()
131 cbor_psm_features.insert(
132 QString(
"MaxYionInt"),
136 cbor_psm_features.insert(
137 QString(
"MaxBionInt"),
141 cbor_psm_features.insert(
142 QString(
"SumYmatchInt"),
146 cbor_psm_features.insert(
147 QString(
"SumBmatchInt"),
151 cbor_psm_features.insert(
152 QString(
"FracYmatchInt"),
156 cbor_psm_features.insert(
157 QString(
"FracBmatchInt"),
162 cbor_psm_features.insert(
163 QString(
"SeqCoverYion"),
165 (
double)peptide_size);
167 cbor_psm_features.insert(
168 QString(
"SeqCoverBion"),
170 (
double)peptide_size);
174 cbor_psm_features.insert(
175 QString(
"ConsecutiveYion"),
178 cbor_psm_features.insert(
179 QString(
"ConsecutiveBion"),
183 cbor_psm_features.insert(QString(
"MassErrMean"),
m_psmFeatures.getMatchedMzDiffMean());
186 cbor_psm_features.insert(QString(
"MassErrSD"),
m_psmFeatures.getMatchedMzDiffSd());
189 cbor_psm_features.insert(QString(
"NumofAnnoPeaks"),
195 std::size_t num_of_pairs =
m_psmFeatures.countMatchedIonComplementPairs();
196 cbor_psm_features.insert(QString(
"NumofComplementPeaks"), (
unsigned int)num_of_pairs);
200 cbor_psm_features.insert(
201 QString(
"SumComplementPeaksInt"),
202 std::log(
m_psmFeatures.getTotalIntensityOfMatchedIonComplementPairs()));
205 cbor_psm_features.insert(
206 QString(
"FracComplementPeaksInt"),
207 m_psmFeatures.getTotalIntensityOfMatchedIonComplementPairs() /
210 cbor_psm_features.insert(
211 QString(
"SeqCoverComplementPeaks"),
212 (
double)
m_psmFeatures.getComplementPairsAaSequenceCoverage() /
213 (
double)peptide_size);
216 cbor_psm_features.insert(QString(
"lrSize"), (
unsigned int)lr.
getSize());
220 if(std::isnan(coeff_of_determination))
225 cbor_psm_features.insert(QString(
"lrCoeffDet"), coeff_of_determination);
229 QCborMap psm_eval = cbor_psm_map.value(
"eval").toMap();
230 psm_eval.remove(QString(
"features"));
231 psm_eval.insert(QString(
"features"), cbor_psm_features);
232 cbor_psm_map.remove(QString(
"eval"));
233 cbor_psm_map.insert(QString(
"eval"), psm_eval);
235 new_psm_arr.push_back(cbor_psm_map);
238 insert(QString(
"psm_list"), new_psm_arr);