# wtdbg2: practical implications of k-mer fsize and psize choice

I am using wtdbg2 2.3 to assemble a human genome (sequenced on PromethION from a cell line). I filtered out reads with low average quality, and now I am trying to determine the parameters that will optimize overall assembly quality.

The wtdbg2 assembler has two k-mer related settings, documented as follows.

 -k <int>    Kmer fsize, 0 <= k <= 25, [0]
-p <int>    Kmer psize, 0 <= p <= 25, [21]
k + p <= 25, seed is <k-mer>+<p-homopolymer-compressed>


The requirement that k + p is <= 25** suggests that these parameters can be set simultaneously. However, in all of the presets for the various long read sequencing technologies, one of the two settings is always set to 0.

My questions are as follows.

1. Are k and p ever intended to be used simultaneously?
2. If so, how does the behavior change with -k 2 -p 19 versus -k 19 -p 2?
3. I'm familiar with some common implications of choosing k size for k-mer based analyses of Illumina reads. (Smaller k-sizes are more sensitive but also more subject to spurious matches. Larger k-sizes are more specific but also more likely to include a sequencing error.) Do similar implications apply for -k and -p with wtdbg2?
4. BONUS: Is there an explanation anywhere of how -k and -p are used? It looks to me like -k is related to k-mers in the traditional sense, and -p is a homopolymer compressed k-mer. Are seeds made by concatenating the regular k-mer and the compressed k-mer? It's possible I missed some important details in the preprint but I haven't been able to make the connection yet.

**Incidentally, the documentation here is wrong. During runtime wtdbg2 enforces a constraint of <= 23, not 25. This matches the description in the bioRxiv preprint stating that 46 bits (2 bits per base) are used to store each k-mer.