libpappsomspp
Library for mass spectrometry
grpgroup.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 
26 #pragma once
27 
28 
29 #include <list>
30 #include "grpsubgroup.h"
32 
33 namespace pappso
34 {
35 
36 class GrpExperiment;
37 
38 class GrpGroup;
39 typedef std::shared_ptr<GrpGroup> GrpGroupSp;
40 typedef std::shared_ptr<const GrpGroup> GrpGroupSpConst;
41 
42 
44 {
45  friend class GrpExperiment;
46 
47  private:
48  std::list<GrpSubGroupSp> m_subGroupList;
49  unsigned int m_groupNumber = 0;
51 
53 
54  protected:
55  const std::list<GrpSubGroupSp> &getSubGroupSpList() const;
56  GrpGroup(GrpSubGroupSp &grpSubGroupSp);
57  GrpGroupSp makeGrpGroupSp();
58  bool removeFirstNonInformativeSubGroup();
59  void check() const;
60 
61 
62  public:
63  GrpGroup(const GrpGroup &grpGroupSp);
64  ~GrpGroup();
65  bool operator<(const GrpGroup &other) const;
66  bool containsAny(const GrpPeptideSet &peptideSet) const;
67  void addSubGroupSp(const GrpSubGroupSp &grpSubGroupSp);
68  void addGroup(GrpGroup *p_group_to_add);
69  void numbering();
70  void setGroupNumber(unsigned int i);
71  bool removeNonInformativeSubGroups();
72  const QString getGroupingId() const;
73  unsigned int getGroupNumber() const;
74  const GrpPeptideSet &getGrpPeptideSet() const;
75  std::vector<GrpSubGroupSpConst> getGrpSubGroupSpList() const;
76 };
77 
78 
79 } // namespace pappso
std::list< GrpSubGroupSp > m_subGroupList
Definition: grpgroup.h:48
GrpMapPeptideToSubGroupSet m_mapPeptideToSubGroupSet
Definition: grpgroup.h:52
GrpPeptideSet m_peptideSet
Definition: grpgroup.h:50
#define PMSPP_LIB_DECL
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition: aa.cpp:39
bool operator<(Aa const &l, Aa const &r)
Definition: aa.cpp:286
std::shared_ptr< GrpSubGroup > GrpSubGroupSp
Definition: grpsubgroup.h:39
std::shared_ptr< const GrpGroup > GrpGroupSpConst
Definition: grpgroup.h:40
std::shared_ptr< GrpGroup > GrpGroupSp
Definition: grpgroup.h:38