19 #include "../exception/exceptionnotpossible.h"
36 : mcsp_massSpectrum(mass_spectrum_csp), mp_parent(parent_p)
42 : mcsp_massSpectrum(other.mcsp_massSpectrum), mp_parent(other.mp_parent)
121 ++cumulative_node_count;
128 node->size(cumulative_node_count);
157 if(iterNode !=
nullptr)
191 if(iterNode !=
nullptr)
205 bool with_descendants)
210 nodes.push_back(
this);
218 node->flattenedView(nodes, with_descendants);
229 std::vector<MsRunDataSetTreeNode *> &nodes,
bool with_descendants)
235 node->flattenedView(nodes, with_descendants);
241 std::size_t ms_level,
243 std::vector<MsRunDataSetTreeNode *> &nodes,
244 bool with_descendants)
247 if(ms_level == (
depth + 1))
255 else if(ms_level > (
depth + 1))
262 node->flattenedViewMsLevelNodes(
263 ms_level,
depth + 1, nodes, with_descendants);
269 std::vector<MsRunDataSetTreeNode *>
273 std::vector<MsRunDataSetTreeNode *> &nodes)
275 if(precision_ptr ==
nullptr)
277 QObject::tr(
"Fatal error at msrundatasettreenode.cpp "
278 "-- ERROR precision_ptr cannot be nullptr. "
279 "Program aborted."));
285 if(
mz != std::numeric_limits<double>::max())
291 precursor_mz - (precision_ptr->
delta(precursor_mz) / 2);
293 precursor_mz + (precision_ptr->
delta(precursor_mz) / 2);
295 if(
mz >= lower_mz &&
mz <= upper_mz)
300 nodes.push_back(
this);
308 node->productNodesByPrecursorMz(precursor_mz, precision_ptr, nodes);
315 std::vector<MsRunDataSetTreeNode *>
319 std::vector<MsRunDataSetTreeNode *> &nodes)
321 if(precision_ptr ==
nullptr)
323 QObject::tr(
"Fatal error at msrundatasettreenode.cpp "
324 "-- ERROR precision_ptr cannot be nullptr. "
325 "Program aborted."));
329 precursor_mz - (precision_ptr->
delta(precursor_mz) / 2);
331 precursor_mz + (precision_ptr->
delta(precursor_mz) / 2);
337 if(
mz != std::numeric_limits<double>::max())
339 if(
mz >= lower_mz &&
mz <= upper_mz)
346 std::size_t precursor_spectrum_index =
351 if(precursor_spectrum_index !=
355 QObject::tr(
"Fatal error at msrundatasettreenode.cpp "
356 "-- ERROR precursor_spectrum_index bad value. "
357 "Program aborted."));
359 nodes.push_back(found_node);
367 node->precursorIonNodesByPrecursorMz(precursor_mz, precision_ptr, nodes);
379 visitor.
visit(*
this);
386 node->accept(visitor);
414 std::size_t local_depth =
depth + 1;
416 std::size_t tmp_depth = 0;
417 std::size_t greatest_depth = 0;
423 tmp_depth = node->depth(local_depth);
427 if(tmp_depth > greatest_depth)
428 greatest_depth = tmp_depth;
433 return greatest_depth;
440 return QString(
"mcsp_massSpectrum: %1 ; to string: %2 ; children: %3\n")
virtual void setNodesToProcessCount(std::size_t)=0
virtual bool visit(const MsRunDataSetTreeNode &node)=0
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
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
virtual ~MsRunDataSetTreeNode()
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)
virtual pappso_double delta(pappso_double value) const =0
Class representing a fully specified mass spectrum.
static QString pointerToString(const void *const pointer)
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
double pappso_double
A type definition for doubles.
std::shared_ptr< const QualifiedMassSpectrum > QualifiedMassSpectrumCstSPtr