## 2 Materials and Methods  
### Datasets  
The evaluation of the existing k-mer counting algorithm shows that the performance of the k-mer counting algorithm is affected by the total k-mer amount, distinct k-mer number, and the distribution of k-mers. A longer k-mer length produces more k-mers and distinct k-mers. The low-quality sequencing data have more distinct k-mers that would not appear in regular sequencing because of sequencing error. We evaluated data quality by Quality (Q30), which refers to the percentage of bases with a quality score of 30 or higher. Sequencing depth is the ratio of the total number of bases obtained by sequencing to the size of the genome or the average number of times that each base is measured in the genome. Deeper sequencing means more k-mers in the dataset, and it also means more distinct k-mers due to sequencing errors. GC-ratio/GC content refers to the percentage of nitrogenous bases in a DNA or RNA molecule, either guanine (G) or cytosine (C). GC-ratio has a strong correlation with biological features of the genome. Different species have different GC-content, an extremely low or high GC-content means the absence of many k-mers, indicating the existence of data skew, which may be a disaster for hash-based algorithms. We constructed the evaluation datasets in two ways. We used a peer-reviewed sequencing data simulation tool, pIRS [35], to generate several simulated sequencing datasets with different features, including GC content (Table 1), sequencing quality (Table 2), and coverage/depth (Table 3). We use these datasets to evaluate what features affect the performance of KMC3 and CHTKC under specific hardware contexts. We also downloaded actual sequencing data files (Table 4) from public databases to evaluate the performance of the algorithms in different hardware conditions (threads, memory space, and IO bandwidth) under specific datasets. \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline \multirow{2}{*}{**Dataset**} & \multirow{2}{*}{**Species**} & \multicolumn{2}{c}{**Gzipped**} & \multirow{2}{*}{**GC-Ratio**} & \multicolumn{2}{c}{**Base**} & \multirow{2}{*}{**Total**} & \multirow{2}{*}{**Distinct**} \\  & & & **Size** & & & & \\ \hline S-GC21 & _S.ratti_ & 1.0 GB & 21\% & 1.29 G & 893 M & 118 M \\ B-GC25 & _B.marci_ & 8.0 GB & 25\% & 10.2 G & 7038 M & 874 M \\ T-GC30 & _T.fera_ & 18.0 GB & 30\% & 22.55 G & 15,561 M & 1705 M \\ D-GC36 & _D.rerio_ & 40.0 GB & 36\% & 50.38 G & 34,759 M & 3807 M \\ H-GC41 & _H.sapiens_ & 77.0 GB & 41\% & 98.16 G & 67,733 M & 7751 M \\ T-GC45 & _T.rubripes_ & 9.1 GB & 45\% & 11.52 G & 7951 M & 975 M \\ A-GC50 & _A.brassicae_ & 0.8 GB & 50\% & 1.02 G & 707 M & 91 M \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Simulated datasets of various GC-content (Coverage: 30X, Q30: 90.66%). \begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline \multirow{2}{*}{**Dataset**} & \multirow{2}{*}{**Gzipped Size**} & \multirow{2}{*}{**Depth**} & \multirow{2}{*}{**Base Count**} & \multicolumn{2}{c}{**16-Mer**} & \multicolumn{2}{c}{**32-Mer**} & \multicolumn{2}{c}{**64-Mer**} \\ \cline{5-8}  & & & & **Total** & **Distinct** & **Total** & **Distinct** \\ \hline H-5X & 13 GB & 5X & 16.36G & 13.91G & 0.91G & 11.29G & 3.31G & 6.05G & 3.18G \\ H-10X & 26 GB & 10X & 32.72G & 27.81G & 1.02G & 22.58G & 4.28G & 12.11G & 4.55G \\ H-30X & 77 GB & 30X & 98.16G & 83.44G & 1.28G & 67.73G & 7.75G & 36.32G & 8.43G \\ H-60X & 154 GB & 60X & 196.33G & 166.88G & 1.50G & 135.47G & 12.79G & 72.64G & 14.01G \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Datasets downloaded from the public database (_H. sapiens_). H.1: https://dranexus-md\(\_\)3.amazonaws.com/NA12878-xten/reads/NA12878D_HiSeqX_R1.fastq.gz and https://dranexus-md\(\_\)3.amazonaws.com/NA12878-xten/reads/NA12878D_HiSeqX_R2.fastq.gz (accessed on 28 March 2021). H2 ftp.sra.ebi.ac.uk/voll/fastq/ERR024/ (accessed on 28 March 2021).