libpappsomspp
Library for mass spectrometry
enzymeproductinterface.h
Go to the documentation of this file.
1 
2 /*******************************************************************************
3  * Copyright (c) 2015 Olivier Langella <Olivier.Langella@moulon.inra.fr>.
4  *
5  * This file is part of the PAPPSOms++ library.
6  *
7  * PAPPSOms++ is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * PAPPSOms++ is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
19  *
20  * Contributors:
21  * Olivier Langella <Olivier.Langella@moulon.inra.fr> - initial API and
22  *implementation
23  ******************************************************************************/
24 
25 #pragma once
26 
27 #include "protein.h"
28 #include "../peptide/peptide.h"
29 #include <QStringList>
30 
31 namespace pappso
32 {
34 {
35  public:
36  /** @brief function to give the products of a protein digestion by an enzyme
37  * @param sequence_database_id integer that references the sequence fatabase
38  * (file, stream, url...)
39  * @param protein_sp shared pointer on the protein that was digested
40  * @param is_decoy tell if the current protein is a decoy (true) or normal
41  * (false) protein
42  * @param peptide amino acid sequence of the peptide (string) produced by the
43  * digestion
44  * @param start the position of the first amino acid of the peptide in the
45  * original protein sequence. the first amino acid of the protein is at
46  * position 1.
47  * @param is_nter boolean to tell if the peptide is an Nter peptide (to allow
48  * Methionin Nter removal)
49  * @param missed_cleavage_number number of missed cleavage sites (that the
50  * enzyme has not cut) fot the product
51  * @param semi_enzyme boolean that tells if this peptide is the produce of a
52  * semi enzymatic lysis
53  * */
54  virtual void setPeptide(std::int8_t sequence_database_id,
55  const ProteinSp &protein_sp,
56  bool is_decoy,
57  const PeptideStr &peptide,
58  unsigned int start,
59  bool is_nter,
60  unsigned int missed_cleavage_number,
61  bool semi_enzyme) = 0;
62 };
63 
65 {
66  public:
68  /** @brief function to give the products of modifications for a digested
69  * peptide
70  * @param sequence_database_id integer that references the sequence fatabase
71  * (file, stream, url...)
72  * @param protein_sp shared pointer on the
73  * protein that was initialy digested
74  * @param is_decoy tell if the current
75  * protein is a decoy (true) or normal (false) protein
76  * @param peptide Peptide
77  * object containing sequence and possible modifications
78  * @param start the
79  * position of the first amino acid of the peptide in the original protein
80  * sequence. the first amino acid of the protein is at position 1.
81  * @param
82  * is_nter boolean to tell if the peptide is an Nter peptide (to allow
83  * Methionin Nter removal)
84  * @param missed_cleavage_number number of missed
85  * cleavage sites (that the enzyme has not cut) fot the product
86  * @param
87  * semi_enzyme boolean that tells if this peptide is the produce of a semi
88  * enzymatic lysis
89  * */
90  virtual void setPeptideSp(std::int8_t sequence_database_id,
91  const ProteinSp &protein_sp,
92  bool is_decoy,
93  const PeptideSp &peptide_sp,
94  unsigned int start,
95  bool is_nter,
96  unsigned int missed_cleavage_number,
97  bool semi_enzyme) = 0;
98 };
99 
101 {
102  public:
103  virtual void setSink(EnzymeProductInterface *sink) = 0;
104 };
105 
106 
108 {
109  public:
110  virtual void setSink(PeptideModificatorInterface *sink) = 0;
111 };
112 } // namespace pappso
virtual void setPeptide(std::int8_t sequence_database_id, const ProteinSp &protein_sp, bool is_decoy, const PeptideStr &peptide, unsigned int start, bool is_nter, unsigned int missed_cleavage_number, bool semi_enzyme)=0
function to give the products of a protein digestion by an enzyme
virtual void setPeptideSp(std::int8_t sequence_database_id, const ProteinSp &protein_sp, bool is_decoy, const PeptideSp &peptide_sp, unsigned int start, bool is_nter, unsigned int missed_cleavage_number, bool semi_enzyme)=0
function to give the products of modifications for a digested peptide
virtual void setSink(EnzymeProductInterface *sink)=0
virtual void setSink(PeptideModificatorInterface *sink)=0
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition: aa.cpp:39
QString PeptideStr
A type definition for PeptideStr.
Definition: types.h:44
std::shared_ptr< const Peptide > PeptideSp
std::shared_ptr< const Protein > ProteinSp
shared pointer on a Protein object
Definition: protein.h:43
object to handle a protein