From b5618d07a51ed431b9710c7f35ae7f4cc8d4e0a3 Mon Sep 17 00:00:00 2001 From: Calvin Morrison Date: Wed, 16 Oct 2013 13:43:38 -0400 Subject: reorder kmer_utils.h, actually take a kmer value as argv[2] for frequency, error check kmer --- kmer_frequency_per_sequence.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'kmer_frequency_per_sequence.c') diff --git a/kmer_frequency_per_sequence.c b/kmer_frequency_per_sequence.c index d3e21a1..7c1bf9b 100644 --- a/kmer_frequency_per_sequence.c +++ b/kmer_frequency_per_sequence.c @@ -10,7 +10,6 @@ unsigned long position = 0; int main(int argc, char **argv) { char *line = NULL; - long kmer = 6; size_t len = 0; ssize_t read; @@ -25,6 +24,12 @@ int main(int argc, char **argv) { exit(EXIT_FAILURE); } + unsigned long kmer = atoi(argv[2]); + if(kmer == 0) { + fprintf(stderr, "Error: invalid kmer.\n"); + exit(EXIT_FAILURE); + } + const unsigned long width = (unsigned long)1 << (kmer * 2); unsigned long long *counts = malloc((width+ 1) * sizeof(unsigned long long)); @@ -41,7 +46,7 @@ int main(int argc, char **argv) { memset(counts, 0, width); for(i = 0; i < read - kmer; i++) { - line[i] = alpha[line[i]]; + line[i] = alpha[(int)line[i]]; } for(i = 0; i < read - kmer; i++) { -- cgit v1.2.1