libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
posttreatment.h
Go to the documentation of this file.
1/**
2 * \file pappsomspp/processing/specglob/sgposttreatment.h
3 * \date 15/11/2023
4 * \author Olivier Langella
5 * \brief SpecGlobTool peptide model post treatment
6 *
7 * C++ implementation of the SpecGlob algorithm described in :
8 * 1. Prunier, G. et al. Fast alignment of mass spectra in large proteomics
9 * datasets, capturing dissimilarities arising from multiple complex
10 * modifications of peptides. BMC Bioinformatics 24, 421 (2023).
11 *
12 * HAL Id : hal-04296170 , version 1
13 * Mot de passe : hxo20cl
14 * DOI : 10.1186/s12859-023-05555-y
15 */
16
17
18/*
19 * SpecGlobTool, Spectra to peptide alignment tool
20 * Copyright (C) 2023 Olivier Langella
21 * <olivier.langella@universite-paris-saclay.fr>
22 *
23 * This program is free software: you can redistribute ipetide to spectrum
24 * alignmentt and/or modify it under the terms of the GNU General Public License
25 * as published by the Free Software Foundation, either version 3 of the
26 * License, or (at your option) any later version.
27 *
28 * This program is distributed in the hope that it will be useful,
29 * but WITHOUT ANY WARRANTY; without even the implied warranty of
30 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31 * GNU General Public License for more details.
32 *
33 * You should have received a copy of the GNU General Public License
34 * along with this program. If not, see <http://www.gnu.org/licenses/>.
35 *
36 */
37
38#pragma once
39
40
41#include "peptidemodel.h"
42#include "../../exportinmportconfig.h"
43
44
45namespace pappso
46{
47namespace specglob
48{
49/**
50 * @todo write docs
51 */
53{
54 public:
55 /**
56 * Default constructor
57 */
59 const PeptideModel &peptide_model);
60
61 /**
62 * Destructor
63 */
64 virtual ~PostTreatment();
65
66 const PeptideModel &getBetterPeptideModel() const;
67 const PeptideModel &getOriginalPeptideModel() const;
68
69 bool findReplaceMutations();
70
71 private:
72 /** @brief whole processus to find a better peptide model
73 *
74 * assign residual mass to Cter
75 * remove complementary mass delta
76 * eliminate negative offsets (perhaps neutral loss)
77 * check negative offsets for amino acid mass sums to remove
78 * try better positions for mass delta
79 *
80 */
81 void findBetterPeptideModel();
82
83 /** @brief try to move offset (mass difference)
84 *
85 * for each mass difference position, try to move to other position if the
86 * amino acid is not aligned, count matched peaks and compare to the previous
87 * solution.
88 * Keep only the better position
89 */
90 void tryBetterPositionOffsets();
91
92 /** @brief try to remove offset (mass difference)
93 *
94 * for each mass difference position, count matched peaks and compare to the
95 * previous solution. Removes mass difference if it does not degrade the
96 * number of matched peaks
97 */
98 void tryToRemoveOffsets();
99
100 /** @brief try to assign residual mass delta to non aligned elements
101 *
102 * This method is run only if there is not-aligned offSets. It may be
103 * explained by an inadequate alignment at the start because we give some
104 * advance to non-tryptic peptides. But, at the end of the alignment, we can
105 * consider it was not the best choice Trying to improve this alignment by
106 * adding not-aligned offSet with another one
107 */
108 void tryToCumulateOffSets();
109
110
111 private:
115};
116} // namespace specglob
117} // namespace pappso
pappso::PrecisionPtr m_precision
#define PMSPP_LIB_DECL
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition aa.cpp:39
SpecGlobTool peptide model.