From c038740be3e0dec1798c0c660081f1b6d2445907 Mon Sep 17 00:00:00 2001 From: Calvin Morrison Date: Wed, 26 Feb 2014 13:38:43 -0500 Subject: update sparse --- kmer_total_count.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'kmer_total_count.c') diff --git a/kmer_total_count.c b/kmer_total_count.c index 87f1b69..12f9ab4 100644 --- a/kmer_total_count.c +++ b/kmer_total_count.c @@ -18,6 +18,7 @@ void help() { " --kmer -k size of mers to count\n" " --nonzero -n only print non-zero values\n" " --label -l print mer along with value\n" + " --sparse -s force sparse table for any mer\n" "\n" "Report all bugs to mutantturkey@gmail.com\n" "\n" @@ -40,16 +41,14 @@ int main(int argc, char **argv) { bool nonzero = false; bool label = false; bool kmer_set = false; - - unsigned long long width = 0; - - unsigned long long i = 0; + bool force_sparse = false; static struct option long_options[] = { {"input", required_argument, 0, 'i'}, {"kmer", required_argument, 0, 'k'}, {"nonzero", no_argument, 0, 'n'}, {"label", no_argument, 0, 'l'}, + {"sparse", no_argument, 0, 's'}, {"help", no_argument, 0, 'h'}, {0, 0, 0, 0} }; @@ -59,7 +58,7 @@ int main(int argc, char **argv) { int option_index = 0; int c = 0; - c = getopt_long (argc, argv, "i:k:nlvh", long_options, &option_index); + c = getopt_long (argc, argv, "i:k:nslvh", long_options, &option_index); if (c == -1) break; @@ -78,6 +77,9 @@ int main(int argc, char **argv) { case 'l': label = true; break; + case 's': + force_sparse = true; + break; case 'h': help(); exit(EXIT_SUCCESS); @@ -114,17 +116,14 @@ int main(int argc, char **argv) { exit(EXIT_FAILURE); } - width = pow_four(kmer); - - if(kmer > 12) { - node *root = get_kmer_counts_from_file(fh, kmer); + if(kmer > 12 || force_sparse) { + node *root = get_sparse_kmer_counts_from_file(fh, kmer); print_sparse(root, label, nonzero, kmer); } - //else { -// unsigned long long *counts = get_kmer_counts_from_file(fh, kmer); -// print(countst, label, nonzero); - //free(counts); -// } + else { + unsigned long long *counts = get_dense_kmer_counts_from_file(fh, kmer); + print_dense(counts, label, nonzero, kmer); + } return EXIT_SUCCESS; } -- cgit v1.2.3