13#include <hibf/layout/data_store.hpp>
14#include <hibf/misc/next_multiple_of_64.hpp>
16namespace seqan::hibf::layout
97 size_t num_user_bins{};
104 size_t num_technical_bins{};
125 data{
std::addressof(data_)},
126 num_user_bins{data->positions.size()},
129 assert(data !=
nullptr);
131 if (num_user_bins > num_technical_bins)
133 throw std::runtime_error{
"You cannot have less technical bins than user bins for this simple binning "
134 "algorithm. Please see the hierarchical_binning algorithm or increase the number "
135 "of technical bins."};
139 size_t get_num_technical_bins()
const
141 return num_technical_bins;
Distributes x Technical Bins across y User Bins while minimizing the maximal Technical Bin size.
Definition simple_binning.hpp:87
simple_binning & operator=(simple_binning const &)=delete
Deleted. Would modify same data.
size_t execute()
Executes the simple binning algorithm and layouts user bins into technical bins.
simple_binning(simple_binning const &)=delete
Deleted. Would modify same data.
simple_binning(data_store &data_, size_t const num_bins=0)
The constructor from user bin names, their kmer counts and a configuration.
Definition simple_binning.hpp:124
~simple_binning()=default
Defaulted.
simple_binning(simple_binning &&)=default
Defaulted.
simple_binning()=default
Defaulted.
simple_binning & operator=(simple_binning &&)=default
Defaulted.
constexpr size_t next_multiple_of_64(size_t const value) noexcept
Returns the smallest integer that is greater or equal to value and a multiple of 64....
Definition next_multiple_of_64.hpp:18
Contains information used for the layout.
Definition data_store.hpp:25