aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kmer_total_count.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/kmer_total_count.c b/kmer_total_count.c
index 2de7036..0148eae 100644
--- a/kmer_total_count.c
+++ b/kmer_total_count.c
@@ -27,9 +27,12 @@ void help() {
"dna-utils. Drexel University, Philadelphia USA, 2014;\n"
"software available at www.github.com/EESI/dna-utils/\n");
}
+
+
int main(int argc, char **argv) {
- char *filename = NULL;
+ char *fn = NULL;
+ FILE *fh = NULL;
unsigned int kmer = 0;
@@ -62,7 +65,7 @@ int main(int argc, char **argv) {
switch (c) {
case 'i':
- filename = optarg;
+ fn = optarg;
break;
case 'k':
kmer = atoi(optarg);
@@ -81,11 +84,22 @@ int main(int argc, char **argv) {
break;
}
}
- if(filename == NULL) {
- fprintf(stderr, "Error: filename (-i) must be supplied\n");
+ if(argc == 1) {
+ help();
exit(EXIT_FAILURE);
}
- if(kmer == 0 && !kmer_set) {
+ if(fn == NULL) {
+ fprintf(stderr, "no input file specified with -i, reading from stdin\n");
+ fh = stdin;
+ }
+ else {
+ fh = fopen(fn, "r");
+ if(fh == NULL) {
+ fprintf(stderr, "Could not open %s - %s\n", fn, strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+ }
+ if(!kmer_set) {
fprintf(stderr, "Error: kmer (-k) must be supplied\n");
exit(EXIT_FAILURE);
}
@@ -96,7 +110,7 @@ int main(int argc, char **argv) {
width = pow_four(kmer);
- unsigned long long *counts = get_kmer_counts_from_file(filename, kmer);
+ unsigned long long *counts = get_kmer_counts_from_file(fh, kmer);
// If nonzero is set, only print non zeros
if(nonzero) {