libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
msrundatasettreenode.h
Go to the documentation of this file.
1// GPL 3+
2// Filippo Rusconi
3
4#pragma once
5
6/////////////////////// StdLib includes
7#include <map>
8#include <limits>
9
10
11/////////////////////// Qt includes
12
13
14/////////////////////// pappsomspp includes
15
16
17/////////////////////// Local includes
22
23
24namespace pappso
25{
26
28
29typedef std::shared_ptr<MsRunDataSetTreeNode> MsRunDataSetTreeNodeSPtr;
30typedef std::shared_ptr<const MsRunDataSetTreeNode> MsRunDataSetTreeNodeCstSPtr;
31
33{
34 friend class MsRunDataSetTree;
35
36 public:
39
41 MsRunDataSetTreeNode *parent_p = nullptr);
42
43 virtual ~MsRunDataSetTreeNode();
44
46
48 QualifiedMassSpectrumCstSPtr qualified_mass_spectrum_csp);
50
51 void setParent(MsRunDataSetTreeNode *parent);
53 bool hasParent() const;
54
55 void size(std::size_t &cumulative_node_count) const;
56
57 MsRunDataSetTreeNode *findNode(std::size_t spectrum_index);
59 findNode(QualifiedMassSpectrumCstSPtr mass_spectrum_csp);
60
61 void flattenedView(std::vector<MsRunDataSetTreeNode *> &nodes,
62 bool with_descendants = false);
63 void flattenedViewChildrenOnly(std::vector<MsRunDataSetTreeNode *> &nodes,
64 bool with_descendants = false);
65
66 void flattenedViewMsLevelNodes(std::size_t ms_level,
67 std::size_t depth,
68 std::vector<MsRunDataSetTreeNode *> &nodes,
69 bool with_descendants = false);
70
71 std::vector<MsRunDataSetTreeNode *>
73 PrecisionPtr precision_ptr,
74 std::vector<MsRunDataSetTreeNode *> &nodes);
75
76
77 std::vector<MsRunDataSetTreeNode *>
79 PrecisionPtr precision_ptr,
80 std::vector<MsRunDataSetTreeNode *> &nodes);
81
82
84
85 // Utility functions.
86 std::size_t depth(std::size_t depth) const;
87
88 QString toString(bool with_data = false) const;
89
90 private:
92
94
95 std::vector<MsRunDataSetTreeNode *> m_children;
96};
97
98} // namespace pappso
std::vector< MsRunDataSetTreeNode * > precursorIonNodesByPrecursorMz(pappso_double precursor_mz, PrecisionPtr precision_ptr, std::vector< MsRunDataSetTreeNode * > &nodes)
void flattenedView(std::vector< MsRunDataSetTreeNode * > &nodes, bool with_descendants=false)
void flattenedViewChildrenOnly(std::vector< MsRunDataSetTreeNode * > &nodes, bool with_descendants=false)
QualifiedMassSpectrumCstSPtr mcsp_massSpectrum
QString toString(bool with_data=false) const
QualifiedMassSpectrumCstSPtr getQualifiedMassSpectrum() const
void flattenedViewMsLevelNodes(std::size_t ms_level, std::size_t depth, std::vector< MsRunDataSetTreeNode * > &nodes, bool with_descendants=false)
std::size_t depth(std::size_t depth) const
void setParent(MsRunDataSetTreeNode *parent)
void size(std::size_t &cumulative_node_count) const
MsRunDataSetTreeNode * getParent() const
MsRunDataSetTreeNode * mp_parent
void accept(MsRunDataSetTreeNodeVisitorInterface &visitor)
void setQualifiedMassSpectrum(QualifiedMassSpectrumCstSPtr qualified_mass_spectrum_csp)
MsRunDataSetTreeNode * findNode(std::size_t spectrum_index)
std::vector< MsRunDataSetTreeNode * > m_children
std::vector< MsRunDataSetTreeNode * > productNodesByPrecursorMz(pappso_double precursor_mz, PrecisionPtr precision_ptr, std::vector< MsRunDataSetTreeNode * > &nodes)
MsRunDataSetTreeNode & operator=(const MsRunDataSetTreeNode &other)
#define PMSPP_LIB_DECL
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition aa.cpp:39
double pappso_double
A type definition for doubles.
Definition types.h:61
std::shared_ptr< const QualifiedMassSpectrum > QualifiedMassSpectrumCstSPtr
std::shared_ptr< const MsRunDataSetTreeNode > MsRunDataSetTreeNodeCstSPtr
std::shared_ptr< MsRunDataSetTreeNode > MsRunDataSetTreeNodeSPtr
const PrecisionBase * PrecisionPtr
Definition precision.h:122