libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
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
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 setPeptideSp(std::int8_t sequence_database_id, const ProteinSp &protein_sp, bool is_decoy, const PeptideSp &peptide_sp_original, unsigned int start, bool is_nter, unsigned int missed_cleavage_number, bool semi_enzyme) override
function to give the products of modifications for a digested peptide
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
const AaModification * AaModificationP
std::shared_ptr< const Protein > ProteinSp
shared pointer on a Protein object
Definition protein.h:47
base class for all peptide modification builders