libpappsomspp
Library for mass spectrometry
grpprotein.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 <memory>
28 #include <vector>
29 #include <QString>
30 
31 #include "grppeptide.h"
32 
33 namespace pappso
34 {
35 class GrpProtein;
36 typedef std::shared_ptr<const GrpProtein> GrpProteinSpConst;
37 typedef std::shared_ptr<GrpProtein> GrpProteinSp;
38 
40 {
41  friend class GrpExperiment;
42 
43 
44  public:
45  GrpProtein(const GrpProtein &other);
46  ~GrpProtein();
47  void push_back(GrpPeptide *p_grpPeptide);
48  bool operator==(const GrpProtein &other) const;
49 
50  const QString &getAccession() const;
51  const QString &getDescription() const;
52  const QString getGroupingId() const;
53 
54  typedef std::vector<GrpPeptide *>::const_iterator const_iterator;
55  const_iterator begin() const;
56  const_iterator end() const;
57  void setRank(unsigned int i);
58  void setGroupNumber(unsigned int i);
59  void setSubGroupNumber(unsigned int i);
60  unsigned int getGroupNumber() const;
61  unsigned int getSubGroupNumber() const;
62  unsigned int getRank() const;
63  unsigned int getCount() const;
64 
65 
66  protected:
67  GrpProtein(const QString &accession, const QString &description);
68 
69  void countPlus();
70 
71  /** @brief ensure that each peptide in peptide list is unique and sorted by
72  * pointer adress
73  */
74  void strip();
75 
76 
77  std::vector<GrpPeptide *> m_grpPeptidePtrList;
78 
79  private:
80  const QString m_accession;
81  const QString m_description;
82  unsigned int m_groupNumber = 0;
83  unsigned int m_subGroupNumber = 0;
84  unsigned int m_rank = 0;
85  unsigned int m_count = 0;
86 };
87 } // namespace pappso
std::vector< GrpPeptide * >::const_iterator const_iterator
Definition: grpprotein.h:54
const QString m_accession
Definition: grpprotein.h:80
const QString m_description
Definition: grpprotein.h:81
std::vector< GrpPeptide * > m_grpPeptidePtrList
Definition: grpprotein.h:77
#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< GrpProtein > GrpProteinSp
Definition: grpprotein.h:37
std::shared_ptr< const GrpProtein > GrpProteinSpConst
Definition: grpprotein.h:35
bool operator==(Aa const &l, Aa const &r)
Definition: aa.cpp:280