// Copyright 2013 Calvin Morrison #include #include #include #include #include #include int main() { size_t len = 0; unsigned long long counts[256] = {0}; char buffer[4096]; bool header = false; len = fread(&buffer, 1, 1, stdin); if(errno) { if(buffer[0] == '>') { header = true; while((len = fread(&buffer, 1, 4096, stdin)) != 0) { unsigned int i = 0; for(i = 0; i < len; i++) { if(buffer[i] == '>') { header = true; continue; } else if(buffer[i] == '\n' && header == true) header = false; if(header == false ) { counts[(int)buffer[i]]++; } } } } else { fprintf(stderr, "this does not look like a fasta file\n"); exit(EXIT_FAILURE); } } else { fprintf(stderr, "could not read file\n"); exit(EXIT_FAILURE); } printf("A:%llu\nC:%llu\nG:%llu\nT:%llu\n", counts['a'] + counts['A'], counts['c'] + counts['C'], counts['g'] + counts['G'], counts['t'] + counts['T']); return EXIT_SUCCESS; }