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"),
119 cbor_psm_features.insert(QString(
"max_intensity"),
120 checkInf(std::log(qualified_mass_spectrum.get()
121 ->getMassSpectrumSPtr()
123 ->maxIntensityDataPoint()
129 cbor_psm_features.insert(
130 QString(
"MaxYionInt"),
134 cbor_psm_features.insert(
135 QString(
"MaxBionInt"),
139 cbor_psm_features.insert(
140 QString(
"SumYmatchInt"),
144 cbor_psm_features.insert(
145 QString(
"SumBmatchInt"),
149 cbor_psm_features.insert(
150 QString(
"FracYmatchInt"),
154 cbor_psm_features.insert(
155 QString(
"FracBmatchInt"),
160 cbor_psm_features.insert(
161 QString(
"SeqCoverYion"),
163 (
double)peptide_size);
165 cbor_psm_features.insert(
166 QString(
"SeqCoverBion"),
168 (
double)peptide_size);
172 cbor_psm_features.insert(
173 QString(
"ConsecutiveYion"),
176 cbor_psm_features.insert(
177 QString(
"ConsecutiveBion"),
181 cbor_psm_features.insert(QString(
"MassErrMean"),
m_psmFeatures.getMatchedMzDiffMean());
184 cbor_psm_features.insert(QString(
"MassErrSD"),
m_psmFeatures.getMatchedMzDiffSd());
187 cbor_psm_features.insert(QString(
"NumofAnnoPeaks"),
193 std::size_t num_of_pairs =
m_psmFeatures.countMatchedIonComplementPairs();
194 cbor_psm_features.insert(QString(
"NumofComplementPeaks"), (
unsigned int)num_of_pairs);
198 cbor_psm_features.insert(
199 QString(
"SumComplementPeaksInt"),
200 std::log(
m_psmFeatures.getTotalIntensityOfMatchedIonComplementPairs()));
203 cbor_psm_features.insert(
204 QString(
"FracComplementPeaksInt"),
205 m_psmFeatures.getTotalIntensityOfMatchedIonComplementPairs() /
208 cbor_psm_features.insert(
209 QString(
"SeqCoverComplementPeaks"),
210 (
double)
m_psmFeatures.getComplementPairsAaSequenceCoverage() /
211 (
double)peptide_size);
214 cbor_psm_features.insert(QString(
"lrSize"), (
unsigned int)lr.
getSize());
218 if(std::isnan(coeff_of_determination))
223 cbor_psm_features.insert(QString(
"lrCoeffDet"), coeff_of_determination);
227 QCborMap psm_eval = cbor_psm_map.value(
"eval").toMap();
228 psm_eval.remove(QString(
"features"));
229 psm_eval.insert(QString(
"features"), cbor_psm_features);
230 cbor_psm_map.remove(QString(
"eval"));
231 cbor_psm_map.insert(QString(
"eval"), psm_eval);
233 new_psm_arr.push_back(cbor_psm_map);
236 insert(QString(
"psm_list"), new_psm_arr);