libsequence  1.9.5
StateCounts.hpp
1 #ifndef SEQUENCE_VARIANTMATRIX_STATECOUNTS_HPP__
2 #define SEQUENCE_VARIANTMATRIX_STATECOUNTS_HPP__
3 
4 #include "VariantMatrix.hpp"
5 #include "VariantMatrixViews.hpp"
6 #include <limits>
7 #include <vector>
8 
9 namespace Sequence
10 {
11  struct StateCounts
23  {
24  static constexpr VariantMatrix::value_type max_allele
25  = std::numeric_limits<VariantMatrix::value_type>::max();
27  std::vector<std::int32_t> counts;
29  std::size_t max_allele_idx;
31  std::uint32_t n;
34  std::int8_t refstate;
35 
38  StateCounts(const std::int8_t refstate_);
39  StateCounts();
40  void operator()(ConstRowView &);
41  void operator()(const RowView &);
42  };
43 
48  std::vector<StateCounts>
50  const std::vector<std::int8_t>& refstates);
54  std::vector<StateCounts>
55  process_variable_sites(const VariantMatrix& m, const std::int8_t refstate);
59  std::vector<StateCounts> process_variable_sites(const VariantMatrix& m);
60 } // namespace Sequence
61 
62 #endif
Implementation details for Sequence::RowView and Sequence::ConstRowView.
Track character state occurrence at a site in a VariantMatrix.
Definition: StateCounts.hpp:11
std::vector< StateCounts > process_variable_sites(const VariantMatrix &m, const std::vector< std::int8_t > &refstates)
Definition: StateCounts.cc:68
std::size_t max_allele_idx
The max allelic value seen.
Definition: StateCounts.hpp:29
std::vector< std::int32_t > counts
Keep track of (state, count) pairs.
Definition: StateCounts.hpp:27
The namespace in which this library resides.
std::uint32_t n
The sample size at this site. Excluded missing data.
Definition: StateCounts.hpp:31
Matrix representation of variation data.