diff options
Diffstat (limited to 'src/c/multifasta_to_otu.c')
-rw-r--r-- | src/c/multifasta_to_otu.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/c/multifasta_to_otu.c b/src/c/multifasta_to_otu.c index d5021fa..3c4850b 100644 --- a/src/c/multifasta_to_otu.c +++ b/src/c/multifasta_to_otu.c @@ -63,10 +63,8 @@ char **get_fasta_files_from_file(char *fn) { files = malloc(sizeof(char **)); while ((read = getline(&line, &len, fh)) != -1) { - char *file = malloc(sizeof(char) * (strlen(line))); - if(file == NULL) { - exit(EXIT_FAILURE); - } + char *file = malloc(sizeof(char) * (strlen(line) + 1)); + check_malloc(file, NULL); strncpy(file, line, strlen(line) + 1 ); file[strlen(file)- 1] = '\0'; @@ -94,7 +92,7 @@ char **get_fasta_files_from_file(char *fn) { fprintf(stderr, "could not realloc keys\n"); exit(EXIT_FAILURE); } - files[files_count] = NULL; + files[files_count - 1] = NULL; fclose(fh); return files; @@ -311,9 +309,11 @@ int main(int argc, char **argv) { exit(EXIT_FAILURE); } + struct matrix *sensing_matrix = load_sensing_matrix(sensing_matrix_filename, kmer); + if(kmer == 0) { - fprintf(stderr, "Error: zero is not a valid kmer\n"); - exit(EXIT_FAILURE); + fprintf(stdout, "Warning: zero is not a valid kmer, inferring kmer from sensing matrix (%d)\n", sensing_matrix->kmer); + kmer = sensing_matrix->kmer; } // load filenames @@ -334,7 +334,6 @@ int main(int argc, char **argv) { // 4 "ACGT" ^ Kmer gives us the size of output rows width = pow(4, kmer); - struct matrix *sensing_matrix = load_sensing_matrix(sensing_matrix_filename, kmer); double *sensing_matrix_ptr = sensing_matrix->matrix; unsigned long long sequences = sensing_matrix->sequences; |