Skip to content

repartition api

Teo Lemane edited this page Jul 29, 2021 · 1 revision

Repartition API allows to read and use a minimizer repartition. It can't compute a repartition but only exploit it.

First, you need to compute a repartition with kmtricks repart.

kmtricks repart --file kmtricks.fof --run-dir kmtricks_dir --kmer-size 12
#include <kmtricks/public.hpp>

using namespace km;
int main(int argc, char* argv[])
{
  Repartition repart("kmtricks_dir/repartition_gatb/repartition.minimRepart");

  Kmer<32> kmer("ACGTACGTACGT");
  uint8_t minim_size = 4;
  uint32_t partition = repart.get_partition(kmer.minimizer(minim_size).value());
  
  // Partition-aware hashing
  using WHType = KmerHashers<0>::WinHasher<32>;
  HashWindow hw("kmtricks_dir/hash.info");;
  WHType whasher(partition, hw.get_window_size_bits());
  uint64_t whash = whasher(kmer);
  return 0;

  return 0;
}