libpappsomspp
Library for mass spectrometry
peptidevariablemodificationbuilder.h
Go to the documentation of this file.
1/*******************************************************************************
2 * Copyright (c) 2015 Olivier Langella <Olivier.Langella@moulon.inra.fr>.
3 *
4 * This file is part of the PAPPSOms++ library.
5 *
6 * PAPPSOms++ is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * PAPPSOms++ is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
18 *
19 * Contributors:
20 * Olivier Langella <Olivier.Langella@moulon.inra.fr> - initial API and
21 *implementation
22 ******************************************************************************/
23
24#pragma once
25
26
28
29namespace pappso
30{
31
32
33/** \brief Modify a peptide shared pointer with a variable modification on one
34 * AA
35 * */
38{
39 public:
42 void setPeptideSp(std::int8_t sequence_database_id,
43 const ProteinSp &protein_sp,
44 bool is_decoy,
45 const PeptideSp &peptide_sp_original,
46 unsigned int start,
47 bool is_nter,
48 unsigned int missed_cleavage_number,
49 bool semi_enzyme) override;
50
51 void addAa(char aa);
52
53 void
54 setMaxNumberMod(unsigned int max_num)
55 {
56 m_maxNumberMod = max_num;
57 };
58 void
59 setMinNumberMod(unsigned int min_num)
60 {
61 m_minNumberMod = min_num;
62 };
63 void
64 setModificationCounter(unsigned int counter)
65 {
66 m_modificationCount = counter;
67 };
68
69 void
71 {
72 m_sink = sink;
73 };
74
75
76 /** \brief this modification concerns the Nter peptide
77 * */
78 void
79 setProtNter(bool arg1)
80 {
81 m_isProtNterMod = arg1;
82 };
83 /** \brief this modification concerns the Cter peptide
84 * */
85 void
86 setProtCter(bool arg1)
87 {
88 m_isProtCterMod = arg1;
89 };
90 /** \brief this modification concerns all peptides between Nter and Cter
91 * */
92 void
93 setProtElse(bool arg1)
94 {
95 m_isProtElseMod = arg1;
96 };
97
98 protected:
99 static bool next_combination(const std::vector<unsigned int>::iterator first,
100 std::vector<unsigned int>::iterator k,
101 const std::vector<unsigned int>::iterator last);
102
105 // minimum number of positions to modify
106 unsigned int m_minNumberMod = 0;
107 // maximum number of positions to modify
108 unsigned int m_maxNumberMod = 30000;
109 // modification counter per site
110 unsigned int m_modificationCount = 0;
111
112 // protein Nter modification
113 bool m_isProtNterMod = true;
114 // protein Cter modification
115 bool m_isProtCterMod = true;
116
117 bool m_isProtElseMod = true;
118
119
120 private:
122};
123
124
125} // namespace pappso
Modify a peptide shared pointer with a variable modification on one AA.
void setSink(PeptideModificatorInterface *sink) override
void setProtNter(bool arg1)
this modification concerns the Nter peptide
void setProtElse(bool arg1)
this modification concerns all peptides between Nter and Cter
void setProtCter(bool arg1)
this modification concerns the Cter peptide
#define PMSPP_LIB_DECL
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition: aa.cpp:39
std::shared_ptr< const Peptide > PeptideSp
std::shared_ptr< const Protein > ProteinSp
shared pointer on a Protein object
Definition: protein.h:47
base class for all peptide modification builders