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
33namespace pappso
34{
35
36class GrpExperiment;
37
38class GrpGroup;
39typedef std::shared_ptr<GrpGroup> GrpGroupSp;
40typedef 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:39