/* * BindingModel.hpp * * Created on: Oct 5, 2016 * Author: heber */ #ifndef POTENTIALS_BINDINGMODEL_HPP_ #define POTENTIALS_BINDINGMODEL_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include #include "Fragmentation/Homology/FragmentNode.hpp" #include "Fragmentation/Homology/HomologyGraph.hpp" /** This class extends HomologyGraph by an additional vector of FragmentNode's * because their ordering is important (which is lost upon insertion into * HomologyGraph::nodes_t) * * The sequence is important because it determines how the sequence of pair-wise * distance arguments needs to be, see FunctionApproximation */ struct BindingModel { typedef std::vector vector_nodes_t; /** Default cstor for class BindingModel. * */ BindingModel() {} /** Cstor for class BindingModel. * * \param _nodes, vector of nodes, converted to map and passed on * \param _edges map of edges, passed on to HomologyGraph */ BindingModel(const vector_nodes_t &_nodes, const HomologyGraph::edges_t &_edges); /** Const getter for the internal homology graph. * * \return const ref to graph */ const HomologyGraph& getGraph() const { return graph; } /** Const getter to the sequence of nodes. * * \return const ref to vector of FragmentNodes */ const vector_nodes_t& getNodes() const { return nodes; } private: //!> the homology graph of this binding model const HomologyGraph graph; //!> vector of nodes const vector_nodes_t nodes; }; #endif /* POTENTIALS_BINDINGMODEL_HPP_ */