diff options
Diffstat (limited to 'kmer_frequency_per_sequence.c')
-rw-r--r-- | kmer_frequency_per_sequence.c | 9 |
1 files changed, 7 insertions, 2 deletions
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++) { |