49{
50 if(!keys().contains("id"))
51 {
53 }
54 if(keys().contains("psm_list"))
55 {
58 std::make_shared<pappso::specglob::ExperimentalSpectrum>(*qualified_mass_spectrum.get(),
60
61
63 *(qualified_mass_spectrum.get()->getMassSpectrumSPtr().get()));
64
65 QCborArray new_psm_arr;
66 for(QCborValue cbor_psm : value("psm_list").toArray())
67 {
68 QCborMap cbor_psm_map = cbor_psm.toMap();
69
70 if(!cbor_psm_map.keys().contains("proforma"))
71 {
73 QObject::tr("missing proforma in psm %1 spectrum %2")
74 .arg(cbor_psm_map.keys().size())
75 .arg(qualified_mass_spectrum.get()->getMassSpectrumId().getNativeId()));
76 }
77 QString proforma = cbor_psm_map.value("proforma").toString();
78 if(proforma.isEmpty())
79 {
80
82 QObject::tr("proforma is empty in psm %1 spectrum %2")
83 .arg(cbor_psm_map.keys().size())
84 .arg(qualified_mass_spectrum.get()->getMassSpectrumId().getNativeId()));
85 }
86 QCborMap cbor_psm_eval_specglob;
87 qDebug();
89
90 qDebug() << proforma << " " << peptide_sp.get()->toProForma();
92 std::make_shared<pappso::specglob::PeptideSpectrum>(peptide_sp);
93
94 qDebug();
95
96 qDebug();
99
100 spectral_alignment.align(peptide_spectra, experimental_spectrum);
101
102 cbor_psm_eval_specglob.insert(QString("max_score"), spectral_alignment.getMaxScore());
103
104 bool keep = false;
105
106 if(spectral_alignment.getMaxScore() > 0)
107 {
109
110
111
112
113
116 post_treatment.findReplaceMutations();
117 peptide_model = post_treatment.getBetterPeptideModel();
118
119 cbor_psm_eval_specglob.insert(QString("count"),
121
122 cbor_psm_eval_specglob.insert(QString(
"proforma"), peptide_model.
toProForma());
123 cbor_psm_eval_specglob.insert(QString(
"bracket"), peptide_model.
toString());
124
125
126
128 {
129 keep = true;
130 }
131 }
132
133 QCborMap psm_eval = cbor_psm_map.value("eval").toMap();
134 psm_eval.remove(QString("specglob"));
135 psm_eval.insert(QString("specglob"), cbor_psm_eval_specglob);
136 cbor_psm_map.remove(QString("eval"));
137 cbor_psm_map.insert(QString("eval"), psm_eval);
138
140 {
141 if(keep)
142 {
143 QCborMap new_psm;
144 new_psm.insert(QString("proforma"),
145 cbor_psm_eval_specglob.value("proforma").toString());
146 new_psm.insert(QString("protein_list"), cbor_psm_map.value("protein_list"));
147 new_psm.insert(QString("eval"), cbor_psm_map.value("eval"));
148 new_psm_arr.push_back(new_psm);
149 }
150 }
151 else
152 {
153 new_psm_arr.push_back(cbor_psm_map);
154 }
155 }
156
157
158 remove(QString("psm_list"));
159 insert(QString("psm_list"), new_psm_arr);
160
161
163 }
164}
void filterPsmListUniqueUniqueProforma()
pappso::QualifiedMassSpectrumSPtr getCurrentQualifiedMassSpectrumSPtr() const
bool m_isProteinMatcherResult
void filterMassSpectrum(pappso::MassSpectrum &mass_spectrum) const
std::size_t getCountSharedPeaks() const
QString toProForma() const
get the peptide model in ProForma notation https://github.com/HUPO-PSI/ProForma/blob/master/README....
std::shared_ptr< const PeptideSpectrum > PeptideSpectraCsp
std::shared_ptr< const ExperimentalSpectrum > ExperimentalSpectrumCsp
std::shared_ptr< QualifiedMassSpectrum > QualifiedMassSpectrumSPtr
std::shared_ptr< const Peptide > PeptideSp